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. 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. "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. "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. 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. 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. 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. 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. 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. 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. 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. Notes
● Reimagine SharePoint Development: http:
//msdn.microsoft.com/en-
US/office/apps/dn133840
● Deciding between apps for SharePoint and
SharePoint solutions: http://msdn.microsoft.
com/library/sharepoint/dn268593(v=office.
15)