patterns & practices SharePoint Guidance

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

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

SharePoint Guidance Assets

The patterns & practices SharePoint Guidance includes the following assets:

  • Contoso Training Management Reference Implementation (this is referred to as the Training Management application in the documentation). This is a SharePoint application that is based on a real-world scenario. It demonstrates how the Human Resources department of Contoso Pharmaceuticals uses SharePoint to manage their training course offerings. This intentionally incomplete intranet application demonstrates how to design and implement a SharePoint application. You can use the Training Management application to understand how to address many common challenges when developing your own applications.
  • QuickStarts. The Quick Starts include the source code for two small applications. One application demonstrates how to debug an instance of SPItemEventReceiver, and the other application demonstrates different ways of accessing SharePoint list items.
  • Documentation. The documentation includes guidance for a variety of topics, such as the design of the Training Management application, explanations of its implementation, information about installing and upgrading the Training Management application, development activities, and technical guidance. To learn more about the documentation, see Contents of This Guidance.

Exploring the Reference Implementation

The Contoso Training Management application demonstrates how the Human Resources group of Contoso Pharmaceuticals uses SharePoint to manage its training course offerings. (In the rest of this documentation, the Contoso Training Management reference implementation is referred to as the Training Management application.) Employees can perform activities such as enrolling in training courses and seeing the status of their registrations. For example, training managers can see any pending registrations that they must either approve or reject and then perform those tasks. For a demonstration of the application's capabilities, see Overview of the Training Management Application.

After you install the Training Management application, you can upgrade it to add new functionality. You can also brand the site with the Contoso theme. To learn more about upgrading the application and applying the theme, see Upgrading the Training Management Application.

Benefits of Using the Training Management Application

The Training Management application demonstrates proven practices for developing SharePoint applications. It offers guidance for many of the components that comprise the SharePoint platform.

Some of these components are the following:

  • Content types
  • Custom actions
  • Custom groups and permission levels
  • Event receivers
  • Features
  • Lists
  • Standard and custom Web Parts
  • Workflows

The following sections give examples of how these components are used.

Content Types

The Training Management application uses content types in conjunction with lists to display different types of information. For example, content types are used to define training courses and registrations. For more information, see The Training Course Content Type and The Registration Content Type.

Custom Actions

The Training Management application uses custom actions to control how users access SharePoint lists. For more information, see Extending SharePoint List UIs and Register for a Course Use Case.

Custom Groups and Permission Levels

The Training Management application uses custom groups and permission levels to implement security. Groups and permission levels define the types of information that users can see and the actions that they can perform. For more information, see Implementing Security.

Event Receivers

The Training Management application uses custom event receivers to perform data validation. For example, a custom event handler ensures that when a user creates a new training course, all the information is correct. For more information, see Enforcing Custom List Item Data Validation and The List Item Event Receivers.

Features

The Training Management application uses SharePoint features to organize functionality according to whether it applies at the site collection level or at the site level. For example, functionality provided by the SharePoint features includes images for different Web pages and additional Web Parts for the dashboard. For more information, see Organizing Features and Upgrading the Training Management Application.

Lists

The Training Management application uses lists to display the training courses, registrations, and a manager's registration approval tasks. Lists display items that are defined by content types. For more information, see The Training Course List and The Registration List.

Standard and Custom Web Parts

The Training Management application uses both standard and custom Web Parts on its dashboard page. Custom Web Parts display information from the accounting service and the Human Resources management service. Some of the standard Web Parts include the List View Web Part and the Image Viewer Web Part. For more information, see Using Standard and Custom Web Parts, View the Manager Dashboard Use Case, and View the Training Dashboard Use Case.

Workflows

The Training Management application uses a workflow to control the process of registering for courses and getting a manger's approval or rejection of that approval. For more information, see Registration Workflow Implementation.

In addition, there is also guidance for other topics, such as unit testing a SharePoint application, deploying and upgrading SharePoint applications, using the Visual Studio extensions for Windows SharePoint Services, and how to perform automated builds. For an overview of the contents of this guidance, see Contents of This Guidance.

The following are the remaining topics in this section:

Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Footer image

To provide feedback, get assistance, or download additional, please visit the SharePoint Guidance Community Web site.

Copyright © 2008 by Microsoft Corporation. All rights reserved.