SharePoint App Architecture for 
the Cloud and on-premise 
Prod3003 
Sonja Madsen 
SharePoint MVP 
#CampusDays
#CampusDays 
Sonja Madsen 
• SharePoint MVP 
• Owner of Sonjasapps 
• Blog at sp2013.blogspot.com, tweet at @sonjamadsen 
• Consulting 
• Microsoft partner and vendor 
• Speaker at conferences on SharePoint topics 
• Over 10 years with SharePoint 
• Self-employed 
• Creuna, Proactive, DIS-Play, Avanade, Microsoft
#CampusDays 
Agenda 
• Provider apps 
• Demo - Create team sites on Office 365 
• Office App Model Samples Team 
• Farm code -> Client Object Model 
• Demo – Create sites with metadata 
• How it works 
• JavaScript vs C#
#CampusDays 
Provider apps 
SharePoint 2013 
Office 365 
Provider app 
Cloud 
On-premise
#CampusDays 
Demo: create team project sites on Office 365 
Projects Web
#CampusDays 
SharePoint out-of-box 
No project metadata, no overview 
No governance on how to call sites, where to create sites, permissions 
How to find ”my project sites" 
Look and feel, site templates?
#CampusDays 
SharePoint Hosted vs Provider App 
Client Object Model 
Elevate permissions with Provider App 
JavaScript vs C# 
Hosting 
Developer environment
Share point app architecture for the cloud and on premise
#CampusDays 
Demo
#CampusDays 
Architecture 
Provider app code List 
Sites 
Overview 
Hosting, Visibility, Maintenance, Administration, UI, End-User Involvement
#CampusDays 
User Voice 
Office App Model Samples team 
https://github.com/OfficeDev/PnP/tree/dev 
http://blogs.office.com/2014/08/13/uservoice-driving-improvements-sharepoint-api/
#CampusDays 
Farm Solution Provider App 
using (SPSite site = new SPSite(projectweburl)) 
{ 
using (SPWeb web = site.RootWeb) 
{ 
web.AllowUnsafeUpdates = true; 
int TemplateI = 0; 
string lcid = System.Threading.Thread.CurrentThread.CurrentUICulture.LCID.ToString(); 
SPWebTemplateCollection webTemplates = site.GetWebTemplates(Convert.ToUInt32(lcid)); 
for (int i = 0; i < webTemplates.Count; i++) 
{ 
if (webTemplates[i].Title == sitetemplatetitle) 
{ 
TemplateI = i; 
} 
} 
SPWebTemplate webTemplate = webTemplates[TemplateI]; 
string webTitle = title; 
string webUrl = id; 
//create project site 
web.Webs.Add(webUrl, webTitle, "", 
uint.Parse(lcid), webTemplate, false, false); 
web.Update(); 
} 
} 
var spContext = 
SharePointContextProvider.Current.GetSharePointContext(HttpContext); 
using (var clientContext = spContext.CreateUserClientContextForSPHost()) 
{ 
if (clientContext != null) 
{ 
WebCreationInformation creation = new WebCreationInformation(); 
creation.Url = webTitle; 
creation.Title = webTitle; 
Web newWeb = clientContext.Web.Webs.Add(creation); 
clientContext.Load(newWeb); 
clientContext.ExecuteQuery(); 
} 
}
#CampusDays 
Farm Solution Provider App 
ThmxTheme.SetThemeUrlForWeb(currentweb, currentweb.ServerRelativeUrl 
+ "/_catalogs/theme/SK.thmx"); 
currentweb.Update(); 
siteWeb.ApplyTheme(colorPaletteFile.ServerRelativeUrl, 
fontSchemeFile.ServerRelativeUrl,null, true); 
siteWeb.Update(); 
clientContext.ExecuteQuery();
#CampusDays 
C# JavaScript 
var context = SP.ClientContext.get_current(); 
SP.Utilities.Utility.logCustomAppError(context, "My custom error message."); 
context.executeQueryAsync(function(){},function(){});
#CampusDays 
Demo
#CampusDays 
Demo
#CampusDays 
JavaScript vs C# 
Client Object Model 
Elevate permissions with Provider App 
JavaScript vs C# 
No Web Parts with C# 
Can’t remove Web Parts from page with C# 
Custom forms – JavaScript 
Intellisense
#CampusDays 
Summary 
• Provider apps 
• Demo: create team sites on Office 365 
• Demo - Office App Model Samples Team 
• Farm code -> Client Object Model 
• Demo – create sites with metadata 
• How it works 
• JavaScript vs C#
#CampusDays 
SharePoint App Architecture for 
the Cloud and on-premise 
Prod3003
EVENT SPONSORER 
TRACK SPONSORER 
EXPO SPONSORER
#CampusDays 
Q&A 
#Ask me about everything! 
Join me at the Microsoft Booth the next 
30 minutes @Meet The Experts 
Dont forget to: Evaluate this session!

More Related Content

PPTX
Patterns in add ins espc15
PPTX
The Power of Document Generation with Nintex
PPTX
DIWUG Developing Apps with Office Graph
PDF
Introduction to Microsoft Flow and Azure Functions
PDF
2018-10-17 J1 3B - Let's build an adoption centre in Office 365 - Joanne Klein
PPTX
SPS Brussels 2017
PDF
The magic of Ajax & WebGIS
PDF
Microsoft Graph with ASP.NET MVC
Patterns in add ins espc15
The Power of Document Generation with Nintex
DIWUG Developing Apps with Office Graph
Introduction to Microsoft Flow and Azure Functions
2018-10-17 J1 3B - Let's build an adoption centre in Office 365 - Joanne Klein
SPS Brussels 2017
The magic of Ajax & WebGIS
Microsoft Graph with ASP.NET MVC

What's hot (20)

PPTX
PowerApps and Flow, one year later
PPT
Piwik Presentation
PPTX
SharePoint wizards - no magic needed, just use Microsoft Flow
PPTX
Use PowerShell superpower to tame your Office 365
PPTX
Workflows in SharePoint 2013
PDF
Forge - DevCon 2016: Free your design data
PDF
Yo Office! Use your SPFx Skills to Build Add-Ins for Word, Excel, Outlook and...
PPTX
Extend your development skills set using MS Graph
PDF
Extending Teams & Groups
PDF
INJECT MACHINE LEARNING AND OTHER CLOUD SERVICES IN YOUR EXISTING APPLICATIONS
PDF
Microsoft Teams Deep Dive
PDF
Rethinking Document Management in Office 365
PPTX
SharePoint Saturday Houston 2016 - Microsoft Graph - Deep Dive
PDF
Introduction to Web Application Development in Clojure
PPTX
Be a Modern SharePoint Developer
PPTX
Simplifying SQL Server & SharePoint Migrations using PowerShell
PPTX
When Windows Apps meet SharePoint
PDF
Building the Perfect Office 365 Tenant
PDF
iphone and Google App Engine
PDF
Connecting Apple’s iPhone To Google’s cloud
PowerApps and Flow, one year later
Piwik Presentation
SharePoint wizards - no magic needed, just use Microsoft Flow
Use PowerShell superpower to tame your Office 365
Workflows in SharePoint 2013
Forge - DevCon 2016: Free your design data
Yo Office! Use your SPFx Skills to Build Add-Ins for Word, Excel, Outlook and...
Extend your development skills set using MS Graph
Extending Teams & Groups
INJECT MACHINE LEARNING AND OTHER CLOUD SERVICES IN YOUR EXISTING APPLICATIONS
Microsoft Teams Deep Dive
Rethinking Document Management in Office 365
SharePoint Saturday Houston 2016 - Microsoft Graph - Deep Dive
Introduction to Web Application Development in Clojure
Be a Modern SharePoint Developer
Simplifying SQL Server & SharePoint Migrations using PowerShell
When Windows Apps meet SharePoint
Building the Perfect Office 365 Tenant
iphone and Google App Engine
Connecting Apple’s iPhone To Google’s cloud
Ad

Viewers also liked (20)

PPTX
SPCA2013 - Once you go app you don't go back
PPTX
A Deep-Dive into Real-World SharePoint App Development
PDF
SharePoint Summit Vancouver: Reach your audience with a SharePoint mobile app
PPTX
Developer’s Independence Day: Introducing the SharePoint App Model
PPTX
SharePoint Evolution conference 2013 - Bringing SharePoint Information into O...
PPTX
Road to the Cloud - Extending your reach with SharePoint and Office 365
PDF
O365con14 - the new sharepoint online apps - napa in action
PDF
Transitioning to SharePoint App Development
PPTX
Building your first app for share point 2013
PPTX
SP2013 for Developers - Chris O'Brien
PPTX
From Trashy to Classy: How The SharePoint 2013 App Model Changes Everything
PPTX
SharePoint App Store - itunes for you business
PDF
Building a Windows Store App for SharePoint 2013
PPTX
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
PPTX
Votre première App SharePoint pour Office 365 avec Visual Studio !
PPTX
SPSNL - Bringing SharePoint information into Office through Office Apps
PPTX
SharePoint 2013 App Provisioning Models
PPTX
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
PPTX
Introduction to the new SharePoint 2013 App Model
PPTX
7 Key Things for Building a Highly-Scalable SharePoint 2013 App
SPCA2013 - Once you go app you don't go back
A Deep-Dive into Real-World SharePoint App Development
SharePoint Summit Vancouver: Reach your audience with a SharePoint mobile app
Developer’s Independence Day: Introducing the SharePoint App Model
SharePoint Evolution conference 2013 - Bringing SharePoint Information into O...
Road to the Cloud - Extending your reach with SharePoint and Office 365
O365con14 - the new sharepoint online apps - napa in action
Transitioning to SharePoint App Development
Building your first app for share point 2013
SP2013 for Developers - Chris O'Brien
From Trashy to Classy: How The SharePoint 2013 App Model Changes Everything
SharePoint App Store - itunes for you business
Building a Windows Store App for SharePoint 2013
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Votre première App SharePoint pour Office 365 avec Visual Studio !
SPSNL - Bringing SharePoint information into Office through Office Apps
SharePoint 2013 App Provisioning Models
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Introduction to the new SharePoint 2013 App Model
7 Key Things for Building a Highly-Scalable SharePoint 2013 App
Ad

Similar to Share point app architecture for the cloud and on premise (20)

PPTX
The SharePoint 2013 App Model
PDF
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
PDF
(Almost) All About Apps for SharePoint 2013
PPTX
Developing a Provider Hosted SharePoint app
PPTX
Developing a provider hosted share point app
PPTX
Sp2013 overview
PPTX
Sp2013 overview biwug
PPTX
2014 SharePoint Saturday Melbourne Apps or not to Apps
PPTX
Custom Development in SharePoint – What are my options now?
PPTX
SharePoint Apps model overview
PPTX
Building SharePoint add-ins with JavaScript and c# sps Silicon Valley
PPTX
What's new for Developers in SharePoint 2013
PDF
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API
PPTX
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
PPTX
Sharepoint 2013 App
PPTX
SharePoint Saturday Sacramento 2013 SharePoint Apps
PDF
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
PPTX
SharePoint 2013 - What's new for Devs - Belgian IT Bootcamp 2012
PPT
SP2013 What's New for Developers : SPSSTL
PPTX
SharePoint development evolution from classic to app
The SharePoint 2013 App Model
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
(Almost) All About Apps for SharePoint 2013
Developing a Provider Hosted SharePoint app
Developing a provider hosted share point app
Sp2013 overview
Sp2013 overview biwug
2014 SharePoint Saturday Melbourne Apps or not to Apps
Custom Development in SharePoint – What are my options now?
SharePoint Apps model overview
Building SharePoint add-ins with JavaScript and c# sps Silicon Valley
What's new for Developers in SharePoint 2013
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
Sharepoint 2013 App
SharePoint Saturday Sacramento 2013 SharePoint Apps
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
SharePoint 2013 - What's new for Devs - Belgian IT Bootcamp 2012
SP2013 What's New for Developers : SPSSTL
SharePoint development evolution from classic to app

More from Sonja Madsen (20)

PPTX
SharePoint Framework, React, and Office UI sps Silicon Valley
PPTX
SharePoint Framework, React, and Office UI Fabric spc adriatics 2016
PPTX
SharePoint Framework, React and Office UI SPS Paris 2016 - d01
PPTX
Working with a super model for SharePoint Tuga IT 2016
PPTX
SharePoint Framework SPS Madrid 2016
PPTX
Cloud-first SharePoint JavaScript Add-ins - Collab 365
PPTX
Building Share Point add-ins with JavaScript and c# Microsoft Western Europe ...
PPTX
Office 365 security concerns, EU General Data Protection Regulation (GDPR)
PPTX
Share point hosted add ins munich
PPTX
Workshop supermodel munich
PPTX
GitHub and Office 365 video Munich
PPTX
Branding Office 365 SharePoint Days
PPTX
Quick start guide to java script frameworks for sharepoint add ins sharepoint...
PPTX
Branding Office 365 ESPC15
PPTX
Quick start guide to java script frameworks for sharepoint add ins oslo
PPTX
Wonderful csom sps barcelona
PPTX
Branding office 365 copenhagen
PPTX
JavaScript Frameworks for SharePoint add-ins Cambridge
PPTX
Branding office 365 Netherlands
PPTX
Branding office 365
SharePoint Framework, React, and Office UI sps Silicon Valley
SharePoint Framework, React, and Office UI Fabric spc adriatics 2016
SharePoint Framework, React and Office UI SPS Paris 2016 - d01
Working with a super model for SharePoint Tuga IT 2016
SharePoint Framework SPS Madrid 2016
Cloud-first SharePoint JavaScript Add-ins - Collab 365
Building Share Point add-ins with JavaScript and c# Microsoft Western Europe ...
Office 365 security concerns, EU General Data Protection Regulation (GDPR)
Share point hosted add ins munich
Workshop supermodel munich
GitHub and Office 365 video Munich
Branding Office 365 SharePoint Days
Quick start guide to java script frameworks for sharepoint add ins sharepoint...
Branding Office 365 ESPC15
Quick start guide to java script frameworks for sharepoint add ins oslo
Wonderful csom sps barcelona
Branding office 365 copenhagen
JavaScript Frameworks for SharePoint add-ins Cambridge
Branding office 365 Netherlands
Branding office 365

Recently uploaded (20)

PPTX
IoT Lecture IoT Lecture IoT Lecture IoT Lecture
PDF
Testing & QA Checklist for Magento to Shopify Migration Success.pdf
PDF
Paper: World Game (s) Great Redesign.pdf
PPTX
WEEK 15.pptx WEEK 15.pptx WEEK 15.pptx WEEK 15.pptx
PPTX
Data Flows presentation hubspot crm.pptx
PPTX
Slides World Games Great Redesign Eco Economic Epochs.pptx
PDF
healthwealthtech4all-blogspot-com-2025-08-top-5-tech-innovations-that-will-ht...
PPTX
IT-Human Computer Interaction Report.pptx
PDF
The_Decisive_Battle_of_Yarmuk,battle of yarmuk
PPTX
Digital Project Mastery using Autodesk Docs Workshops
PDF
ilide.info-huawei-odn-solution-introduction-pdf-pr_a17152ead66ea2617ffbd01e8c...
PDF
B450721.pdf American Journal of Multidisciplinary Research and Review
PDF
Slides World Games Great Redesign Eco Economic Epochs.pdf
DOCX
Audio to Video AI Technology Revolutiona
PPTX
Introduction to networking local area networking
PPTX
购买林肯大学毕业证|i20Lincoln成绩单GPA修改本科毕业证书购买学历认证
PPTX
PORTFOLIO SAMPLE…….………………………………. …pptx
PPTX
IOT LECTURE IOT LECTURE IOT LECTURE IOT LECTURE
PPTX
最新版美国埃默里大学毕业证(Emory毕业证书)原版定制文凭学历认证
PPT
chapter 5: system unit computing essentials
IoT Lecture IoT Lecture IoT Lecture IoT Lecture
Testing & QA Checklist for Magento to Shopify Migration Success.pdf
Paper: World Game (s) Great Redesign.pdf
WEEK 15.pptx WEEK 15.pptx WEEK 15.pptx WEEK 15.pptx
Data Flows presentation hubspot crm.pptx
Slides World Games Great Redesign Eco Economic Epochs.pptx
healthwealthtech4all-blogspot-com-2025-08-top-5-tech-innovations-that-will-ht...
IT-Human Computer Interaction Report.pptx
The_Decisive_Battle_of_Yarmuk,battle of yarmuk
Digital Project Mastery using Autodesk Docs Workshops
ilide.info-huawei-odn-solution-introduction-pdf-pr_a17152ead66ea2617ffbd01e8c...
B450721.pdf American Journal of Multidisciplinary Research and Review
Slides World Games Great Redesign Eco Economic Epochs.pdf
Audio to Video AI Technology Revolutiona
Introduction to networking local area networking
购买林肯大学毕业证|i20Lincoln成绩单GPA修改本科毕业证书购买学历认证
PORTFOLIO SAMPLE…….………………………………. …pptx
IOT LECTURE IOT LECTURE IOT LECTURE IOT LECTURE
最新版美国埃默里大学毕业证(Emory毕业证书)原版定制文凭学历认证
chapter 5: system unit computing essentials

Share point app architecture for the cloud and on premise

  • 1. SharePoint App Architecture for the Cloud and on-premise Prod3003 Sonja Madsen SharePoint MVP #CampusDays
  • 2. #CampusDays Sonja Madsen • SharePoint MVP • Owner of Sonjasapps • Blog at sp2013.blogspot.com, tweet at @sonjamadsen • Consulting • Microsoft partner and vendor • Speaker at conferences on SharePoint topics • Over 10 years with SharePoint • Self-employed • Creuna, Proactive, DIS-Play, Avanade, Microsoft
  • 3. #CampusDays Agenda • Provider apps • Demo - Create team sites on Office 365 • Office App Model Samples Team • Farm code -> Client Object Model • Demo – Create sites with metadata • How it works • JavaScript vs C#
  • 4. #CampusDays Provider apps SharePoint 2013 Office 365 Provider app Cloud On-premise
  • 5. #CampusDays Demo: create team project sites on Office 365 Projects Web
  • 6. #CampusDays SharePoint out-of-box No project metadata, no overview No governance on how to call sites, where to create sites, permissions How to find ”my project sites" Look and feel, site templates?
  • 7. #CampusDays SharePoint Hosted vs Provider App Client Object Model Elevate permissions with Provider App JavaScript vs C# Hosting Developer environment
  • 10. #CampusDays Architecture Provider app code List Sites Overview Hosting, Visibility, Maintenance, Administration, UI, End-User Involvement
  • 11. #CampusDays User Voice Office App Model Samples team https://github.com/OfficeDev/PnP/tree/dev http://blogs.office.com/2014/08/13/uservoice-driving-improvements-sharepoint-api/
  • 12. #CampusDays Farm Solution Provider App using (SPSite site = new SPSite(projectweburl)) { using (SPWeb web = site.RootWeb) { web.AllowUnsafeUpdates = true; int TemplateI = 0; string lcid = System.Threading.Thread.CurrentThread.CurrentUICulture.LCID.ToString(); SPWebTemplateCollection webTemplates = site.GetWebTemplates(Convert.ToUInt32(lcid)); for (int i = 0; i < webTemplates.Count; i++) { if (webTemplates[i].Title == sitetemplatetitle) { TemplateI = i; } } SPWebTemplate webTemplate = webTemplates[TemplateI]; string webTitle = title; string webUrl = id; //create project site web.Webs.Add(webUrl, webTitle, "", uint.Parse(lcid), webTemplate, false, false); web.Update(); } } var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext); using (var clientContext = spContext.CreateUserClientContextForSPHost()) { if (clientContext != null) { WebCreationInformation creation = new WebCreationInformation(); creation.Url = webTitle; creation.Title = webTitle; Web newWeb = clientContext.Web.Webs.Add(creation); clientContext.Load(newWeb); clientContext.ExecuteQuery(); } }
  • 13. #CampusDays Farm Solution Provider App ThmxTheme.SetThemeUrlForWeb(currentweb, currentweb.ServerRelativeUrl + "/_catalogs/theme/SK.thmx"); currentweb.Update(); siteWeb.ApplyTheme(colorPaletteFile.ServerRelativeUrl, fontSchemeFile.ServerRelativeUrl,null, true); siteWeb.Update(); clientContext.ExecuteQuery();
  • 14. #CampusDays C# JavaScript var context = SP.ClientContext.get_current(); SP.Utilities.Utility.logCustomAppError(context, "My custom error message."); context.executeQueryAsync(function(){},function(){});
  • 17. #CampusDays JavaScript vs C# Client Object Model Elevate permissions with Provider App JavaScript vs C# No Web Parts with C# Can’t remove Web Parts from page with C# Custom forms – JavaScript Intellisense
  • 18. #CampusDays Summary • Provider apps • Demo: create team sites on Office 365 • Demo - Office App Model Samples Team • Farm code -> Client Object Model • Demo – create sites with metadata • How it works • JavaScript vs C#
  • 19. #CampusDays SharePoint App Architecture for the Cloud and on-premise Prod3003
  • 20. EVENT SPONSORER TRACK SPONSORER EXPO SPONSORER
  • 21. #CampusDays Q&A #Ask me about everything! Join me at the Microsoft Booth the next 30 minutes @Meet The Experts Dont forget to: Evaluate this session!

Editor's Notes

  • #2: Title Slide – Insert session title, session code and speaker names Project this slide while attendees are arriving. Please do not add additional elements to this slide
  • #10: Demo placeholder (Optional)
  • #16: Demo placeholder (Optional)
  • #17: Demo placeholder (Optional)
  • #20: Section title slide (Optional)