SharePoint development has fundamentally shifted its focus to provide a model that is better suited to running SharePoint in the cloud. SharePoint applications solve many of the issues of running code in the cloud by extracting the run time of that code out of the core SharePoint process and into either Windows Azure or another hosting environment of your choice.
Like many application frameworks, SharePoint provides the key mechanisms for building out your UI, event, and data layers and integrations through the use of tiles and App Parts, remote event receivers, and a comprehensive Client-Side Object Model that your application can use to call into and manipulate data in SharePoint lists and libraries, respectively.
Whether you are building a complex CRM system or a much simpler application, you should certainly consider building a SharePoint application. Your code will be transportable to SharePoint Online and available to users in that environment.
WHAT YOU LEARNED IN THIS CHAPTER ...