Copyright© 2012 Microsoft Corporation
SharePoint Apps with Windows Azure Platform as a Service
Don KirkhamSenior Engineer / Microsoft SolutionsMCPD: [email protected]@DonKirkham
Christopher WebbSenior Engineer / Microsoft SolutionsMCSM: [email protected]@chriswebb18
Copyright© 2012 Microsoft Corporation
Intro/Poll
Intro/PollOverview of
IaaS, PaaS, SaaS
Changes in SPO Development &
Pain Points
Copyright© 2012 Microsoft Corporation
Full Trust SolutionsNo real control
Support is a nightmare
Upgrade is quite a challenge
Securing code to run in hosted environments is effectively
impossible
SP Code
More custom code: aspx, dlls, web services,
GAC
SandboxPartial control
App ModelControl, Trust, Manage
Way too strict for developers
Hard to maintain and expand
Managed by your self
SP Code
Sandboxed Custom Code
App code (client or server)
SP Code
Isolated App client side code
Host/language independent
Management and update easily doable per app
Emprases reusability
No server side sandbox, improved CSOM
Farm
• Full trust solutions
• Customizations to file system of servers
• Hosted in same process as SharePoint
• Server side SharePoint API access
• Classic model from 2007
Sandbox
• Declarative elements
• Partially trusted code service still included for limited server side support
• Hosted in isolated process
• Limited server side SharePoint API access
SP Apps
• New Apps model
• Deployed from corporate catalog or SharePoint store
• Manage permission and licenses specifically
• Simple install and upgrade process
• Preferred option
Copyright© 2012 Microsoft Corporation
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
SP Apps
• App catalog based solution
• Packaged reusable solutions built for specific functionality
• Not only for marketplace or store, but also as platform for customer-specific customizations
Copyright© 2012 Microsoft Corporation
Provider Hosted Apps
SharePoint Farm
Remote connectivity
ACS
End users
App Admin
Registration of apps
Approve and publish apps
spapp_appname.contoso.com
Verification of registration
1
6
2
34
5
Contoso
Copyright© 2012 Microsoft Corporation
Scope URI Available Rights
http://sharepoint/content/sitecollection Read, Write, Manage, FullControl
http://sharepoint/content/sitecollection/web Read, Write, Manage, FullControl
http://sharepoint/content/sitecollection/web/list Read, Write, Manage, FullControl
http://sharepoint/content/tenant Read, Write, Manage, FullControl
Copyright© 2012 Microsoft Corporation
Site Definition
• No Office365
• Long term impact on costs
• Blocks transition to cloud
• Causes significant issues with future migration and upgrade
Site Templates
• Poor site collection creation story
• Negative impact on upgrades
• Causes additional maintenance costs with evergreen
• Not with publishing features
Web Templates
• Poor site collection creation story
• Causes maintenance costs with evergreen
SP Server side provisioning
• Provision oob sites, but modify them based on user selection and requirements
• Standardization of site creation in code
• No Office365
Remote provisioning
• CSOM supports creation of site collections only in Office365
• Standardization of site creation in code
• Can be done from any external system
Options
Options available
Cost impact (short and long term)
Support in cloud
Poor Fair Average Good Excellent
Copyright© 2012 Microsoft Corporation
Provider Hosted Apps
Assets and configuration• Branding Images• Master Pages• Page Layouts• Other settings
Remote Timer job
SharePoint Farm
CSOM/REST
CSOM/REST
1
2
3
45
Copyright© 2012 Microsoft Corporation
Assets and configuration• Branding Images• Master Pages• Page Layouts• Other settings
Remote Timer job
Initial provisioning based on the out of the box site. Usually either team site or publishing site.Assets are uploaded from the provisioning engine using CSOM/REST
Apply the needed changes (configurations etc.) on top of the out of the box site based on the user selection.This is the specialization part, but since we start from oob site, we always get the latest improvements to it as a base line.
12
3
3
3
Copyright© 2012 Microsoft Corporation
Assets and configuration• Branding Images• Master Pages• Page Layouts• Other settings
Remote Timer job
Initial provisioning based on the out of the box site. Usually either team site or publishing site.Assets are uploaded from the provisioning engine using CSOM/REST
Apply the needed changes (configurations etc.) on top of the out of the box site based on the user selection.This is the specialization part, but since we start from oob site, we always get the latest improvements to it as a base line.
12
3
3
3
Copyright© 2012 Microsoft Corporation
SharePoint Farm
Provider Hosted Apps
Assets
1
3
2
CSOM
• Upload CSS• Set JS Injection for CSS
to be executed in page process
Copyright© 2012 Microsoft Corporation
SPCSPFont files describe the font scheme
Specify New Page Layout
Select New Master Page
Specify New Background Image
olor files describe the color palette
SP Color
Copyright© 2012 Microsoft Corporation
Theme • Custom Master Page• Can introduce any level of customizations
• When new changes are introduced to the out of the box master, those should be copied to custom master pages as well
• Additional maintenance burden
• Future major version upgrades will cause additional requirements to re-create the end user experience
Copyright© 2012 Microsoft Corporation
SharePoint Farm
Provider Hosted Apps
Theme elements
1
3
2
CSOM
• Upload needed files• Set theme to site• (Set master page to
site) • Color file• Font file• Background image• (Master page)
Copyright© 2012 Microsoft Corporation
SharePoint Farm
Modify oob site definition provisioning model
15\Template\Features\[StapledFeature]\
<xml>feature.xml
<xml>
2
15\Template\Features\[StaplerFeature]
<xml>element.xml
3
1
4
Copyright© 2012 Microsoft Corporation
https://*.contosoapps.com
https://intranet.contoso.com/sites/groupx
Root
News Organization Teams Search AppWeb
Root
Sub site AppWeb
1
2 2
3
4
4https://intranet.contoso.com/sites/team
Copyright© 2012 Microsoft Corporation
Root
Sub site
1
Root
AppWeb AppWebhttps://intranet.contoso.com/sites/t
eam
https://intranet.contoso.com/sites/catalog
Root
News Organization Teams Search
https://intranet.contoso.com /sites/orgZ
https://*.contosoapps.com
4
4
23
Copyright© 2012 Microsoft Corporation
Centrally deployed • Side loading• Supports adding app parts and app
custom actions to host web
• Requires specific feature to be enabled from host web for app installation
• No centralized control to add or remove the app
• No UI to deploy the app cross sites
• Application install/uninstall events do fire when deployed to sites
Copyright© 2012 Microsoft Corporation
https://github.com/OfficeDev/PnP/wiki
http://blogs.msdn.com/b/vesku/archive/2014/09/03/office-365-developer-patterns-and-practices-introduction-to-the-program.aspx
http://dev.office.com/sample-code
Don KirkhamSenior Engineer / Microsoft [email protected]@DonKirkham
Christopher WebbSenior Engineer / Microsoft SolutionsMCSM: [email protected]@chriswebb18
Copyright© 2012 Microsoft Corporation
http://blogs.msdn.com/b/kaevans/archive/2014/04/02/deploying-a-sharepoint-app-to-azure-as-part-of-a-build.aspx
http://blogs.msdn.com/b/kaevans/archive/2014/03/04/building-sharepoint-2013-apps-with-windows-azure-paas.aspx
http://blogs.msdn.com/b/kaevans/archive/2014/02/24/creating-a-sharepoint-2013-app-with-azure-web-sites.aspx
http://blogs.msdn.com/b/steve_fox/archive/2013/02/18/building-your-first-provider-hosted-app-for-sharepoint-using-windows-azure-part-1.aspx
http://blogs.msdn.com/b/kaevans/archive/2014/09/28/making-sharepoint-apps-scale-with-azure-redis-cache.aspx
Copyright© 2012 Microsoft Corporation
http://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk-get-started/
http://blogs.msdn.com/b/richard_dizeregas_blog/archive/2014/04/07/sharepoint-timer-jobs-running-as-windows-azure-web-jobs.aspx
http://blogs.msdn.com/b/kaevans/archive/2014/03/02/building-a-sharepoint-app-as-a-timer-job.aspx