SharePoint 2010 introduces new ways of developing applications for the SharePoint platform. With SharePoint 2010, you can build multi-tenant, hosted applications on an infrastructure that is scalable, secure, and stable, while taking advantage of modern browser capabilities for an improved user experience. SharePoint 2010 also introduces improved tools and APIs that address many of the application development and configuration challenges of SharePoint 2007. The new features, operational models, and tooling introduce new design possibilities for developers and architects. This guidance will help you understand the key decisions you face, and to learn how best to take advantage of the new capabilities that SharePoint 2010 provides.

The Developing Applications for SharePoint 2010 release includes three different types of resources:

  • Guidance documentation that provides deep technical insight into different aspects of application development with SharePoint 2010.
  • Reusable components that can help you implement best practice design patterns in your own applications.
  • Reference implementations that illustrate how best to work with particular areas of SharePoint functionality.

The guide itself is divided into four broad areas of design and development for SharePoint 2010 applications: execution models, data models, client-side development, and application foundations. Each represents a key area of architectural decision making for SharePoint developers, as shown in the following illustration.

Key architectural decision drivers in SharePoint 2010


Execution Models provides insight into how different types of SharePoint solutions are managed and executed. It describes how you can develop effective applications in different operating environments and under a variety of constraints. In particular, it provides deep technical insight into the new sandboxed solution model, and it explains the different ways in which you can extend the sandbox environment with various types of full-trust functionality.

Execution model decision points


Data Models addresses the challenges involved in consuming and manipulating data in SharePoint applications. SharePoint 2010 includes a great deal of new functionality in the data area, particularly with the introduction of external content types, external lists, and the ability to build relationships and constraints between SharePoint lists. This section of the documentation provides insights that can help you choose between standard SharePoint lists and external data sources as a platform for your SharePoint applications, and it offers approaches and patterns that you can use to mitigate the performance degradation associated with large lists. It also provides detailed insights into data access techniques, including the new LINQ to SharePoint capability.

Data model decision points


Client Application Models shows how you can make effective use of the new client-side development features in SharePoint 2010. These features include several new mechanisms for data access, such as client-side APIs for JavaScript, Silverlight, and managed clients, as well as a Representational State Transfer (REST) interface. The SharePoint 2010 platform also provides more out-of-the-box support for rich Internet application (RIA) technologies such as Ajax and Silverlight®.

Client-side development decision points


Application Foundations shows how best to meet common development challenges in SharePoint applications, such as providing effective isolation of classes and services, managing configuration settings, logging events and trace information, and performing unit testing and integration testing. Addressing these challenges enables you to build flexible, robust, and modular solutions that are easy to maintain as your applications evolve. The concepts described in this section of the documentation should underpin everything you do in the areas of execution models, data models, and client-side development.

The scope of technical material that falls under the umbrella of SharePoint development grows increasingly broad with every release, and so several decisions were needed to constrain the scope of this guidance. In the client section, the guidance concentrates on new opportunities for building RIA user interfaces with Silverlight and Ajax. Office client development also includes many new areas of functionality, but this area is worthy of its own book and is too broad a topic to include here. In the data section, the guidance concentrates on lists and libraries, external data, and data access. While site structure is also an important component of an effective SharePoint deployment, in many ways it’s more of an operational issue than a development issue and as such it's not included in the guidance. The new service application model in SharePoint is powerful, but as most organizations will not need to build their own service applications the guidance does not address this area.

The Developing Applications for SharePoint 2010 release has an associated community site on CodePlex. You can use this site to post questions, participate in discussions, provide feedback, and download interim releases.