Project 2010 SDK Documentation
Applies to: Office 2010 | Project 2010 | Project Server 2010 | SharePoint Server 2010
Publish date of this reference: July 2011 (SDK update for the Service Pack 1 [SP1] release of Project 2010)
Welcome to the Microsoft Project 2010 Software Development Kit (SDK). The SDK contains documentation, code samples, how-to articles, and programming references to help customize and integrate the Project 2010 clients and Microsoft Project Server 2010 with a wide variety of other desktop and business applications for enterprise project management.
This article includes the following sections:
Introduction to the Project SDK
What's New in the Project SDK
Future SDK Releases
Sections in the Project SDK
Programmability changes in Service Pack 1 For a summary of major new features in Microsoft Project Server 2010 SP1, see What's New for Developers in Project 2010.
We recommend that you develop custom solutions in a test environment. Solutions developed for versions of Project Server 2010 that are earlier than the current installed version should be recompiled with updated references, and may need additional changes.
Introduction to the Project SDK
Project Server 2010 is a platform for building enterprise project management solutions. The Project Server 2010 architecture is based on the platform introduced in Microsoft Office Project Server 2007, with many additions and improvements. For a general overview of the Project Server 2010 development platform, see Getting Started with Development for Project 2010 on MSDN.
Project Server is built on the Microsoft .NET Framework 3.5 and Microsoft SharePoint Server 2010 Enterprise version. The articles and samples in this SDK provide a starting place for developing custom solutions; they do not address all programmability features of Project Server or Project Professional. The Project Developer Center includes links to Project articles, blogs, videos, webcasts, visual how-to articles, and other resources.
The Project 2010 SDK includes developer information for Project Server 2010, Project Web App, Microsoft Project Professional 2010, and Microsoft Project Standard 2010. The SDK articles are designed to help Project 2010 developers and administrators evaluate Project Server for extensibility and plan for custom solutions.
Project Web App is the name of the web client of Project Server 2010. In Office Project Server 2007 and previous versions, the web client is called Project Web Access.
We would like to hear from you. If you have any comments, or bug reports about any article in the Project 2010 SDK, please use the link at the bottom of each page in the PJ14SDK.chm file in the SDK download to send an e-mail message to the SDK team. You can also post comments on each page in the MSDN online library.
To get the Project 2010 SDK download, see Project 2010 Reference: Software Development Kit. The download includes the July 2011 update of the Project 2010 SDK.
The Project 2010 SDK download installs by default in [Program Files (x86)]\Microsoft SDKs\Project 2010. To avoid code access security issues and enable direct use of Visual Studio projects in the Samples\Samples.exe self-extracting file, you can copy the samples to another directory or install the Project 2010 SDK in a different directory such as C:\Project_SDK. The installed SDK download includes the following components:
The Documentation subdirectory includes the pj14SDK.chm file, with the July 2011 update of the Project 2010 SDK topics that are published online on MSDN.
Check the MSDN library for SDK updates and additions in the Community Content section at the bottom of each topic. The online version of the Project 2010 SDK is updated more frequently than the SDK download.
The Documentation\Schemas subdirectory includes the Reporting database schema reference (pj14_ReportingDB.chm), the OLAP cube schemas (OLAPCubeSchemas2010.xlsx), the Microsoft Project 2010 XML Data Interchange Schema (mspdi_pj14.xsd), and the schemas for Statusing methods in the PSI (ChangeList.xsd and SetAssignmentWorkData.xsd).
The Documentation\Intellisense subdirectory contains the XML files that provide Visual Studio IntelliSense descriptions for the documented Project Server libraries and PSI services. The WCF subdirectory and the WSDL subdirectory include the proxy files for setting references to the Windows Communication Foundation (WCF) services and the ASMX services of the PSI. There are also scripts for creating a proxy assembly update. For more information, see the [ReadMe_Intellisense].htm document in the download, or see Prerequisites for WCF-Based Code Samples and Prerequisites for ASMX-Based Code Samples.
The Documentation\VBA Help subdirectory contains an update of the help file for the Visual Basic for Applications object model in Project 2010, for local use on your computer. The [ReadMe_VBAHelp].rtf file describes changes in the since the release of Project 2010.
The Documentation\REDIST.TXT subdirectory contains a copy of the SP1 release of the Microsoft.Office.Project.Server.Library.dll assembly (version 14.0.6015.1000), and a license to redistribute the assembly with your solutions.
Run the Samples\Samples.exe file to install the following subdirectories and sample code:
Samples\CustomizeProjectCenter contains the Microsoft Visual Studio 2010 solution described in Walkthrough: Customizing the PWA Ribbon and Accessing the JS Grid.
Samples\EventHandlers contains the TestCreatingProject solution described in How to: Create a Project Server Event Handler and Log an Event.
Samples\Impersonation contains the solution described in How to: Use Impersonation with WCF.
Samples\ManagedCodeReference includes WCF-based solutions for code samples in the managed code reference for the following methods: QueueCreateProject, CreateResources, ReadCustomFields2, ReadEventHandlerAssociationsForEvent, ReadLookupTables, ReadProjectStatus, ReadResource, ReadResources, QueueUpdateResourcePlan, ReadUserList, UpdateStatus, SubmitStatusForResource, and ReadStatusForResource. The solutions also use the WriteFaultOutput method for listing errors that is described in the Code Example for WCF section of the Project Server Error Codes topic.
Samples\MultiAuthentication includes the ASMX- and WCF-based solutions for multi-authentication, which are described in Prerequisites for ASMX-Based Code Samples and Prerequisites for WCF-Based Code Samples.
Samples\OLPSample shows how to use the Object Link Provider in Project Server, to link a task to one or more SharePoint list items.
Samples\ProjectGuide includes the default Project Guide files from Office Project 2007, modified for compatibility with Project 2010.
The Samples\ProjectGuide\ProjectGuideAddIn subdirectory contains a sample code that shows how to use Project Guide files in Project 2010, with a custom ribbon tab. The sample code uses Office development tools in Visual Studio 2010.
Samples\ProjTool_P14 contains the source code for ProjTool. To compile and use ProjTool, see Using the ProjTool Test Application in Project Server 2010.
Samples\PSIExtensions includes the Hello solution described in Creating a PSI Extension for Project Server 2010 and the ListProjects solution described in How to: Create a PSI Extension to Read Custom Fields in the RDB.
Samples\RibbonCustomization contains the solution described in How to: Modify the Ribbon in PWA.
Samples\UsingQueueSystem contains the test solution described in How to: Use the QueueSystem Service.
Samples\VSTO includes the Microsoft Office development tools in Microsoft Visual Studio 2010 solutions named RibbonAddIn and RibbonAddIn_VB for modifying the Project 2010 ribbon, as described in How to: Use Managed Code to Add a Custom Command to the Ribbon.
Samples\VSTO also includes the Project2010EditableAddIn and IValidationRules projects described in Walkthrough: Building a Managed Code Add-in to Check PWA Compatibility.
Samples\WCFHelloProject contains two variations of a Visual Studio solution described in Walkthrough: Developing PSI Applications Using WCF.
Samples\WebParts includes the ListProjects Web Part solution that is described in Walkthrough: Creating a Project Server Web Part with a JS Grid.
Samples\WebParts\ListProjects_Sorting contains the ListProjects solution that implements column sorting in the JS Grid control.
Samples\Workflow\BranchingWorkflow contains the BranchingWorkflow solution described in Developing Project Server Workflows.
Samples\Workflow\SampleProposal2 contains the Visual Studio 2010 solution for the Sample Proposal workflow that is installed with Project Server 2010.
Samples\Workflow\CustomActivity contains a solution for creating and using a custom workflow activity, which also shows how to call the PSI from a Project Server workflow.
What's New in the Project SDK
The main purpose of the Project 2010 SDK is to provide an overview of programmability features and documentation of the PSI services, and step-by-step examples of key areas for customization of the Project clients (Project Standard 2010, Project Professional 2010, and Project Web App) and Project Server 2010. Some of the documentation is incomplete; more content will be added in later releases.
The underlying technology for network communication is changed to WCF in Project Server 2010, to enable the use of service references (.svc files) and a broad range of improvements. ASMX web service references are also now based on the WCF architecture. Setting a reference to a PSI web service (ASMX file) in Project Server 2010 requires appending the ?wsdl URL option to the path, for example, http://ServerName/ProjectServerName/_vti_bin/PSI/Resource.asmx?wsdl.
Development on a Windows Vista or Windows 7 computer is supported by using the front-end Project Server ASMX web services, or by using WCF services through a PSI proxy assembly or proxy file. For more information about developing applications for Project Server, see Prerequisites for ASMX-Based Code Samples and Prerequisites for WCF-Based Code Samples.
Development and deployment of solutions that include workflows, Project Server Web Parts, or customizations of Project Web App, by using Visual Studio 2010, is supported only on a Project Server computer. Project Server does not use a separate client object model for development and deployment from Windows Vista or Windows 7.
For an overview of new programmability features in Project Server 2010, see What's New for Developers in Project 2010. A major new area of Project Server 2010 is using workflows and project detail pages (PDPs) to manage the creation and approval of project proposals based on enterprise project templates. For more information, see Workflow and Demand Management. For a series of how-to articles on workflows and Web Parts, see Developing Project Server Workflows and Walkthrough: Creating a Project Server Web Part with a JS Grid.
New topics, and topics that have significant updates since the May 2010 release of the Project 2010 SDK, include the following:
How to: Use the QueueSystem Service is a test application that helps show how the Project Server Queue Service works. The application also shows when it is necessary to wait for the queue, and when it is not.
How to: Create a Project Server Event Handler and Log an Event shows how to use a DataSet and another PSI service in an event handler, and how to write to the event log and to the ULS log.
How to: Modify the Ribbon in PWA includes code examples that add, remove, modify, and disable controls on the ribbon for the Project Details page and the Timesheet page in Project Web App.
Using the ProjTool Test Application in Project Server 2010 shows how to view, create, and modify project data, and how to create multilanguage lookup tables on a test installation of Project Server 2010.
Project Server Cache Synchronization describes how Project Server handles data caching, version tracking, and deleting projects and other entities.
Using Formulas and Graphical Indicators with Custom Fields includes a new Formula References to Resource, Project, and Task Fields section, and variations of a formula sample used with graphical indicators.
Creating Lookup Tables and Enterprise Custom Fields includes new notes about project flag custom fields and numeric lookup tables.
Custom Fields and the Reporting Database includes a new Simple Queries with Custom Fields section.
Developing PSI Extensions includes the following subtopics:
Creating a PSI Extension for Project Server 2010 shows how to create a simple Hello extension.
How to: Create a PSI Extension to Read Custom Fields in the RDB shows how to develop the ListProjects PSI extension that uses a custom stored procedure in the Reporting database. The article also shows how to create a simple WCF-based application to test the extension.
Developing Project Server Web Parts describes the recommended approach to develop Web Parts for Project Server. It includes the following subtopic:
- Walkthrough: Creating a Project Server Web Part with a JS Grid uses the ListProjects PSI extension and displays the data in a JS Grid control. The ListProjects Web Part can be installed in a Project Web App page, a PDP, or a project site page.
Developing Project Server Workflows explains why Microsoft SharePoint Designer 2010 cannot be used to create Project Server workflows. Two of the subtopics are also changed:
How to: Install and Test a Project Server Workflow includes a new Debugging a Project Server Workflow section.
How to: Deploy a Project Server Workflow includes a new Configuring a Workflow on a Farm section.
Project Server Error Codes includes a WCF-based code example for getting a list of errors.
How to: Use Impersonation with WCF includes a note about using UpdateStatus to avoid impersonation.
Walkthrough: Developing PSI Applications Using WCF and How to: Use Impersonation with WCF are both updated.
Except for the two Project 2010 SDK topics that have JS Grid control sample applications, most documentation of the JS Grid control is in the Microsoft SharePoint 2010 Software Development Kit (SDK). The SharePoint 2010 SDK includes an overview of JS Grid control features, how to create a basic grid and a pivoted grid, and JS Grid control implementation tips. For more information, see JS Grid Control. For the managed code reference, see Microsoft.SharePoint.JSGrid Namespace.
Some of the DataSet topics in the PSI services, and topics in the Microsoft.Office.Project namespaces, have only minimal documentation. For an explanation of how to find documentation relevant to developers, see Using the PSI Reference in the PSI Reference Overview.
Future SDK Releases
We will periodically publish new articles in the Technical Articles section for Project 2010, and in the Project Programmability Blog. The next major SDK release will be for the next major version of Microsoft Project.
Sections in the Project SDK
There are two top-level sections in the Project 2010 SDK:
The General Reference section contains conceptual and how-to articles.
The Project Server 2010 Class Library and Web Service Reference section documents the object model of the public assemblies and PSI services.
The General Reference section includes the following:
What's New for Developers describes the major new programmability features in Project 2010.
Project Overview for Developers includes articles about Project Server architecture, an introduction to workflow and demand management, information about custom fields, scenarios for Project Server development, and articles about Project client programming by using VBA and Office development tools in Visual Studio 2010.
PSI Overview includes an introduction to the ASMX interface and the WCF interface for the PSI, and how-to articles for developing PSI extensions. It also includes an article that shows how to create a proxy assembly for programming the PSI with WCF. The Project 2010 SDK download includes the proxy assembly and source for the release version.
Project Server 2010 Programming Tasks includes how-to articles for developing and deploying Project Server workflows, developing with WCF, creating an impersonation application, customizing the Project Web App ribbon, using data and events in the JS Grid control, developing Project Server Web Parts, developing event handlers, and using the queue system. This section also includes an overview of the ProjTool test application.
Project Programming References includes an introduction to the PSI reference for Project Server 2010, procedures for developing ASMX-based and WCF-based code samples, tables of Project Server error codes, XML schemas for Project 2010, and tables of VBA object model changes.
Following are requirements to develop and deploy applications that integrate with Project Server 2010:
You must install the Microsoft .NET Framework 3.5 SP1 on the development computer, on the Project Server computer, and on the deployment computers. To determine whether the SP1 release is installed, open Programs and Features in the Windows Control Panel.
Although it is possible to use Microsoft Visual Studio 2008 for solutions that use Windows Workflow Foundation (WF), it is not supported and is no longer documented. We strongly recommend that you use Visual Studio 2010 to develop and deploy workflow solutions.
Visual Studio 2010 installs and uses the .NET Framework 4.0 by default for new development projects. Solutions for SharePoint Foundation 2010, SharePoint Server 2010, Project Server 2010, and add-ins for Project 2010 require the .NET Framework 3.5 SP1. You can install the .NET Framework 3.5 and .NET Framework 4.0 on the same computer. When you create a Visual Studio project, select .NET Framework 3.5 in the drop-down list of the New Project dialog box. You can also select the Target Framework on the Application tab of the project Properties window.