SharePoint 2013 introduces new application model that externalizes all custom code from SharePoint environment and keeps SharePoint environment this way clean of bad code and hacks in system files. It seems that new app model will dominate over next versions of SharePoint. In this posting I will introduce you new application model and describe different deployment models.
Why new hosting models?
When information about new models came there was also a lot of confusion and some SharePoint guys said that new hosting models solve only things that are already solved. To get better idea what new hosting model means to enterprises let’s see some very usual problems that enterprises face:
- custom SharePoint solutions with questionable quality of server-side code are deployed to SharePoint environment,
- custom solutions may contain hacks (some customers have only one truth and it is also raped on SharePoint whatever it takes),
- unexperienced developers change SharePoint files (not supported scenario by Microsoft) and may introduce bad problems that come up later,
- over time SharePoint deployment gets more and more crippled by unexperienced developers and migration to new version is extremely painful,
- it takes a lot of effort by administrators to keep faulty solutions alive on SharePoint.
Bottom line here is – everybody loses money. Not only Microsoft but also you and me. Plus our customers. New applications model is here to solve these bad and expensive problems.
As new apps model keeps customer server-side code isolated from SharePoint environment there are new app hosting models like shown on following diagram.
In short, hosting models are as follows:
- Provider-hosted – your app consists of SharePoint solution that is deployed to SharePoint and web project that is deployed to some other environment that is prepared to this web application. Administrators can put up application web if needed and configure it.
- Autohosted – this option is currently available only with SharePoint running on Office 365. App has SharePoint solution and web project that are deployed to cloud and configured automatically. Simplest one to use in development if server-side code is needed. Some restrictions apply on debugging because there’s no access to server running SharePoint.
- SharePoint-hosted – app that consist only of SharePoint solution that doesn’t have any server-side code. Client-side code is allowed and communication with SharePoint is also there. Requires setting up and configuring of app host.
Which one those models is best for you depends on what you have to do and what are the technologies you are familiar with.
Tools for local development
Main tools you need to develop new applications:
- SharePoint 2013 – properly installed and configured, needed when you want to test your system on local SharePoint installation (no support for Autohosted apps now),
- Office 365 subscription – if you don’t want to set-up your own SharePoint (supports all hosting models),
- Visual Studio 2012 – you can download SharePoint tools for building new apps when you run Web Platform Installer,
- SharePoint “Napa” tools – online and browser based Visual Studio clone that is currently available only on Office 365.
Are you lazy like me? Go with Office 365 developer site and Visual Studio 2012. You don’t have to install SharePoint 2013 locally but you can still use Visual Studio to develop applications and test them on cloud. Yes, you need internet connection but having connection is vey popular these days, isn’t it? :)
To end this post here is one screen shot of Napa tools:
New app model for SharePoint 2013 keeps SharePoint deployments clean and avoids problems where unexperienced developers may hurt SharePoint badly. From development perspective SharePoint can now be considered as platform service that custom solutions consume. New apps are not hard to write and there are tools available for all scenarios. As tools are still new and SharePoint 2013 on Office 365 is not yet rolled even to all existing customers you may face some problems. But mostly everything works extremely well. I really think it’s time to start with new applications.