project portal for sharepoint, talk at norwegian sharepoint community
DESCRIPTION
Project portal for SharePoint, talk at Norwegian SharePoint Community 2nd of October 2014. Speakers were Geir Graff, Ole Kristian Mørch-Storstein and Tarjei Ormestøyl. Read more about the project at GitHub: https://github.com/prosjektstotte/sp-prosjektportalTRANSCRIPT
SharePoint Project Portal
Norwegian SharePoint Community, 02.10.2014
Who are we?• Geir Graff, Portfolio Manager for strategic projects,
P3O, Innovation strategist at Asker kommune• Tarjei E. Ormestøyl, Senior Consultant, Puzzlepart• Ole Kristian Mørch-Storstein, Senior Consultant,
Puzzlepart
Agenda• About the project• Demo• Architecture• Solution model• Deployment• Sherpa• Site creation
• Wrap up
About the Project• Asker Kommune and KommIT• Project management in SharePoint• Prosjektveiviseren (DIFI, based on PRINCE2)• Portfolio of project sites
• SharePoint Online and SharePoint 2013 (on-prem)• Low threshold / Easy to install and use• Sharing is caring Distributed freely• As out of the box as possible
DemoSharePoint Project Portal
Architecture
Decision #1: Solution modelSharePoint-hosted app?Provider-hosted app?
Sandboxed solution?
Solution model• SharePoint hosted app
• On-premises is not configured for apps by default• App-web not suitable for storing business data• Write permissions outside of host web disqualifies from app
store• Anything not configured declaratively must be configured via
JSOM
• Provider hosted app• On-premises is not configured for apps by default• Dependency on external service that must be supported • Configuring trust between on-prem environment and provider is
a complicating factor
Solution model• Sandboxed solution• Only server side code is deprecated in the sandbox!• Can be used to deploy Web Templates and other artifacts
that are declarative• Supported as default both on-premises and O365• Anything not configured declaratively must be configured
via JSOM or CSOM
Choice #1: Sandboxed solution
Decision #2: Deployment model
Configuration?
PowerShell?
CSOM?
Deployment - requirements• Requirement: Repeatable, consistent and easy deployment• Requirement: Create fields and content types
• Vesku: “FTC to CAM – Stop creating content types and site columns declaratively” (http://blogs.msdn.com/b/vesku/archive/2013/11/06/ftc-to-cam-stop-creating-content-types-and-site-columns-declaratively.aspx)
• Should be created managed with JSOM/CSOM (although other options are still valid)
• Requirement: Create taxonomy fields• Needs SspId to connect field to term store• Needs term set id to connect field to term set
• Requirement: Activate features, modify quick launch, modify property bag
Deployment – What we knew• Take away ESPC 2014: Chris O’Brien• “Developer Decisions, Tips and Tricks - Lessons Learnt from
Office 365 Projects”• Experiences from a real case
• Customer could not decide between SharePoint Online or On-premises.
• Needed to support both scenarios
• PowerShell with CSOM and Sandboxed WSPs
Deployment - What we had• CSOM support• Client Side SharePoint PowerShell @ Codeplex• Not intended for a dual deployment scenario• Didn’t cover all requirements
• PowerShell-support vastly different
Deployment – Writing CSOM• Alternative #1: Write CSOM in PowerShell• No compiling!, but• No compile time checking• Difficult to test• Poorer development experience
• Alternative #2: Write .NET libraries• Testable• Great tooling• Can be called from PowerShell
Choice #2: Managed CSOM
aka Sherpahttps://github.com/sharepoint-sherpa/
+Library Console
Application
Sherpa.Library Sherpa.Installer
In the package
Sherpa Features• Supports SPO and SP2013• Configure, deploy, maintain and export taxonomy • with known GUIDs
• Deploy and maintain fields and content types• Use content type hub if you like
• Upload (and upgrade) sandboxed solutions• Auto-configure sites• Enable features, Modify quick launch, Set properties, Create
lists, etc.
Sherpa Philosophy• Sherpa Library lets you • Create PowerShell cmdlets • Create your own UI / installer• Use Sherpa features in remote
event receivers and provided hosted apps
• Command line application is the reference implementation and can be used as-is out of the box • Included sample config showcases
features
Decision #3: Site creation
Configured in UI?
Web template?
Provider-hosted?
Site creation• Requirement: Create lookup-fields «on-the-fly»• Requirement: Copy default documents from central
repo• Requirement: Create lists and libraries• Requirement: Configure site pages• Requirement: Configure list views and list web part
views
Choice #3: Web Templates and JSOM
Web Templates and JSOM• Web template• Lists• Pages• Content type bindings• Other artefacts like CSS & JS
• JSOM setup-script• Create lookup-fields in new site• Copy documents from central repo• Add and modify views• Challenge: In client’s browser
Wrap-up
Discoveries and gotcha’s• Trial tenants are nice
• Full ‘integration test’ with each new tenant• Use for development, not test environments
• Some issues with search in SPO• Feature activation using CSOM is… interesting• Site collection features are auto-activated on sandbox activation• SharePoint rewrites URL’s in provisioned html files (bug?)• SPO != On-Premises
• Patch level• Different .js files loaded• Search
Slightly unusual challenges• Open source –really?• Sharing the good stuff• Sharing the bad stuff
• How to handle• Questions and support• Maintenance and further development• Contributions
Resources• Prosjektportal for SharePoint @ GitHub• https://github.com/prosjektstotte/sp-prosjektportal/
• SharePoint Sherpa @ GitHub • https://github.com/sharepoint-sherpa/sherpa
• Prosjektveiviseren• http://www.prosjektveiviseren.no/
• Chris O’Brien : “Developer Decisions, Tips and Tricks - Lessons Learnt from Office 365 Projects”• http://www.slideshare.net/chrisobrien/chris-o-brien-office-365-decisions-ti
ps-and-tricks-with-screenshots or http://is.gd/dev365
Questions?