Introduction to SharePoint 2013 Apps

With the new version of SharePoint 2013 announced as reaching the RTM stage on the 10th of October, many of you will already be delving into the new documentation, trying out the beta installs or previews of Office 365 and getting excited about building Apps.

A lot of the investment in SharePoint 2013 is for the cloud and Office 365, and I feel this is certainly true with the new App model. Previously if you wanted to build for Office 365 you had to work within the confines of Sandbox Solutions. Sandbox Solutions were far too limited in what developers were allowed to do within SharePoint and so never really took off. Thankfully now SharePoint 2013 has a better story for custom solutions for the cloud.

I figure the new SharePoint 2013 development story is based around a number of goals…

–          Have an integrated store that allows people to easily find solutions to their problems.

–          Allow applications to be developed for the cloud.

–          Safe guard the core SharePoint processes from developers code.

–          Open app development up to non-Microsoft developers and non-Microsoft hosting.

The new, new thing

Each new version of SharePoint gives us something new to learn, and I guess this is why many of us are attracted to it. We all like learning new technologies and how they can (hopefully) move things forward and ultimately make our lives easier.

SharePoint 2013 introduces the idea of Apps. The term App covers simple things in 2013 such as Lists and Document Libraries to full blown custom developments.

A SharePoint App can be hosted within SharePoint, or on external servers.

SharePoint Hosted Apps

A SharePoint Hosted App lives in a separate web application to the SharePoint site where it is added. This is called the App Web. This gives total separation between the process the application is running under and the SharePoint process. The App can communicate with the SharePoint site the app is installed on through a javascript object model or REST API.

SharePoint Hosted Apps can be made up of Pages, Lists, Content Types, Workflows, Remote Event Receivers and Client App Parts. We will dig into each of these items in later articles.

With the app running in a totally separate web application there is separation between the SharePoint process and App process. While giving SharePoint Apps more power than Sandbox Solutions, the SharePoint team have still managed to maintain separation. This is done through a combination of more powerful APIs, better monitoring and management tools, and the deployment to a completely separation web app.

Externally Hosted Apps

An App running on an external server is either Auto Hosted via Azure or Provider Hosted, which means you managing the hosting infrastructure.

Is there an existing app paradigm to Externally Hosted SharePoint Apps? Yup – Facebook Apps! The application itself runs on its own server – and Facebook shows the chrome (ie the header and sidebar) and displays the app itself through an iFrame. So the user thinks they are looking at an app running completely in Facebook whereas they are in fact looking at a Facebook page that implements the chrome and views the app through an iFrame.

Being able to build and run code completely away from SharePoint opens up huge possibilities for what can be done.

There’s an App Store!

The great news for us developers is – there’s an App Store!

If you’ve used an app store on your mobile phone, you should understand the principle. From within SharePoint 2013 you will be able to browse a listing of Apps from within your SharePoint site and add them. If it’s a SharePoint Hosted App then it will be deployed to the App Web – if it’s an Externally Hosted App a link will be provided. As the person adding an App you need to grant ‘Trust’ to the app for the level it requires so it can interact with your SharePoint site in the way it needs to.

If you are deploying SharePoint 2013 on premise you can also have an internal App Catalog. This means your developers can build Apps that can be deployed internally without making them available through the public App Store.

Old development methods still apply

If you are upgrading your SharePoint Farm to 2013 – will your farm solutions still work? The simple answer is ‘Yes’.

If you are starting the development of a new application for SharePoint 2013 should you use the new app model? Well it depends on what your solution is to target – it you want it to get it in the App Store and have Office 365 users able to use your solution you will need to use the app model

There are certain things that you can’t do with the SharePoint 2013 app model such as Timer Jobs.

The fact that SharePoint 2010 development and deployment methods are still available in SharePoint 2013 is very important to many companies and us at Lightning Tools. Lightning Tools will still continue to provide our existing products as farm solutions, and also move forward developing the tools as SharePoint 2013 Apps where it makes sense and is technically possible.

So what’s next?

We will be taking a look into each type of SharePoint 2013 App – below are placeholders for the articles that will be coming shortly

SharePoint 2013 Hosted Apps

SharePoint 2013 Auto Hosted Apps

SharePoint 2013 Provider Hosted Apps

I’m having great fun learning all this new technology and terminology. If there’s anything above you disagree with or misunderstand – drop me an email