Developing apps for Microsoft SharePoint fundamentally varies from working with other development platforms. Furthermore, Microsoft SharePoint development offers an overview of the common kind of projects you could use to customize and extend SharePoint environment. For the last few years, SharePoint has experienced rapid adoption rate in the software field. As more and more companies starting to use the platform, there has been a significant increase in the number of development projects targeting the SharePoint environment.
It is interesting to note that every deployment of the SharePoint platform is based on a farm concept. SharePoint farm is a set of one or more server computers working together to serve up SharePoint sites and provide functionality to clients. For a development environment, you could set up a SharePoint environment through installing and configuring everything you need in a single server. In a production setting, a farm could include a dozen or more server computers. There are also several different products that are associated with SharePoint. For instance, one farm may be running SharePoint foundation while another is running SharePoint server. There are furthermore, numerous versions of SharePoint server which includes the Enterprise edition and Standard edition.
When creating a new Microsoft SharePoint development project, you have to make assumptions regarding the kind of farms that you would target. For instance, the publishing features of the platform are included with all editions of SharePoint Server but not included with SharePoint foundation. If you build a project that builds on top of the SharePoint publishing features, you would not be able to deploy the project on SharePoint farms running only on the SharePoint foundation. SharePoint introduces a new deployment option that allows you to deploy a solution package as sandbox solution. When deploying a package as a solution, you could reduce the deployment scope from the level of the farm to that of a single site collection. There are some limitations on the functionality of sandboxed solutions as well.
In general, the aim of developing in SharePoint is to extend or customize sites in a farm. You must create these kinds of projects as SharePoint projects by utilizing SharePoint development tools in Visual Studio 2010. Nonetheless, you could also develop a desktop app that could access a SharePoint farm over the network.
New projects that utilize the SharePoint development platform in general fall into one of the following categories:
1. Site-level administrative apps
2. General business solutions
3. Client-side applications
4. Specialized services and components
5. Farm-level administrative apps
Majority of the new SharePoint projects are designed to benefit SharePoint users directly and make their jobs easier. These projects are considered as general business solutions. Such projects typically provide site functionality and elements. While general business solutions aim to target ordinary business users, it is also typical to develop SharePoint development that offers user functionality who are in the role of web owners and site collection administrators. The kinds of functionality that is provided in these types of SharePoint solutions may include the backing up recent content, automation of archiving older content and refreshing local lookup lists by calling internet services over the network.