Programming models in SharePoint 2013
Get a quick overview of the different kinds of SharePoint development projects.
Last modified: February 25, 2014
Applies to: SharePoint Foundation 2013 | SharePoint Server 2013
You can develop applications for the SharePoint 2013 platform in many ways. These applications can be usefully categorized into the following groups based on the tools used to create them, the programming models used to develop them, the methods by which they are packaged and deployed, the methods by which they are marketed, and the devices on which they run.
Apps for SharePoint
SharePoint publishing sites
SharePoint farm solutions
Mobile apps for SharePoint
Reusable components for SharePoint
These categories are not mutually exclusive. For example, you can develop a publishing site as an app for SharePoint. The following sections define these categories and guide you to the documentation for each.
An app for SharePoint is similar to an app on a mobile device. It is a stand-alone productivity solution that does a small number of related tasks, installs easily, and uninstalls cleanly. Users can discover and download apps for SharePoint from a public SharePoint app store or from their organization's corporate app catalog. An app for SharePoint can include classic SharePoint components such as lists, custom website pages, Web Parts, workflows, and content types. But an app for SharePoint can also surface a remote web application and remote data in SharePoint. An app for SharePoint can also include both SharePoint and remote components. Apps for SharePoint are very safe applications whose custom logic is always shifted "up" to the cloud or "down" to the client computers. It never runs on the SharePoint servers.
For an introduction to the model for apps for SharePoint, see Overview of apps for SharePoint. For more information, see Apps for SharePoint compared with SharePoint solutions, Choose the right API set in SharePoint 2013, and Build apps for SharePoint.
SharePoint publishing sites provide large-scale content publishing with a high degree of maintainability and regulation compliance. They also provide management of documents, records, taxonomy, and content types. For more information, see Build sites for SharePoint 2013.
SharePoint farm solutions are trusted SharePoint extensions whose custom logic calls the SharePoint server object model and runs with full trust on the SharePoint servers. These solutions are primarily for custom administrative extensions of SharePoint, such as timer jobs, custom Windows PowerShell commands, and extensions of Central Administration. Farm solutions are distributed as SharePoint solution packages that farm administrators upload to a farm-wide storage location from which they can be deployed. Components in farm solutions can have farm, web application, site collection, or website scope. For more information, see Build farm solutions in SharePoint 2013.
Windows Phone apps, and apps built on non-Microsoft mobile platforms, can access SharePoint websites and data. Tools for building Windows Phone apps that interact with SharePoint 2013 are available for installation on Visual Studio 2010 (not Visual Studio 2012 at this time). A SharePoint client managed API just for use on Windows Phone devices is available. Mobile devices, including non-Microsoft devices, can also access SharePoint data through SharePoint REST/OData endpoints. For more information, see Build mobile apps for SharePoint 2013.
The SharePoint 2013 platform and Visual Studio 2012 enable encapsulation and reuse of application elements, including elements created with code, script, and XML markup. For more information, see Build reusable components for SharePoint 2013.