Developing Applications for SharePoint 2007
Guidance for building collaborative applications that extend your LOB systems
The Developing Applications for SharePoint 2007 guidance helps architects and developers design and build applications that are both flexible and scaleable. It shows developers how to provide IT professionals with the information they need to maintain those applications and diagnose problems when they arise. The two reference implementations illustrate how to solve many of the common challenges developers encounter. One reference implementation addresses basic issues such as creating lists and content types. The other addresses more advanced problems such as how to integrate line of business services, how to create collaboration sites programmatically, and how to customize aspects of publishing and navigation. A library of reusable components helps you adopt techniques used in the reference implementations. The guidance discusses approaches for testing SharePoint applications, such as how to create unit tests, and documents experiences with stress and scale testing one of the reference implementations.
Assets Included in this Guidance
The following table lists the resources that are included in this guidance.
SharePoint Guidance Library
A set of reusable components that helps developers manage configuration, build repositories for SharePoint lists, log traces and events, and use service location.
The documentation includes a variety of topics, such as how to use design and application patterns, how to integrate LOB systems with SharePoint applications, building scalable applications, upgrading SharePoint applications, and using SharePoint capabilities to create, and deploy content. It also includes the design decisions made for the Partner Portal and Training Management applications and explanations of their implementations.
Contoso Partner Portal Reference Implementation
This SharePoint application shows how Contoso created an extranet where it can interact with its partners. Among the items demonstrated are techniques for building manageable and scalable enterprise applications, and how to incorporate publishing and page composition features, flexible navigation, collaboration sites, and LOB integration. It includes more advanced techniques than the Training Management reference implementation and requires Microsoft Office SharePoint Server 2007 with Service Pack 1 or Service Pack 2.
Contoso Training Management Reference Implementation
This SharePoint application illustrates how the Contoso Human Resources department manages its training course offerings. It shows how to solve many basic SharePoint challenges that you might encounter when you develop your own applications. Windows SharePoint Services 3.0 is required.
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 guidance can help you to address these common SharePoint development scenarios:
- How to use application and design patterns to address common development challenges.
- The design and use of the SharePoint Guidance Library components.
- Architectural decisions that affect site topology and security.
- How to design and implement SharePoint applications that are scalable, manageable, and configurable.
- How to integrate SharePoint applications with Web services. This includes discussions about design tradeoffs and decisions about security.
- How to incorporate SharePoint's publishing and content deployment capabilities into your applications.
- Flexible approaches to navigation and branding, such as how to implement custom, cross-site-collection global navigation and custom site navigation
- How to decide between design options, such as how to choose between a list and database.
- How to design a SharePoint application for testability, how to create unit tests, and how to run continuous integration tests.
- A discussion of how scale and stress tests were performed on the Partner Portal application.
- How to set up different team build and testing environments.
- How to manage the application life cycle through the development, test, deployment, and upgrade stages.
- How to implement a team-based development environment.
The guidance also includes implementations that exemplify many of these scenarios. The implementations include the Partner Portal and Training Management applications, and the QuickStarts. The following illustration shows how the Partner Portal application integrates SharePoint cababilities with line-of-business systems.
This guidance incorporates the v1 content, which was written documentation and the Training Management application.
Developing SharePoint Applications is intended for software architects and experienced developers. To get the most benefit from this guidance, you should have an understanding of the following technologies:
- Microsoft Visual C#
- Microsoft .NET Framework
The guidance includes the Training Management application, which is for experienced developers who are new to SharePoint. These developers may also be interested in Developing SharePoint Applications, in the written guidance. This topic introduces some basic SharePoint concepts to ASP.NET developers.
The Partner Portal application is more advanced and assumes that you have some experience with SharePoint. It demonstrates how to build an enterprise-scale application.
To develop applications with the SharePoint reference implementation, the minimum requirements are the following:
- Windows Server 2003 or later
- Microsoft .NET Framework 3.5
- Microsoft Visual Studio 2008 development system (any of the following editions):
- Professional Edition
- Team Edition for Software Developers
- Team Edition for Software Testers
- Team Edition for Software Architects
- Team System
To run the test projects, you must have Team Edition for Software Testers or Team Systems.
- Visual Studio 2008 extensions for Windows SharePoint Services 3.0, v. 1.3 – March 2009 CTP
- Microsoft Silverlight 2 Software Development Kit
- (Optional) Typemock Isolator 5.2.1 or later (this is required to run the unit tests)
- Windows SharePoint Services 3.0 for the Training Management application or Microsoft Office SharePoint Server 2007 with Service Pack 1 or Service Pack 2 for both the Training Management application and the Partner Portal application
If you are new to SharePoint development, the first step is to study the Training Management application, which is based on Windows SharePoint Services. The documentation and the application can help developers understand the fundamentals of SharePoint development, and compliments other training resources and publications.
If you are an experienced ASP.NET developer but new to SharePoint, read An Overview of the SharePoint Platform for ASP.NET Developers. If you are interested in the Partner Portal application, see A Quick Tour of the Partner Portal Application.
Architects may want to read Architectural Decisions. This topic explains the rationale for the design of the Partner Portal application. It includes discussions on the design of the site topology, security decisions and how the application was integrated with external LOB systems.
If you are interested in the reusable components, see The SharePoint Guidance Library. These components can help you to create your own applications more quickly and to ensure that they follow best practices.
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. Developing SharePoint Applications 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 Developing SharePoint Applications guidance was produced by the following individuals:
- Larry Brader, Francis Cheung, RoAnn Corbisier, Nelly Delgado, Chris Keyser, Erwin van der Valk, Blaine Wastell, Hanz Zhang (Microsoft Corporation)
- Charles Cho, Mike Chorey (Avanade)
- Kishore Kadiveti, Allvin Muthunayagam, VenkataAppaji Sirangi (Tata Consultancy Services)
- Colin Campbell, Roberta Leibovitz (Modeled Computation LLC)
- Robert L. Bogue (Thor Projects LLC)
- Todd Baginski (Advaiya, Inc)
- Andrew Connell (Critical Path Training)
- John Daniels (Analysts International)
- Tina Burden, Sharon Smith (TinaTech Inc)
- Veronica Ruiz (CXR Design)
- Richard Burte (ChannelCatalyst.com, Inc.)
Many thanks to the following advisors who provided invaluable assistance:
- Microsoft Contributors and Reviewers: Mike Ammerlaan, Paul Andrew, Luca Bandinelli, Eric Charran, Todd Haugen, Rob Howard, Roger Lamb, Steve Peschka, Jim Sturms, Simon Skaria, Aaron Weiker, Mike Wise
- External Contributors and Reviewers: Reza Alirezaei, Darrin Bishop, Jackson Chackungal, Spencer Harbar, Faraz Khan, Matthew McDermott, Maurice Prather, Eric Shupps, Ethan Wilansky, Andrew Woodward