SharePoint as an enterprise app platform

SharePoint generally is a great framework for building enterprise apps and I am not simply referring to apps built using the app model. I am referring to all the combinations of solutions that leverage services SharePoint provides. This includes client-side based solutions such as HTML5, JavaScript and traditional farm solutions.

SharePoint Consultancy

From a client-side point of view, SharePoint offers a lot when it comes to resources that can be leveraged from frameworks such as Ember or Angular.

SharePoint offers the following services:

  • Lists
  • Document libraries
  • A robust security model
  • User profile store
  • Extensive REST API and much more…

SharePoint developers (SharePoint farm solutions developers) have been leveraging successfully of these resources to build enterprise systems for many years. This has had sometimes not so good results due to the fact that these solutions can sometimes affect the whole SharePoint server farm in a way that is detrimental to anything else running in that server farm.

The solution for this as dictated by Microsoft with the introduction of the app model is to make more use of the “platform” personality of SharePoint. This allows effectively to write code that does not run within the same process as SharePoint code does and helps to avoid (most of the times at least) the common pitfalls of SharePoint farm solutions.

Sample customer ordering system built in combination with SharePoint + EmberJS

Here is a good example of such use of SharePoint by employing Ember JS coupled with a few lists in SharePoint to build an order management system.

Sharepoint, Ember, JSOM, REST, Lists

The ingredients for this hypothetical system are:

  • Two SharePoint lists (Customers and Orders with the required metadata)
  • EmberJS used to provide front end and business logic
  • SharePoint JSOM / REST API to allow Ember to work with list data
  • A Single Html Page (or SPA) containing css references and handlebars templates for use in the system
  • app.js referenced within the html page
  • A document library to host the page and its client resources

The following is sample code used in app.js

Note: In the code snippet above SPData represents an abstraction to using a combination of SharePoint rest services or simply JSOM.

The advantages of building your business app this way are multiple: Easy to change and quick to adapt without lengthy deployments and the guarantee of no custom code being executed with your SharePoint process.

In conclusion; the use of sophisticated client-side frameworks combined with SharePoint web services can provide an ideal environment for your next business application.