Apps for SharePoint 2013


Published on

A short introduction to the new app model in SharePoint 2013

Published in: Technology
1 Comment
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Apps for SharePoint 2013

  1. 1. Apps for SharePoint 2013 Alex Pop July 2013
  2. 2. Application development models in SharePoint 2010 ● sandboxed solutions: ○ limited server side API access; ● farm solutions: ○ installed using "*.wsp" packages that have impact on the whole SharePoint farm when installed or updated ○ on a production system these solutions have to be installed out of hours;
  3. 3. Application development models in SharePoint 2013 ● sandboxed solutions: deprecated; ● farm solutions: only use for applications targeted at SharePoint administrators; ● new "apps for SharePoint" model: ○ THE recommended model for end user applications; ○ derived from SharePoint Online and Office 365 requirements; ○ isolates all custom server-side code from the SharePoint instance
  4. 4. "Apps for SharePoint" types ● There are 3 new types of SharePoint solutions: ○ SharePoint hosted, autohosted and provider hosted; ○ they all create a new ".app" file that has to be deployed to SharePoint using a very complex process; ● SharePoint hosted app: a SharePoint app project containing SharePoint assets(lists, workflows, etc.) + web pages that can only use client side code;
  5. 5. "Apps for SharePoint" types(cont.) ● Autohosted and Provider hosted apps: ○ both have a SharePoint app project and an ASP. NET web project: a SharePoint app and a web application; ○ the Autohosted solution packages all assets (including the website and the database scripts) in the ".app" file; ○ the Provider hosted solution packages only the SharePoint app project into the ".app" file. The web application deployment is done independently.
  6. 6. Provided hosted apps - integration ● the web application communicates with SharePoint using: ○ a shared security certificate; ○ a helper library "AppForSharePointWebToolkit" (available as a NuGet package); ○ the SharePoint Client Object Model(CSOM); ○ the SharePoint app manifest needs to list the SharePoint permissions that your app needs;
  7. 7. Provided hosted apps - integration (cont.) ● the web application can expose "app parts" to SharePoint: <iframe> elements that render content from the web application; ● the SharePoint app can: ○ package SharePoint assets(lists, content types, workflows, etc.); ○ extend SharePoint menus;
  8. 8. What this all means ● employ modern web development practices: develop clean, testable applications; ● leverage existing web development skills: you don't need advanced SharePoint knowledge to accomplish even the most basic tasks; ● scalable, distributed web applications: you can allocate more resources to an app for SharePoint if and when needed; ● support for other application frameworks?
  9. 9. Scenarios enabled by Apps For SharePoint ● use SharePoint as a data store together with a custom web application; ● use a third party data store together with a custom web application; ● mix and match SharePoint and external data stores; ● provide "app parts" to SharePoint;
  10. 10. Current SharePoint application architecture ● the entry point for all applications is a SharePoint page; ● the SharePoint app delivers all SharePoint specific assets; ● the web application will render all UI components; ● the web application will interact with Sharepoint using the current user identity or using a custom identity within a scheduled job;
  11. 11. Development update ● Bootstrap is everywhere: ○ Bootstrap master pages now deployed on the SharePoint server; ○ Bootstrap is used to style the app for SharePoint; ○ The result is consistent styles applied throughout; ● ASP.NET MVC: ○ provides Windows authentication and session identity; ○ builds the single page application skeleton; ○ minifies and concatenates all assets;
  12. 12. Development update (cont.) ● ServiceStack: used to build RESTful , testable web services (90% server side code coverage with AutoFixture); ● AngularJS: ○ MV* framework for single page applications; ○ reusable web components(a.k.a the future of web); ○ testable code via dependency injection; ● Kendo UI Web: powerful grid and other widgets plus IE8 support (now compatible with AngularJS); ● Entity Framework 5: using the code first model with database migrations.
  13. 13. Notes ● Reimagine SharePoint Development: http: // US/office/apps/dn133840 ● Deciding between apps for SharePoint and SharePoint solutions: com/library/sharepoint/dn268593(v=office. 15)