This post is article 21 from the 30 Articles App series for SharePoint
One of the common question I get from many readers is that what possibly they can do with SharePoint App? So here in this article I will discuss about what possible SharePoint artifacts and components you can include in an App.
One explicit limitation of the SharePoint App Model is that no server-side code can reside on the SharePoint farm as part of an App, and so if your app need to use any server-side code then it must be hosted outside of SharePoint either in the cloud or on-premises. So and when applicable any use of server-side code need cloud App Model. And the main benefit is that you can always scale your application without affecting the current SharePoint environment.
So here it begins, You can create/include all sort of SharePoint components mentioned below in your SharePoint App :
Fields (of field types that are built into SharePoint)
Custom content types
Custom List templates
List and library instances
Custom list views
Custom list forms
Remote event receivers -> check Article -17, 18 for more details
Custom actions (including shortcut menu items and ribbon customizations) -> Check Article -12
SharePoint WebParts (built-in) and app parts -> Check Article -8
You can also include Features (Web-scoped only), Web templates (but not site definitions), BCS Models (web-scoped only), external Content types and external lists referencing to that BCS Model, Property bags; and Workflows (SP2013 workflows now use Azure hosted workflow runtime. Coded workflows that use the SharePoint-hosted workflow runtime cannot be included in an app for SharePoint.Only declarative workflows or workflows that use the newer runtime are allowed. to see what’s new in SP2013 workflow check this)