28

“What does app model transformation mean?” Rewrite your code to app model. There’s actually no migration or transformation, but you can reuse concepts

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

DATAUSERS

HTML

Developer vision

“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 if…

We would use same development model in cloud and in on-premises?

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

Please Complete An Evaluation FormYour input is important!

or

© 2015 Microsoft Corporation. All rights reserved.