Extend the SharePoint project system

You can create SharePoint solutions by using a set of project templates and item templates in Visual Studio. These templates meet the requirements of many development scenarios, but you might discover some cases where they don't provide functionality that you require. In these cases, you can extend the SharePoint project system.

Overview of the SharePoint project system

The SharePoint project system is based on the fundamental component of SharePoint project items. A SharePoint project item represents a single SharePoint customization, such as a list definition, Web Part, or content type.

A SharePoint project is a Visual Studio project that includes one or more SharePoint project items. SharePoint projects also contain additional components that define how project items are grouped into Features and packages for deployment.

For more information about the contents of SharePoint project items and SharePoint projects, see Create item templates and project templates for SharePoint project items.

How to extend the SharePoint project system

You can extend the SharePoint project system in the following ways:

  • Define your own SharePoint project item types and associate them with new item templates or project templates in Visual Studio. For example, you can define a SharePoint project item type for creating a custom action or a field. For more information, see Define custom SharePoint project item types.

  • Extend SharePoint project item types that are already installed in Visual Studio. For example, you can add a shortcut menu item to a project item in Solution Explorer and customize the project item when a developer chooses the menu item. For more information, see Extend SharePoint project items.

  • Extend SharePoint projects. For example, you can add event handlers to perform specific tasks when items are added or removed from SharePoint projects. For more information, see Extend SharePoint projects.

  • Extend the packaging and deployment behavior of SharePoint project items and SharePoint projects. For example, you can create your own deployment steps to execute when you deploy or retract a project, or you can perform additional custom tasks when Visual Studio executes certain deployment steps. For more information, see Extend SharePoint packaging and deployment.

Common development tasks

You can perform the following common tasks in extensions of the SharePoint project system:

See also

Define custom SharePoint project item types
Extend SharePoint project items
Extend SharePoint projects
Extend SharePoint packaging and deployment
Save data in extensions of the SharePoint project system
Convert between SharePoint project system types and other Visual Studio project types
Extend the SharePoint tools in Visual Studio
Programming Concepts and Features for SharePoint Tools Extensions