SharePoint as an enterprise app platform together with Ember.js

SharePoint generally is a great framework for building enterprise apps. 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 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 suggested 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.

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

What resources SharePoint can offer:

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

Ember.js framework & SharePoint is the perfect marriage for building ambitious enterprise web solutions.

I have been using Ember.js for a long time to deliver high standard enterprise solutions. Obvious question I get asked many times is why not Angular or even ReactJS instead?

The answer to that question has many facets to it but in summary it boils down to Ember.js being a real framework rather than a library and being built and maintained by developers working on real life projects of their own. Any Ember.js developer can quickly become familiar to a new project, therefore quickly become productive, due to its heavy use of convention over configuration.

The combination of Ember.js + SharePoint enables novice and expert developers to develop highly scalable solutions that leverage great tools like Node.js and robust systems like SharePoint to create a highly scalable ambitious enterprise web application.

It enables developers dramatically reduce the amount of code they write.

At Kianda Technologies, we developed an Ember SharePoint Adapter that allows an easy development experience while building Ember apps for SharePoint. A drop of this adapter will quickly allow Ember data talk to SharePoint Lists.

Sample customer ordering system built in combination with SharePoint + Ember.js

Sample customer ordering system built in combination with SharePoint + Ember.js

 

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.

The ingredients for this hypothetical system are:

  • Two SharePoint lists (Customers and Orders with the required metadata)
  • js used to provide front-end and business logic
  • Ember SharePoint Adapter built to communicate via SharePoint JSOM / REST API to allow Ember to work with list data
  • Ember app referenced within a SharePoint page
  • A document library to host the page and its client resources

The following is sample code used in Ember app.

Sample Code used in Ember App

Sample Code used in Ember App

Note: In the code snippet above, SP Data represents an abstraction of the Ember Adapter, using a combination of SharePoint rest services or simply JSOM.

The advantages of building your business app this way is 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 framework such as Ember.js combined with SharePoint web services can provide an ideal environment for your next business application.

About author: Osvaldo Sousa Founder and Principal Architect of Kianda BPM (www.kianda.com) is a highly skilled engineer that held positions such as a CTO, Senior SharePoint Architect and Chief Product Architect building innovative enterprise solutions for organisations in Europe. He is considered as a SharePoint and no-code BPM expert.

Share this on...

Rate this Post:

Share: