Scenarios for Project Server Development
Updated: October 2010
Developers have created thousands of custom solutions for the architecture that was introduced in Microsoft Office Project 2007. There are many more possible scenarios for customization and development of solutions for Microsoft Project Server 2010.
For a summary of types of Project Server integration with external systems, see the blog article, Integrating Project Server 2010 with Line Of Business Applications. Following are some of the new scenarios for development.
One of the biggest areas for new development is demand management for project proposals and portfolio analyses. You can develop or customize workflows, Web Parts, and project detail pages for each organization and for each department within an organization.
Create Custom Proposal Templates
One of the key benefits of Project Server 2010 is the ability to create customized templates for the life cycles of different kinds of projects. Project life cycles are represented by different project proposal types or enterprise project templates (EPTs).
For more information about EPTs, see Workflow and Demand Management. For an example of how to create an EPT to test a workflow, see the Testing a Project Server Workflow section in How to: Install and Test a Project Server Workflow.
Create a Web Page to Submit Proposals
Develop a project detail page (PDP) to capture information in a manner that is logical and pleasing to the user. Because PDPs are based on the SharePoint platform, PDPs in Project Web App can provide a familiar user experience.
Following are tasks included in creating a PDP for a project proposal:
Add existing SharePoint and Project Server Web Parts.
Add custom Web Parts that capture custom fields in other Web Parts in the PDP.
Customize the PDP layout.
Define the Life Cycle of a Project
Phases and stages enable clear distinctions between sections within a project life cycle. For more information about phases and stages, see Workflow and Demand Management.
Following are tasks included in creating phases and stages for demand management:
Define the project life cycle.
Define the stages in each phase of the project life cycle.
Develop the workflow logic between stages.
Use the workflow to help users open related documents for the project life cycle.
For an example workflow, see How to: Create a Branching Workflow.
Steps for the PMO, End Users, and Project Managers
After the project management office (PMO) specifies the approval process for a project proposal, a developer creates a workflow and PDPs for an EPT that uses the workflow. After an administrator deploys the workflow and EPT to Project Web App, end users can submit project proposals, the PMO or another management group can evaluate proposals, and project managers can create plans for approved projects.
Create the Approval Process for a Proposal
The approval process is a mechanism that allows decision-makers the ability to tightly control which projects can continue. Decision-makers can also provide early input to the people who submit project proposals about what needs to change for the project to proceed.
Normally, approvals are placed between stages and phases. However, not all stages or phases require an approval to proceed. Instead, a workflow can include internal checks and processing between stages and phases.
Following are tasks included in creating an approval process:
Grant people approval permissions.
Define approval criteria for a workflow.
Set up approval notifications.
Submit a Proposal
Proposal submission includes the following tasks:
Create a project proposal by using the Project Center page.
Edit an existing project proposal.
Submit a project proposal for review.
Evaluate Proposals Based on Business Strategy
Project Server 2010 provides a great advantage in being able to compare how a proposal directly affects the business strategy of an organization.
Following are tasks included in evaluating a proposal:
Define key performance indicators (KPIs) and priorities for the business.
Open related documents that the developer or administrator has linked on the PDP.
Evaluate how each proposal impacts the KPIs.
Views in Project Center can show all proposals and the stages they are in, how many resources each proposal requires, and other information obtained through the demand management process. The process helps ensure that only the most advantageous projects are selected and that proposals do not conflict.
Following are tasks included in approving a proposal:
Create Project Center views to filter for proposal properties, such as the following:
Approved, rejected, or waiting proposals.
Approvals in progress or within a date range.
Review submitted proposals.
Select proposals to approve.
Create Project Schedule and Assign Resources
After a proposal is approved, it is in the management phase. Project Server 2010 enables users to directly manage a project either with Project Professional or Project Web App. Because the experience in both clients is similar, project management can be a smooth extension of the planning phases.
Following are some tasks included in managing projects:
Edit a project schedule by using Project Web App.
Use Project Professional to add and schedule tasks in a proposal.
Define role-based resource requirements; link to related project documents.
In addition to demand management, new Project Server 2010 development scenarios address a very wide range of customization and integration with external systems and Microsoft Office Business Applications (OBAs).
Customize the Ribbon in Project Web App
The ribbon component in Project Web App uses the core ribbon API of SharePoint Foundation 2010. Because most Project Web App pages in Project Server 2010 use the ribbon and Web Parts, and many of the pages use the customizable JS Grid control Control, Project Web App is much easier than previous versions to customize and extend.
Following are some development scenarios for the Server Ribbon:
Add the Ribbon to your own Web pages in Project Web App or to any other page or Web Part in SharePoint Foundation 2010 or SharePoint Server 2010. Custom Web pages in Project Web App can take advantage of the enhanced Project Server 2010 global and category permissions.
Build a new Ribbon control type.
Design a new Ribbon tab by using pre-existing controls.
Add a command to the Ribbon on a specific page—with or without administrator permissions.
Replace an existing Ribbon command.
Preview how a new Ribbon looks, before deploying it.
Change localization strings for the Ribbon.
Add the user interface for a Web Part to the Ribbon.
Provide upgrade information—on the Ribbon itself—about the Ribbon and custom actions or customized pages.
For more information, see How to: Modify the Ribbon in PWA and Walkthrough: Customizing the PWA Ribbon and Accessing the JS Grid.
Use WCF for Integration with External Systems
Windows Communication Foundation (WCF) simplifies service-oriented development and enables secure and reliable messaging to external systems such as LOB applications. For example, a developer can write a connector that reads resource and timesheet data from Project Server and updates data for a human resources (HR) product on a Linux server.
Because the WCF binding can be changed with configuration files, you can use a basic binding in the prototype stages of development and then tighten the binding between Project Server and the HR system after a security review, with no code change or recompiling. For example, during development you can specify a local domain, transport mechanism, and credential type in the app.config configuration file. On deployment, you can change the WCF binding for tighter security with the external HR system.
Although Project Server 2010 does not support the transaction capabilities of WCF, an event handler or middleware component can combine multiple PSI operations into one server-side operation that reduces roundtrip traffic. For example, to keep a SharePoint list in synchronization with a project, you can write a SharePoint event handler for changes in list items that updates a specific Project Web App instance running on a different computer. When a list item is updated, to update the related task in Project Web App, you can use the WCF interface of the PSI to perform the following steps:
Check out a project.
Update the task.
If the resource has changed, update the resource on the task.
Send the updated ProjectDataSet to Project Server.
Read the project after the update completes to get the new calculated start and finish dates for the task.
Update the list item with the new start and finish dates.
For more information, see Overview of WCF and the PSI.
Create Custom Portfolio Management Web Parts
Successful portfolio management can require data with specialized queries from the Reporting database, from custom OLAP cubes, and from sources outside of Project Server. New features in SharePoint Foundation 2010 and SharePoint Server 2010 enable Web Parts that can use the new SharePoint Language-Integrated Query (LINQ) provider to access data in other SharePoint sites, include partially trusted code for secure access to potentially insecure data, or even include a Microsoft Silverlight animation. For more information, see the See Also section.
Extend the JS Grid Control
The JS Grid control is customizable and extensible by third-party developers. The JS Grid control can show a Gantt chart and can be added to custom Web Parts for use in Project Web App pages, project site pages, and other Web pages in any SharePoint Foundation 2010 farm.
Articles about the JS Grid control are in the SharePoint Foundation 2010 SDK. They include 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.
Check Workflow Data with an Event Handler
The Microsoft.Office.Project.Server.Events namespace includes the WorkflowEventReceiver class with the OnRunning method. You can create an event handler when the workflow starts running that checks data associated with the workflow or starts another workflow.
For an example of an event handler, see How to: Create a Project Server Event Handler and Log an Event.