Data storage options in apps for SharePoint
Learn about the variety of ways that an app for SharePoint can store data.
Last modified: March 09, 2015
Applies to: apps for SharePoint | Office 365 | SharePoint Add-ins | SharePoint Foundation 2013 | SharePoint Server 2013
The name "apps for SharePoint" is changing to "SharePoint Add-ins". During the transition, the documentation and the UI of some SharePoint products and Visual Studio tools might still use the term "apps for SharePoint".
An app for SharePoint can use almost any kind of structured data storage, both inside and out of SharePoint 2013 and on Microsoft and non-Microsoft platforms. The following are some locations where you can store structured data for an app for SharePoint:
SharePoint lists in an app web
External data sources connected to SharePoint with Microsoft Business Connectivity Services (BCS)
A non-Microsoft cloud service
A database on your own server
You will probably upgrade your app for SharePoint at some point. When an app for SharePoint includes SharePoint components on an app web, the upgrade process makes a complete copy of the app web. For this reason, very large SharePoint lists on the app web make the upgrade process time-consuming and processor intensive on the content database server. You should avoid putting "big data" in SharePoint lists on the app web.
Documents, images, videos, audio files, and other kinds of unstructured data that is produced or used by an app for SharePoint can be stored in or outside SharePoint. Document libraries are a good choice for documents and are searchable via SharePoint search. A site asset library is often a good choice for multimedia files.
Other options include blob storage in your Microsoft Azure account or on your own servers. You can also store files in some non-Microsoft platforms or cloud services.
Metadata for an app for SharePoint, such as user preferences, location information, and other settings can be stored in several places. A hidden SharePoint list is sometimes a good choice. You can also use the property bag of the app web. Another option, for a provider-hosted app, is to use Microsoft Azure Table storage.
Your options for data access, of course, depend on your choice of storage. Data access and search are discussed in detail in several other articles. For more information, see Data access options for apps in SharePoint 2013.