One of the most talked-about features of SharePoint 2013 is the introduction of Apps. Apps are basically Web applications that can be hosted in the cloud and have their functionality exposed from a SharePoint site. Implementing a custom solution as an App can provide many benefits for your environment. Some limitations do exist, though, and Apps aren’t always the right tool for the job. Understanding the App Model and its place in your SharePoint environment is important for any SharePoint developer, and a must-have tool on your belt for developing SharePoint solutions in the cloud.

What is an App?
An App for SharePoint is just a Web application. So what makes it so special? In some ways there is nothing special about it, and that’s a good thing! Developing solutions for SharePoint 2007 and 2010 requires a lot of specific knowledge around SharePoint as a platform. Apps can remove a lot of the dependencies and complexities around SharePoint itself, and boil them down to traditional Web development. This will open the door to a whole new audience of Web developers who now won’t have to worry about the intricacies of SharePoint.

Another way that Apps aren’t “special” is in what technology you can use, or where you can host them. An App for SharePoint doesn’t have to be limited to an ASP.NET Web application with Web Parts on a page; it can be any type of Web application you want! You could write an App in PHP, .NET MVC or even Node.js. You also have a choice in where to host that application.

The fine print
Although Apps do provide a good deal of flexibility and opportunity for developers, there is one limitation worth mentioning: Apps are not allowed to run any custom code on the SharePoint server. That is, you cannot deploy any compiled code to the farm with an App. All interaction between your App and SharePoint must use client-side APIs, OData or REST.

Initially, this seems like a pretty big hurdle to overcome. However, many improvements have been made to the client-side APIs to provide as much capability as possible. Also, protecting the SharePoint farm from malicious code or poorly performing code is another major benefit of this restriction.

Apps are not a total replacement for traditional SharePoint development; in fact, many customizations will still require that. I see Apps as a development pattern to effectively encapsulate and distribute custom functionality for SharePoint sites. Much like mobile apps allow users to accomplish specific tasks on their phones and tablets, a SharePoint App will now let us say, “There’s an App for that.”

Want to learn more? Find out about creating Apps for SharePoint 2013 here.

Phil Jirsa is a SharePoint developer at Rackspace.