1 / 62

Converting SharePoint on-premise A pps to Office 365

Learn how to convert SharePoint on-premise apps to Office 365 to ensure compatibility with the latest technologies and avoid potential pitfalls. Understand the differences between on-premise and cloud-based solutions, the deprecation of certain features, and the importance of utilizing Client Side API. Get insights on transitioning to 365, adapting to new development practices, and optimizing your applications for the future.

vickij
Download Presentation

Converting SharePoint on-premise A pps to Office 365

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Converting SharePoint on-premise Apps to Office 365 Jos Auker-Woor M377

  2. Jos Auker-Woor

  3. Glossary Depreciated No further development by Microsoft May still work at the moment May disappear in the future Will not support new functionality May in on-premise but not 365

  4. Why Now? New 365 Customers Existing customers asking about 365 2016 and beyond Easier to develop and support

  5. 2007 – Big Push: SharePoint the development platform Server side code Products but also customisation

  6. Solutions and Features Server and client side API Well understood 2016 on premise On premise only Dangerous? Needs outage to install Future?

  7. Client Side API Both Depreciated

  8. SharePoint Hosted - Client Side API Provider Hosted – External (e.g. Azure), connecting via Client API

  9. SharePoint SharePoint Hosted The app and all resources are hosted in your SharePoint farm. Still relies on client side API to access SharePoint. Full Appincluding code

  10. On Premise and Cloud Think… Scoped to a Single Site Collection Point solutions, localised web parts etc. Client side API Painful updates No easy access to remote data Browser based code JavaScript, HTML

  11. SharePoint SharePoint Hosted The app and all resources are hosted in your SharePoint farm. Still relies on client side API to access SharePoint. Full Appincluding code Provider Hosted On-premise, datacentre or Azure hosted application that links to SharePoint. App Stub in SharePoint to handle authentication via OAuth. App ‘Stub’ OAuth Client API

  12. On Premise and Cloud External to SharePoint Easy updates (but everyone gets them) Access data remote data Client side API ‘Provider’ and Browser based code JavaScript, C#, anything Dedicated Server/Site Azure

  13. Our approach

  14. Consistent Styling Include pages, menus, etc. Can cross site collections Store settings Multiple customers Bulk data access

  15. We had concerns so… SharePoint Hosted?

  16. Consistent Styling Include pages, menus, etc. Can cross site collections Store settings Multiple customers Bulk data access

  17. Provider Hosted?

  18. Consistent Styling Include pages, menus, etc. Can cross site collections Store settings Multiple customers Bulk data access

  19. Demo Patterns and Practices: https://github.com/OfficeDev/PnP Provider Hosted App Full immersion

  20. Server Side vs Client Side SPListlist = SPContext.Current.Web.Lists["News"]; SPListItemitem = list.GetItemById(1); lTitle.Text = item["Title"].ToString();

  21. Server Side SPSecurity.RunWithElevatedPrivileges(() => { using (SPSitesite = new SPSite("http://server/site/subsite/")) { using (SPWeb web = site.OpenWeb()) { SPListlist = web.Lists["News"]; SPListItemitem = list.GetItemById(1); lTitle.Text = item["Title"].ToString(); } } });

  22. Storing Settings

  23. Server Side Web Part Settings Property Bag Web Site Collection Web App (root site collection) Web.AllProperties.Add(id, value); … string value = web.AllProperties[id];

  24. App Parts

  25. Immersion

  26. Azure DocumentDB • JSON • No need for pre-defined schema • Standard Queries • Easy to connect from C#, Javascriptetc

  27. Bulk Data Access

  28. Three approaches we’ve used:

  29. Three approaches we’ve used:

  30. Three approaches we’ve used:

  31. Throttling

  32. Throttling – Possible causes • Repeated actions • Bulk updates • Looks like load testing

  33. Beware Administrators and PowerShell…

  34. Throttling • No Published Rules • Excellent MSDN Article: dn889829 • https://msdn.microsoft.com/EN-US/library/office/dn889829.aspx • Almost always code

  35. Throttling – Two Stage • 429 – To many requests • 503 – Server Unavailable

  36. Throttling - Avoiding • ClientContext.ExecuteQueryWithIncrementalRetry(retries,delay) • E.g.ctx.ExecuteQueryWithIncrementalRetry(5, 30000); • Cache where possible, Keep calls to a minimum • Make actions ‘irregular’

  37. Normal List Throttling Applies SP.ListItemCollectionPosition position = null; stringcaml = "<View><ViewFields><FieldRef Name=‘Title'/>" +"</ViewFields><RowLimit>5000</RowLimit></View>"; do { SP.CamlQueryquery = new SP.CamlQuery() { ListItemCollectionPosition = position, ViewXml = caml }; SP.ListItemCollectionresults = list.GetItems(query); ctx.Load(results); ctx.ExecuteQuery(); position = results.ListItemCollectionPosition; // Do something here with results } while (position != null);

  38. Multiple Customers

  39. App Site

  40. MyApp - Australia DocumentDB SQL Etc

  41. MyApp - Australia DocumentDB SQL Etc

  42. MyApp - Australia DocumentDB SQL Etc MyApp2 - Singapore

  43. Traffic Manager MyApp Traffic Manager MyApp1 - Australia DocumentDB SQL Etc MyApp2 - Singapore

  44. Traffic Manager MyApp Traffic Manager MyApp1 - Australia DocumentDB SQL Etc MyApp2 - Singapore

  45. What have I found?

More Related