SharePoint Patterns & Practices Guidance for November

This guidance helps architects and developers design, build, test, deploy, and upgrade SharePoint intranet applications. A reference implementation that is named the Contoso Training Management application demonstrates solutions to common architectural, development, and deployment challenges.

This guidance discusses the following:

  • Architectural decisions about patterns, feature factoring, and packaging
  • Design tradeoffs for decisions many developers encounter, such as whether to use SharePoint lists or a database to store information
  • Implementation examples that are demonstrated in the Training Management application and in the QuickStarts
  • How to design a SharePoint application for testability, create unit tests, and run continuous integration
  • How to set up different environments including the development, build, test, staging, and production environments
  • How to manage the application life cycle through development, test, deployment, and upgrading
  • Team-based intranet application development

The following areas are not discussed in the current version of this guidance:

  • Content-oriented sites that use Web content management
  • Internet and enterprise-scale SharePoint applications
  • Multilingual SharePoint applications
  • Scale or security testing of SharePoint applications

Creating a Development Environment and Installing the Training Management Application. This topic discusses how to create a SharePoint development environment and install the Training Management application. The subtopics include the following:

Upgrading the Training Management Application. This topic discusses how to apply upgrades to the Contoso Training Management application. The upgrades apply to different components in the application, such as content types and application pages. It also demonstrates how to apply the Contoso theme to the site as an example of site branding. The subtopics include the following:

Design of the Training Management Application. This topic explains how the Training Management application is designed and the reasons for those design decisions. The subtopics include the following:

  • Design Patterns. This topic discusses the design patterns that influenced the application's architecture.
  • The Operating Environment. This topic discusses the application's physical environment.
  • The Application Structure. This topic discusses the architecture of the application.
  • Unit Testing. This topic discusses the unit testing strategy, which relies on mock objects.
  • Architectural Decisions. This topic discusses the reasons for many of the decisions that influenced the application's implementation. For example, the topic includes the rationale for using lists instead of databases and why standard Web Parts are used in some places and custom Web Parts are used in other places.

Training Management Application Walkthrough. This topic discusses how the Training Management application is implemented. The subtopics are the following:

  • Create a New Course Use Case. This topic describes how the ability to create a new training course and add it to the list of training courses is implemented. It discusses content types, event receivers, and lists.
  • Register for a Course Use Case. This topic describes how the ability to register for a course is implemented. It discusses custom actions, page loads, lists, and content types.
  • Registration Approval Use Case. This topic describes how the ability to approve or reject a course is implemented. It discusses page loads and updating lists.
  • Registration Workflow Implementation. This topic describes how the registration workflow is designed and implemented.
  • View the Manager Dashboard Use Case. This topic describes how the Manager view of the dashboard is implemented. It discusses how to use both standard and custom Web Parts.
  • View the Training Dashboard Use Case. This topic describes how the training dashboard is implemented. It discusses how to use standard Web Parts.

Deployment Scenarios. This topic discusses the issues involved in deploying and upgrading SharePoint applications. This includes how to deploy a new application, how to add new functionality to an existing application and how to add new functionality that affect's an existing application's functionality. There is also a discussion of how to

Development Activities. This topic contains procedures for performing various tasks. The subtopics are the following:

Technical Guidance. This topic discusses various technical issues that SharePoint developers frequently encounter. The subtopics are the following:

QuickStarts. The QuickStarts are small applications that help you understand aspects of SharePoint development. The following QuickStarts are included: