Programming models in SharePoint 2013
Get a quick overview of the different kinds of SharePoint development projects.
Last modified: August 12, 2015
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.
SharePoint publishing sites
SharePoint farm solutions
Mobile add-ins for SharePoint
Reusable components for SharePoint
These categories are not mutually exclusive. For example, you can develop a publishing site as an SharePoint Add-in. The following sections define these categories and guide you to the documentation for each.
A SharePoint Add-in is similar to an add-in 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 SharePoint Add-ins from a public SharePoint add-in store or from their organization's corporate add-in catalog. A SharePoint Add-in can include classic SharePoint components such as lists, custom website pages, Web Parts, workflows, and content types. But an SharePoint Add-in can also surface a remote web application and remote data in SharePoint. A SharePoint Add-in can also include both SharePoint and remote components. SharePoint Add-ins 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 SharePoint Add-ins, see SharePoint Add-ins. For more information, see SharePoint Add-ins compared with SharePoint solutions, and Choose the right API set in SharePoint 2013.
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 Windows Phone apps that access 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.