Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - SharePoint Fest 2012


Published on

Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - SharePoint Fest 2012

  1. 1. Understanding SharePoint 2013Code Deployment Models- Apps vs. SolutionsNik PatelLead Solutions Architect, Slalom Consulting, Chicago Practice
  2. 2. Session Goals Session Level - 200 Audience – SharePoint Architects and SharePoint Developers Simple Goal – Understanding where Apps fits in SharePoint 2013 Development Landscape 2
  3. 3. About Me Nik Patel • Lead Solutions Architect, Slalom Consulting • Working with SharePoint 2010 since Summer 2009 TAP • Master in Computer Science from IIT, Chicago Contact Info • Email – • Blog – Nik Patel’s SharePoint World - • Twitter - @nikxpatel • LinkedIn - • Slideshare - 3
  4. 4. Session Agenda Why New Code Deployment Model – SharePoint 2013 Apps? Revisit Farm Solutions and Sandbox Solutions Models Introducing SharePoint Apps as Code Deployment Model  Quick walkthrough of SharePoint Hosted Apps In-depth Comparison of Solutions vs. Apps Prescriptive Guidance of when to use SharePoint Solutions vs. Apps Questions and Answers 4
  5. 5. SharePoint 2013 Apps – Rumors, Humors, Opinions, and Level SetIt’s too early to say how organization will adopt Apps Model Apps are Crapps  Apps are not magic button  Both solutions and Apps are valid options Apps supports No Server side code, Lots of Client side scripting  Don’t be confused with Server Side Code with SharePoint Server Side APIs  This is true for SharePoint Hosted Apps but you can have server side code in Cloud hosted Apps Sandbox Solutions are deprecated  Microsoft’s meaning for deprecated is – Not preferred  Apps are preferred option over Sandbox Solutions Don’t listen to early opinions, Try it by yourself to decide..  5
  6. 6. What are SharePoint 2013 Apps?Independent, Self-contained, Scenario-based Applications It’s an application whose interface is Yeah..It’s a widget surfaced through or application I can Hmmm.. It’s self- SharePoint but code contained piece of acquire to perform runs somewhere functionality that extend my work or run elsewhere away the capabilities of a from Servers or business regardless SharePoint website!!! Browser!!! of what technology it is!!! Solution Architect Developer Business User 6
  7. 7. Where can I Find Apps in SharePoint 2013? Independent, Self-contained, Scenario-based ApplicationsEverything in SharePoint 2013 are Apps including SharePoint Lists & Libraries (Kind of!!) 7
  8. 8. DemoQuick walkthrough of SharePoint Apps 8
  9. 9. Why SharePoint 2013 Apps?It’s a fundamental shift from the traditional SharePoint customization and deployment model All about End-Users – Consumerization through Apps Catalogs  Allows end-users to extend their sites without going through IT Channels All about IT Pro - Stabilize the SharePoint Environment  Keep custom code away from Servers, Improved Outage & Upgrade stories  Orgs with At least 1 version upgrade with highly customized environment would appreciate Apps All about Developers - Pieces to Packages  Apps trying to focus back on fully packaged and ready to use assembled custom solutions All about Cross-Platform - Use Existing Skills to extend SharePoint  Rather than reinventing wheels in SharePoint, use existing technologies & skills to build new apps e.g. Bing Apps Apps are here to stay.. Embrace It with Caution..  9
  10. 10. Understanding SharePoint 2013 Custom Development LandscapeJourney from SharePoint 2007 to SharePoint 2013 10
  11. 11. Revisit SharePoint Farm Level Solutions SharePoint’s First Generation Code Execution Model What are they?  Supports Full Trust Code Model  Supports Full Server Side Object Model and Client Side Object Model APIs  Requires Solutions Run on the Server Major limitations  Supported in On-Premises only, Not supported in SharePoint Online  No Marketplace  Requires big server touch, customizations deployed on servers  Root cause of most of SharePoint outages – Performance and Stability Concerns  Huge concerns for SharePoint Upgrade strategy 11
  12. 12. Revisit SharePoint Sandbox SolutionsSharePoint’s Second Generation Code Execution ModelMicrosoft’s first attempt to get away from Farm Level Solutions What are they?  Available in both SharePoint Online & On-Premises  Requires Partial Trust Code Model Major Benefits over Farm Solutions  Code runs on sandbox, Doesn’t require Access to Server  Can’t harm the SharePoint server, ideal for hosted environments Major limitations  Just like Farm Solutions, No Marketplace  Severe restrictions and limited SharePoint APIs – No Database, No File System, No Web Services  Scoped only at the Site Collection Level, No Cross-Site Collection Access  Runs only under current user context, Can’t run code with administrative elevated privileges  Runs under complex resource monitoring system - Outage of Application if Resource Quota is exceeded 12
  13. 13. Introducing SharePoint App Model – What are they?SharePoint’s Third Generation Code Execution ModelMicrosoft’s second attempt to get away from Farm Level Solutions Major Benefits over Solutions Model  Based on a proven and familiar app model used in Mobile technologies  SharePoint business logic no longer live in SharePoint  Apps custom code executes in the client, cloud or on-premises  Apps can live in Public Marketplace or Private Corporate Marketplace  Apps have efficient end-user lifecycle – Install, Use, Manage, Upgrade, Remove  Apps will have better SharePoint Upgrade story – decoupled from SharePoint 13
  14. 14. Apps Primer - Major Discussion PointsApps Building Blocks - Basics App Models – What kind of Apps can be developed? App User Experience  App Shapes – How does App integrated or consumed with SharePoint?  App Scopes – Where does App runs? Can App access data from other sites?  App Branding – How does App looks like when integrated with SharePoint – UX, Navigation, Seamless Experience? App Interaction with SharePoint  App Integration – How does App access with SharePoint Data?  App Rights – How does App granted rights to consume SharePoint data? 14
  15. 15. App Primer – App Hosting Models Three different approaches SharePoint Hosted Apps  Apps hosted in SharePoint as isolated App web, SharePoint acts as file store to host Apps components like HTML, CSS, or JavaScript  No Server side code, business logic runs on JavaScript Provider Hosted Apps  Apps hosted outside of SharePoint in IIS, Windows Azure, or other dedicated self-hosted Infrastructure  Apps can be built using ASP.NET or any other technologies like Java or PHP Azure Auto Hosted Apps  Supported only in Office 365 at this moment, Azure subscription tied to Office 365  Auto provisions Azure web site and SQL Azure during Apps installation processNote - Diagram from MSDN 15
  16. 16. App Primer – App Experience via Shapes Three different ways to interact with AppsImmersive App Part App Custom Action App• Takes entire browser & UI screen • Behave in SharePoint just like • Action menu on Ribbon or ECB Web Parts e.g. Stocks App, to trigger App interaction• Stand-alone business solution e.g. Weather App, Maps App Office Web Apps, SharePoint Search • Same as SharePoint 2010 Site, My Site etc. • Surfaced in SharePoint as Iframe 16
  17. 17. App Primer – App Experience (Continued ..) Seamless UI integration is key for successful App implementation App Scopes  App Branding and UI Integration  Apps are isolated and can’t  App Templates communicate directly with each other  Default option when creating apps in VS  Web Scope  App page pulls CSS from hosting SharePoint  Apps resources live in App Web, can be deployed at Site or Site Collection level  Chrome Control  Can use or register resources at Site or Site  Ideal for Cloud hosted Apps Collection Level  JavaScript based control that allows custom apps  Tenant Scope to consume the CSS and styling of the parent App Web  Only supported in cloud-hosted  Custom Branding  Supports multi-tenancy and interaction with multiple site collections  Full control over unique branding, Like SharePoint Search and My Site 17
  18. 18. App Primer – App Interaction with SharePoint Secure interaction with SharePoint App Interaction  Apps can communicate with SharePoint using CSOM and REST based APIs  REST/CSOM supports now Taxonomy, Search, Publishing, User Profile, and many more APIs App Rights  Apps can authenticate into SharePoint using OAuth or STS  SharePoint 2013 has new authentication model to authenticate SharePoint apps  App Permission request read/write/manage/full control maps to SharePoint permission levels read/contribute/design/full control 18
  19. 19. DemoQuick Experience of SharePoint Hosted Apps 19
  20. 20. Apps vs. Solutions – Decision TimeMulti-faceted in-depth comparison Comparing Apps with Solutions from 6 different perspective  Architectural level  Custom Development Level  Deployment, Packaging, and Maintenance Level  Infrastructure Level  Business Strategy and Direction  Usability PerspectiveNo clear winner.. It depends!!!!.. Apps Model is Not Magic Pill 20
  21. 21. Apps vs. Solutions – Architecture Decisions Farm Level SharePoint Provider Sandbox Solutions Azure Hosted Apps Solution Hosted Apps Hosted Apps On-Premises Only, SharePoint Supported No SharePoint SharePoint Online and SharePoint Online Online and On- SharePoint Online Only Environment Online (Supported On-Premises and On-Premises Premises in Dedicated SPO) Code Execution Full Trust Partial Trust Isolated Domain Isolated Domain Isolated Domain Model Browser or Non-Business Logic Runs Browser or Browser or SharePoint Only Browser SharePoint Browser or Non-SharePointUnder what Context? SharePoint Context Context Context Hosted Platform Hosted Platform Context Context Architectural Not Much (Only Yes, Very Much Complexity - Not Much (Only Yes, Little Bit Yes, Very Much (Requires Service Application (Configure bothRequires Additional Service Application (Configure App Windows Azure Skills as needs to be IIS and AppConfiguration to run needs to be activated) Domain) well) activated) Domain) code? 21
  22. 22. Apps vs. Solutions – Architecture Decisions (Continued …) Farm Level SharePoint Provider Hosted Sandbox Solutions Azure Hosted Apps Solution Hosted Apps Apps App Web (only Site Collection (Cant web or site App Web (only web or site cross site collection, App Web (only web collection) or collection) or Tenant (can Code Scope Farm limited APIs within Site or site collection) Tenant (can cross- cross-site collection in Collection as well) site collection in same tenant) same tenant) No Authentication Authentication & No Authentication No Authentication OAuth or STS Required, Can run OAuth authentication is Interaction with Required, can run only Required, can run Authentication on User or Admin required SharePoint APIs in User Context in App Context required contextMalicious Attack or May be (May be May be (May be May be (May be too earlyharm of SharePoint Yes (runs in same No (runs in isolated too early to say too early to say to say how OAuth willenvironment due to process) safe process) how OAuth will how OAuth will work) bad code work) work) 22
  23. 23. Apps vs. Solutions – Architecture Decisions (Continued …) Farm Level SharePoint Provider Hosted Sandbox Solutions Azure Hosted Apps Solution Hosted Apps Apps Medium-Low Medium-Low Medium-Low (Network & Performance for High - Very efficient, Medium - Runs in (Network & cloud (Network & cloud cloud latency, Requires SharePoint Data runs in main dedicated isolated latency, Requires latency, Requires CSOM or REST Access application process Sandbox Process CSOM or REST CSOM or REST connection points ) connection points ) connection points ) Supports deep integration with Partially (with web Partially (with web Partially (with web parts SharePoint UI and Yes Yes parts and chrome parts and chrome and chrome controls) Look & Feel controls) controls) Components Supports deep integration with SharePoint Not Advisable Not Advisable Components & (CSOM and REST Not Advisable (CSOM and Yes Yes (CSOM and REST Content (Lists, APIs be limited) REST APIs be limited) APIs be limited) Content Types,fields, page layouts, pages etc.) 23
  24. 24. Apps vs. Solutions – Custom Development Support Farm Level Sandbox SharePoint Hosted Provider Hosted Azure Hosted Apps Solution Solutions Apps AppsRequires code running on Yes Yes No No No Server SharePoint Farm level Yes No No No No Administrative API Supported APIs - Server Partial - Subset Full No No No Side Object Model of Full Trust APISupported APIs - Managed Yes Yes No Yes Yes Client Side Object Model Supported APIs - JavaScript Client Side Yes Yes Yes Yes YesObject Model & REST APIs Server Side Code - C# Yes Yes No Yes Yes 24
  25. 25. Apps vs. Solutions – Custom Development Support (Continued…) Farm Level Sandbox SharePoint Hosted Provider Hosted Azure Hosted Apps Solution Solutions Apps Apps Security - Run code with Yes (New App Yes (New App Yes No Yes (New App Rights) administrative privileges Rights) Rights) Apart from .NET, any Non- Limited (Azure supports Microsoft Server Side No No N/A Yes only .NET Framework, technologies Supported (e.g. Java, PHP & Node.js) Java, PHP, LAMP etc.) Allows you to take benefits on latest/future Sever Side No No No Yes Yestechnologies - newer version of ASP.NET MVC or .NET Allows you to take benefits on latest/future Client Side Yes Yes Yes Yes Yestechnologies - newer version of ASP.NET MVC or .NET 25
  26. 26. Apps vs. Solutions – Custom Development Support (Continued…) Farm Level SharePoint Provider Hosted Sandbox Solutions Azure Hosted Apps Solution Hosted Apps Apps Requires Local Farm orDevelopment Environment Yes Yes No No No for DevelopersRemote deployment and debugging from Visual No No Yes Yes Yes Studio Developer Productivity, Medium (New Medium (New Medium (New Technology) less complex moving High High Technology) Technology) parts Custom Timer Jobs or Yes No No No No Farm Integration 26
  27. 27. Apps vs. Solutions – Deployment, Packaging, and Maintenance SharePoint Provider Hosted Farm Level Solution Sandbox Solutions Azure Hosted Apps Hosted Apps AppsRequires Server Access Yes No No No No for customizations Requires outage of Yes, requires IIS Partially, During Partially, During Partially, During Application during Partially, During Upgrade Reset Upgrade Upgrade Upgrade deployment Upgrade Concerns Yes No No No No OK (Better than farm level Maintenance Story - Good (Requires but requires discipline for Great Great GreatInstall/Upgrade/Uninstall disciplined approach) large # of Site Collections) Yes (code runs under Yes (site collection locks No (OnlyTerminates the Process No (Only No (Only same IIS worker down if resource quota functionality in case of failure functionality outage) functionality outage) process) exceeded) outage) High (farm solutions Medium (cant affect Low (Hosted on Low (Hosted on Non- Low (No Server IT Pros Concerns may cause damage server resources, depends Non-SharePoint SharePoint Side code) and server touch) on resource quota) environment) environment 27
  28. 28. Apps vs. Solutions – Infrastructure Farm Level Sandbox SharePoint Hosted Provider Hosted Apps Azure Hosted Apps Solution Solutions Apps Additional Hardware, No (hosted in Yes (App Domain on Yes (Windows Azure No NoSoftware, and Licensing SharePoint) dedicated server) Subscription) Yes (But stored in the Additional Capacity Yes (Additional data Yes (Additional data No No same site collection Planning storage) storage) content database) SP Backup & Business Continuity - Requires Additional Requires Additional File System for SP Backup Only SP Backup Only DR, Backup-Restore Consideration Consideration Customizations Load-balancing & SharePoint SharePoint Requires Additional Requires Additional SP Backup Only Redundancy Farm Farm Consideration Consideration Yes (only for OAuth forAdditional Subscription Yes (tied with Office No No No ACS integration, not for Fees 365 subscription) STS or High-Trusted)Apart from IIS, any Non- No (hosted in Yes, only Windows Microsoft Server Side No No Yes (Any stack) SharePoint) Azuretechnologies Supported 28
  29. 29. Apps vs. Solutions – Business Direction Farm Level SharePoint Provider Hosted Sandbox Solutions Azure Hosted Apps Solution Hosted Apps Apps Distribution via No No Yes Yes Yes Marketplace Supports Business Strategy - No Custom No No Yes Yes Yes Code on SharePoint Supports Business Strategy - Less Hardware, Software, Yes Yes Yes No No Licensing Budget &Architecture Complexity Decoupling business solutions from No No Yes Yes Yes SharePoint 29
  30. 30. Apps vs. Solutions – Usability Perspective Farm Level SharePoint Provider Hosted Sandbox Solutions Azure Hosted Apps Solution Hosted Apps Apps End-Users End-Users End-Users Who Installs and Farm Admin Site Collection Admin (IT still required for (IT still required for (IT still required for Uninstalls Administration) Administration) Administration) Yes (requires Search Farm/App No (Search can’t Yes (requires additional Yes Yes additional Solutions Data crawl App Web) consideration) consideration)Collaborative Solutions(Side by Side existence Yes Yes No No No of Applications and Data) Seamless Experience while browsing Apps Yes Yes No No No and SharePoint 30
  31. 31. Prescriptive Guidance of when to use SharePoint Solutions vs. Apps Golden rules when to use which APIs Use Apps whenever you can – Requires philosophical change architecting SharePoint Applications  Keep in mind - Apps are limited to what CSOM and REST API Supports Use Apps for decoupling independent business applications (e.g. scenario based applications)  Use SharePoint Hosted Apps for small, reusable standalone applications (e.g. stocks, maps, RSS feeds, social integrators etc.)  Use Provider Hosted Apps for large corporate business applications (e.g. Time sheet system, budget tracking application)  Use Azure Auto Hosted Apps for wide-reach, public market place, scalable solutions Avoid Apps & Use Farm Level or Sandbox solutions for tight UI and features integration  Use Farm or Sandbox Solutions for SharePoint Deep Integrated Applications (e.g. Collaborative Applications) Use Apps or Sandbox Solutions to take away code from server & minimize risk to the farm for better upgrade stories in future Use Farm Level solutions for administrative interfaces to extend SharePoint functionalities 31
  32. 32. Additional Apps Resources Microsoft  Developer Ignite Training Videos -  Build Apps for Office and SharePoint -  3 Parts Series of Inside apps for Office and SharePoint - SharePoint Community  Andrew Connells Understanding SharePoint 2013 Apps -  Ted Pattisons Apps Series -  Chris O Briens Series - SharePoint apps: working with the app web, and why you should -  Analben Mehta’s 30 Articles series for Apps development for SharePoint - 32
  33. 33. • Thanks for attending the session!!• Follow SharePoint Fest Chicago • Twitter - @SharePointFest - • Website - 33
  34. 34. © 2011 Slalom Corporation. All rights reserved. The information herein is for informational purposes only and represents the current view of Slalom Corporation as of the date of this presentation. SLALOM MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.