Upload
louisa-baldwin
View
216
Download
1
Embed Size (px)
Citation preview
Vesa JuvonenSenior Program ManagerMicrosoft
Tried & True Practices for Transforming SharePoint solutions to cloud-ready solutions
743
Steve WalkerSenior Program ManagerMicrosoft
Transformation processLearning from real life transitionsTypical functionality used in app modelApp model learnings
Agenda
“What does app model transformation mean?”
Rewrite your code to app model.
There’s actually no migration or transformation, but you can reuse concepts and patterns…
Rewrite
“What does this mean in practice?”
Implement similar functional capabilities as with farm solutions, using alternative technical solutions
“Don’t we have a tool to help with migrating code?”
Great assessment tools exist, but this is not really about one-to-one transition…
“Will Farm Solutions be supported with SharePoint Server 2016”
We will make investments primarily on the app model side also for on-premises to better align the development story: Write once and use it across cloud and on-premises
Yes.
“Will you ever support farm solutions in Office 365?”
Farm solutions are deployed cross SharePoint farm and they’d impact multiple customers…
No.
“I saw a blog post on the Internet saying that the app model is dead”
It’s more alive than ever. We are committed to this model and the majority of our development investments are made on the app model for cloud AND on-premises
No it’s not
Coming soon: “Register with Active Directory”• SP Add-In registered also to
Azure AD• Get Access to cross Office
365 services for your SP add-ins
“Will you introduce a replacement for the app model in the near future?”
We are 100% committed on loosely coupled model with remote APIs. We will certainly evolve the capabilities, but model is here to stay.
No.
What does “app model” or “add-ins” mean in our terminology
Classic - Full trust solutions•ISV solutions•Platform level customizations to on-premises•Custom service applications•Custom WCF services•SharePoint customizations, not customer specific customizations
Client Side Solutions
•Server side controls as JavaScript on page layouts and master pages•Remote provisioning for elements•Embracing un-ghosted model•SP App dimension with provider hosted apps to provide new capabilities•Customer specific customizations
Store apps•App catalog based solution•Packaged reusable solutions built for specific functionality•Not only for market place or store, but also as platform for customer specific customizations
SharePoint Add-Ins meansall operations are executed outside of
the server
Transformation processReadiness
• Readiness with app model topics
• Hosting decisions• Network impact
analysis• Development
model readiness
Assessment
• Analyze existing solution usage
• Analyze existing code and functionality
• Concentrate on business and functional requirements, not on technology
Planning
• App model solution planning and design
• What patterns and models are used for different solutions
• What solutions can be converted to out of the box capabilities
Implementation
• Detailed technical planning
• Actual app model solution implementation
• Typical development process, including testing
Deployment
• App solution deployment
• Existing content retrofitting
• Farm solution retraction
js
Provider Hosted Apps
SharePoint Service
2
Association of JavaScript Embed Embed (user custom action) to the site, so that code is executed during site processing
1
CSOM / REST
JavaScript Embed
<<Reference>>
UX component or elements are rendered using CSOM with JavaScript stored either in SharePoint or centrally in the provider hosted app side.
3
Demo JavaScript Embed
https://github.com/OfficeDev/PnP/tree/master/Samples/OD4B.NavLinksInjection
WebJob
<<Operation>>
Provider Hosted Apps
<< Perform required actions>>
SharePoint / Office 365
Storage Queue1
2
3
4
<<Add message>>
<<instantiate>>
Asynchronous Operations against Office 365
Demo Asynchronous long running operations with Azure storage queues and WebJobs
https://github.com/OfficeDev/PnP/tree/master/Samples/Core.QueueWebJobUsage
SharePoint Remote Provisioning
Own app specific configuration
Artefacts
1
CSOM / REST
2
3
SharePoint Service
Provider Hosted Apps
PnP - Business user driven templates
Provisioning engine
Provider Hosted App
SharePoint Service
https://contoso.sharepoint.com/sites/site
1 2
54
3
Extract template
Modify with browser
Template details are being extracted from actual template sites during provisioning.Templates can be modified and crated using browser UI and all changes are reflected to the newly created and potentially modified sites.
Template sites
PnP - Site provisioning frameworkC#
// Get template from existing sitetemplate = ctx.Web.GetProvisioningTemplate();
XMLFileSystemTemplateProvider
XMLAzureStorageTemplateProvider
XMLSharePointTemplateProvider
12
4
Site A
Site B
Connectors
3
// Save template using XML providerXMLFileSystemTemplateProvider provider = new XMLFileSystemTemplateProvider(@"c:\temp\", "");string templateName = "template.xml";provider.SaveAs(template, templateName);
// Load the saved model againProvisioningTemplate p2 = provider.GetTemplate(templateName);// Apply template to existing sitectxTarget.Web.ApplyProvisioningTemplate(template);
Demo Site provisioning with PnP engine
https://github.com/OfficeDev/PnP/tree/dev/Solutions/Provisioning.Framework.Cloud.Async
http://dev.office.com/devprogram
Developer Program Launch
E-mail Newsletters
Free Developer Subscriptio
n
1 YEAR FREE
Free Training
Free Tools
Webinars
Call to action
Sign up for Developer Program
Collect your stickers at //build
Check out the express talks
• Transformation process• Learnings from real life
transitions• Transformation patterns• Typical functionalities in app
model• App model learnings
Summary