This might sound a bit extreme, but now that REST / CSOM API's are more fully featured, why not just write web apps in whatever framework you're comfortable with and utilize the REST / CSOM API's instead of bothering with SP's byzantine programming model & branding techniques? Do apps need to be involved at all? What about cross domain situations?

So if I'm most comfortable using the MS stack, I could write some MVC ASP.NET apps using the REST API for server side communication in C# and CSOM in the browser using javascript.

  • This isn't really a specific question but more of a general discussion point. I've made it a community wiki.
    – SPDoctor
    Jan 25, 2013 at 7:00

3 Answers 3


If what you want to do can be done using REST / CSOM, then by all means, go for it, that's what MS is aiming for with the app model. Not everything that can be done using Server object model & farm solutions etc. can be accomplished that way, however.

If your question is why not just use SharePoint as your back end and not use the UI and re-write a whole web app on top of that, then perhaps you should just skip SharePoint and use a DB as your back end.

  • 1
    Thanks! Can you give me some examples of things that aren't supported with REST / CSOM? About selecting a different DB- I see your point. I guess it depends on what it's a back-end for. If I'm building a front end to a CMS (not for admins) or a document sharing app- perhaps any situation where you can leverage the SP UI for admin users, but want to demand no SP knowledge to the end-user, then this might be a good case?
    – skeej
    Jan 24, 2013 at 19:32
  • I'd agree with that last bit - if you have a wide application that has a lot of moving parts, you might want to keep SP as the admin interface (as it simplifies a lot of the CRUD operations and workflow stuff), and build a 'lightweight' (ie: for idiots) interface for the end user, that has their required tasks very easy to use. I get the feeling this is the aim of the App Model.
    – James Love
    Jan 24, 2013 at 20:01
  • 1
    There's some discussion here about what can/should be done via the different interfaces: msdn.microsoft.com/en-ca/library/jj164060.aspx
    – lgaud
    Jan 24, 2013 at 20:39
  • 1
    Also, a bit more with specific examples here - blog.aptillon.com/2012/09/25/… - like doing something that needs server events like ItemAdded
    – lgaud
    Jan 24, 2013 at 20:44

There is a hybrid approach where you use SharePoint's documents storage, lists, workflow engine, account authentication/authorization, and web services with a highly customized UI. James Love mentions this in his comments to Igaud's answer.

I have found this approach to be very successful, especially to users who for some reason have a bad taste in their mouth from a previous, poorly architected SharePoint deployment. This approach gives the developers full control over the UI and can really increase perceived performance while helping the developers to rapidly develop highly customized line-of-business applications without having to build their own services, account management, content management systems.


With PS2013 and app model, you are essentially building a solution outside of SharePoint (provider hosted, or auto hosted) and then utilize the OAuth and cross-domain integration infrastructure to access SharePoint data. You could use any technology stack that you want here, and then rely on either JavaScript CSOM or SP REST API to accomplish your goals.
If you goal is just to build a data driven application, then SharePoint should be your persistence layer just because; it's a huge overkill.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.