SharePoint Guidance 1.0 - Nov 2008

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.

Developing SharePoint Applications

For the latest patterns & practices guidance on devloping SharePoint applications see

patterns & practices Developer Center

patterns & practices Developer Center

November 2008

Important: Version 2.0 of the SharePoint Guidance is called Developing SharePoint Applications. Developing SharePoint Applications integrates the content and reference implementation from SharePoint Guidance. Customers who are using SharePoint Guidance are encouraged to move to Developing SharePoint Applications. To learn more, see Developing SharePoint Applications.


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 application lifecycle management challenges.

This guidance discusses the following:

  • Architectural decisions about patterns, feature factoring, and packaging.
  • Design tradeoffs for common decisions many developers encounter, such as when 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 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 – November 2008

Getting started

Overview. This will help you to decide if the guidance applies to your situation.

Getting Started with the SharePoint Guidance. This is an introduction to the Training Management application.


CodePlex Community Site


End User Licensing Agreement (EULA)


Assets Included in the SharePoint Guidance
Getting Started
Future Plans
Feedback and Support
Authors and Contributors

Assets Included in the SharePoint Guidance



Contoso Training Management Reference Implementation (Training Management application)

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 its training course offerings.

The Training Management application allows employees and managers to perform such activities as enrolling in training courses, reviewing the status of registrations, managing pending registrations and registration approvals, and managing a training budget.

This intentionally incomplete intranet application is an example of how to design and implement a SharePoint application. You can use it to understand how to address many common challenges that you might encounter while developing your own applications.


The QuickStarts include the source code for two small applications. One application demonstrates how to debug an instance of an SPItemEventReceiver. The other application demonstrates different ways to access SharePoint lists.


The documentation includes guidance for a variety of topics, such as the design of the Training Management application, an explanation of its implementation, information about how to upgrade the application, development activities, and technical guidance.

The following diagrams illustrates a Training Management application screen shot and our development and build approach.



Audience Requirements

This guidance is intended for software architects and developers. To get the most benefit from this guidance, you should have an understanding of Microsoft Visual C#, the Microsoft.NET Framework, and ASP.NET.

System Requirements

The guidance requires Windows Server 2003 or later with Microsoft.NET Framework 3.5 and Windows SharePoint services. The Training Management application requires Visual Studio 2008 with Visual Studio 2008 Extensions for Windows SharePoint Services, version 1.2.

You must have Typemock Isolator, version 5.0 in order to run the Training Management application's unit tests. For more information, see the Typemock Web site.

Getting Started

The first step is to evaluate whether this guidance applies to your situation. Use the guide on MSDN to understand what is provided. If you decide to use the guidance for your project then go to the Getting Started page. This explains the development environment that you need and how to build and install the code.


This section provides links directly to the main topics included in the documentation. This documentation is also included when you install the SharePoint Guidance.


This guide, like many patterns & practices deliverables, is associated with a community site. On this community site, you can post questions, provide feedback, or connect with other users for sharing ideas. Community members can also help Microsoft plan and test future guides, and download additional content such as extensions and training material.

Future Plans

The patterns & practices team is currently investigating additional areas where it can provide SharePoint guidance. Download early drops from the CodePlex Community site. To provide feedback, please create and vote on work items in the CodePlex issue tracker.

Feedback and Support

Questions? Comments? Suggestions? To provide feedback about this guidance, or to get help with any problems, please visit the SharePoint Guidance Community site. The message board on the community site is the preferred feedback and support channel because it allows you to share your ideas, questions, and solutions with the entire community. SharePoint Guidance is a guidance offering, designed to be reused, customized, and extended. It is not a Microsoft product. Code-based guidance is shipped "as is" and without warranties. Customers can obtain support through Microsoft Support Services for a fee, but the code is considered user-written by Microsoft support staff.

Authors and Contributors

The SharePoint Guidance was produced by the following individuals:

  • Blaine Wastell, Chris Keyser, Francis Cheung, Glenn Block, Hanz Zhang, Nelly Delgado (Microsoft Corporation)
  • John Daniels (Analysts International)
  • Alex Nichols, Charles Cho, Mike Chorey (Avanade)
  • Kalyan Kumar Mulluri, Naveen Guda, VenkataAppaji Sirangi (Tata)
  • Roberta Leibovitz (Modeled Computation LLC)
  • Robert L. Bogue (Thor Projects LLC)
  • Tina Burden McGrayne (TinaTech Inc)
  • Veronica Ruiz (CXR Design)

Many thanks to the following advisors who provided invaluable assistance:

  • Microsoft Contributors and Reviewers: Eray Chou, Julie Kremer,  Luca Bandinelli, Lenny Fenster, Maxim Lukiyanov, Mike Ammerlaan, Paul Andrew, Rob Howard, Roger Lamb, Rob Lefferts, Simon Skaria, Todd Haugen
  • External Contributors and Reviewers: Andrew Connell, Andrew Woodward, Darrin Bishop, Eric Shupps, Jason Noble, John Peltonen, Maurice Prather, Michelle O’Loughlin, Paul Schaeflein, Philippe Sentenac, Raymond Shaw, Todd Baginski, Todd Bleeker, Vishwas Lele

patterns & practices Developer Center

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.

Developing SharePoint Applications

For the latest patterns & practices guidance on devloping SharePoint applications see

© 2016 Microsoft