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
What is covered in this document (links are not valid…yet)
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:
- Creating a Development Environment. This topic is a procedure for installing software that is required to create a SharePoint development environment.
- Installing the Training Management Application. This topic is a procedure for installing the Training Management application.
- Overview of the Training Management Application. This topic is a brief walkthrough that demonstrates some of the application's capabilities and relates them to other topics in the guidance that explain how the capabilities were implemented.
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:
- Installing the Upgrades. This topic includes the procedure for installing the upgrades.
- Applying the Contoso Theme. This topic includes the procedure for applying the Contoso theme to the Training Management site.
- Upgrading the Training Management Application. This topic discusses how to upgrade SharePoint components in the context of the Training Management application.
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:
- How to: Create a Custom Content Type with Event Receivers. This topic describes how to create a custom content type in Visual Studio.
- How to: Wrap a User Control Inside of a Web Part for SharePoint. This topic demonstrates how to create a Web Part to serve as a wrapper for an ASP.NET user control that is hosted inside of SharePoint.
- How to: Debug SharePoint Applications. This topic describes how to perform manual and remote debugging in SharePoint.
- How to: Implement a SharePoint Workflow with ASP.NET Forms. This topic describes how use Visual Studio to create ASP.NET custom workflow task forms.
- How to: Perform ASP.NET-Related Development with Visual Studio extensions for Windows SharePoint. This topic describes how custom ASPX pages and custom ASCX controls can be developed in a Web application project and deployed using a Visual Studio extensions for Windows SharePoint Services project.
- How to: Create an Automated Build and Deployment Solution with Team Foundation Server Team Build. This topic describes how to set up an automated build and deployment solution for SharePoint projects with Microsoft Visual Studio Team System 2008 Team Foundation Server Team Build.
- How to: Use Visual Studio extensions for Windows SharePoint Services to Package a Workflow in a Web Solution Package. This topic describes how to use Visual Studio extensions for Windows SharePoint Services to include a workflow in a Web solution package (WSP).
Technical Guidance. This topic discusses various technical issues that SharePoint developers frequently encounter. The subtopics are the following:
- Location of Custom ASPX Pages in SharePoint. This topic discusses SharePoint Application Pages and SharePoint content pages.
- Associating Workflows with Lists. This topic discusses how to programmatically associate a workflow with a list.
- Using Custom Field Types and Field Controls. This topic discusses how to implement custom field types and custom field controls.
- Organizing Features. This topic discusses how to organize SharePoint features in a SharePoint solution.
- Memory Management for SharePoint Objects. This topic discusses how to manage SharePoint objects such as SPWeb and SPSite.
- Stapling Features to Site Definitions. This topic discusses SharePoint feature stapling, which is a way to associate SharePoint features with site definitions.
- Branding with SharePoint Themes. This topic discusses how to attach a theme to a site.
- Using Continuous Integration. This topic discusses the rationale for using continuous integration in your SharePoint development environment.
- Team Development Overview. This topic discusses how to create a SharePoint development environment that includes continuous integration, unit testing, and build verification tests.
QuickStarts. The QuickStarts are small applications that help you understand aspects of SharePoint development. The following QuickStarts are included:
- Debugging an SPItemEventReceiver. This QuickStart demonstrates how to debug a SPItemEventReceiver that was created with Visual Studio extensions for Windows SharePoint Services.
- Accessing SharePoint List Items. This QuickStart demonstrates how to programmatically access SharePoint list items.
Comments
- Anonymous
January 01, 2003
Very good content, congratulations.