Presentation is loading. Please wait.

Presentation is loading. Please wait.

Migrating Full-Trust Solutions to the Cloud Scot

Similar presentations


Presentation on theme: "Migrating Full-Trust Solutions to the Cloud Scot"— Presentation transcript:

1 Migrating Full-Trust Solutions to the Cloud Scot Hillier scot@scothillier.net @ScotHillier

2 scot@scothillier.net @ScotHillier www.itunity.com/users/scot-hillier www.criticalpathtraining.com www.microsoftvirtualacademy.com/Stu dies/SearchResult.aspx?q=hillier channel9.msdn.com/Search?t erm=hillier#ch9Search www.pluralsight.com/search /? s earchTerm=hillier

3 Apologizing in advance Out with the old…In with the new… Apps for SharePointSharePoint Add-Ins App WebAdd-In Web App PartAdd-In Part SharePoint App ModelSharePoint Add-In Model Apps for OfficeOffice Add-Ins Office App ModelOffice Add-In Model

4  Branding  Provisioning  Sandbox Solutions  SharePoint Add-Ins v Office 365 APIs Agenda

5

6 The challenges

7 Branding Techniques

8 Theming

9 Setting theme Microsoft.SharePoint.Client.ListItem themeEntry =... web.ApplyTheme(themeEntry["ThemeUrl"] as FieldUrlValue, themeEntry["FontSchemeUrl"] as FieldUrlValue, themeEntry["ImageUrl"] as FieldUrlValue, false); web.MasterUrl = (themeEntry["MasterPageUrl"] as FieldUrlValue); web.Context.ExecuteQuery();

10 Alternate CSS

11 Setting alternate CSS and logo $http({ url: "https://spsboston/_api/web", method: "POST", headers: { "accept": "application/json", "contentType": "application/json", "X-RequestDigest": digest, "X-HTTP-Method": "MERGE", "content-length": 84 }, data: { "AlternateCssUrl": "https://spsboston/SiteAssets/contoso.css", "SiteLogoUrl": "https://spsboston/SiteAssets/pnp.png" }});

12 Display Templates

13

14 JavaScript injection methods

15 Script Editor Web Parts

16 Adding User Custom Actions to a Site executor.executeAsync({ url: "../_api/SP.AppContextSite(@target)/web/usercustomactions" + "?@target='" + hostWebUrl + "'", method: "POST", body: JSON.stringify({ 'Sequence': 0, 'Description': 'CDNManager', 'Location': 'ScriptLink', 'ScriptBlock': script }), headers: "content-type": "application/json", "accept": "application/json", "X-RequestDigest": jQuery("#__REQUESTDIGEST").val() }, success: function (data) {...}, error: function (err) {...} })

17 Utilizing JSLink (function () { // Initialize the variables for overrides objects var overrideCtx = {}; overrideCtx.Templates = {}; // Override field data overrideCtx.Templates.Fields = { // PercentComplate = internal name of the % Complete // View = you want to change the field rendering of a view // <dev... = here we define what the output of the field will be. 'PercentComplete': { 'View': '<div class="progress"... ' } }; // Register the override of the field SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx); })();

18 JavaScript injection challenges

19 JavaScript Injection with CDN Manager

20

21 Provisioning Techniques  SharePoint Add-In  Office 365 APIs  PowerShell

22 SharePoint Online Host Web Add-In Web Azure Web Sites CSS png aspx master js New/Existing Sites and Webs

23 SharePoint Online Azure Web Sites CSS png aspx master js New/Existing Sites and Webs

24 SharePoint Online PowerShell Client j New/Existing Sites and Webs

25 PnP Provisioning Engine

26

27

28 Proxy Process Proxy Process (SUCWorkerProcessProxy.exe) Worker Service ( ) (SPUCWorkerProcess.ex e) Host Services () Host Services (SPUCHostService.exe) Untrusted Code Declarative Items: Web Templates Lists and Libraries Site Columns and Content Types File deployment Custom Actions Client Code

29 Sandboxed Solutions The Good  Customize SharePoint without a farm solution:  Declarative Features (lists, libraries, files, client side code)  User Code (web parts, InfoPath forms, event receivers, workflow actions)  Multi-tenant friendly The Bad and the Ugly  Limited server side API  Provisioned content is brittle  Versioning is a black art  No central way to manage, update  Scalability Problems

30 What does it all mean?

31

32 SharePoint Add-In Challenges

33 Office 365 API Benefits

34 Office 365 API capabilities MailContactsCalendar Files Users & groups Discovery Service

35 Included in Office 365 Subscription Users & Groups managed in Office 365 Portal Changes persisted in Azure AD

36 Single auth flow for Office 365 Azure AD Graph, Exchange, SharePoint Device apps and web sites Admin and end-user consent Secure protocol OAuth 2.0 No capturing user credentials Fine-grained access scopes Supports MFA and federated user sign-in Long-term access through refresh tokens

37 Application Types Custom developed Third-party, published in the gallery Office 365 SharePoint, Exchange Dynamics CRM Thousands of others Custom Applications Web Application and/or WebAPI Native Client

38

39 Implicit Flow and Angular JS

40 Implicit Flow with ADAL.JS

41 References


Download ppt "Migrating Full-Trust Solutions to the Cloud Scot"

Similar presentations


Ads by Google