Audience prompts:How many people out there have installed Project Server?How many actually used it?How many needed to customise it in one way or another?The idea for this session came from the increasing number of SharePoint people that are implementing and customising Project Server.It’s only a Service Application, how hard can it be. Well the answer is whilst mostly it’s pretty easy to implement Project Server, it is one of the most feature rich service applications that is implemented in SharePoint and as such there are a number of things that are different to SharePoint, and a number of features that are unique to PS. Today’s session is about giving you an overview of the platform and to dive into a couple of the common development scenario’s that from our experience have caused those not in the know, problems in the past.
Introduction:What is project serverWhat does its architecture look like?What developers need to knowScenariosProject server workflowsUsing the PSI to interact with project server dataCustomising project workspaces Question and AnswersCall to Action & ResourcesWe’ll look at the resources that are available to assist from Microsoft
Quick overview of SharePoint Blue donut that the audience should be familiar withSync to SharePointOne of the new features in Project Professional 2010 is the ability to synchronise project schedules directly with the task list in SharePoint. The synchronisation is bi-directional allowing project managers to publish their schedule to SharePoint, for end users to update their assigned tasks in SharePoint and to then synchronise the updates back into the Project schedule automatically.Then we have Project Server 2010, which sits on top of SharePoint Server 2010 Enterprise and provides a number of benefits to an organisation:Demand ManagementProject Server 2010 provides a centralized demand management module to capture all work from simple tasks to complex projects and programs.Develop and deploy effective governance workflowsto manage project investments throughout their lifecycle and drive accountability and controlDefine Enterprise Project Types for all requests and associate with workflow,a project plan and custom workspace templatesStandardize data collection through configurable business caseforms. Capture project information, cost estimates, resource estimates , strategic alignment assessments and moreDisplay relevant Enterprise Project Types for each line of business using departmental fieldsPortfolio SelectionPS provides the capability to analyze each of your work requests using a powerful portfolio selection and optimization capabilities. Allowing:Definition of Business Drivers to score each business requestObjective priorisation of business drivers to drive consensus across the businessAbility to prioristise and select projects based on business drivers, cost and resource constraints.Schedule ManagementProvision of a central location where all project schedules within an organization can be stored providing a single source of visibility for projects within the organisation.Each schedule can be edited in Project Professional, or in the browser where status updates can be applied either directly or via PS’s inbuilt task and timesheeting capability.Resource ManagementProvision of a central Enterprise Resource Pool that contains all resources within the organisation. These resources are then assigned to the various projects within PS to ensure that you are getting the best utilisation of those resources.Project Team CollaborationEach project within Project Server has a dedicated project collaboration site associated with it that is used to store project artefacts such as documents, risk or issues.BI & ReportingNearly all data that is put into Project Server is available for reporting via a dedicated reporting database and 14 OLAP cubes. This includes things like Project, Resource, Tasks, Risks, Issues, Timesheets etc.
Main differences between 07 and 10Requires Enterprise version of SharePointThe PSI includes both WCF and ASMX services (WCF is the recommended way forward)PS Workflow is integrated in the PSI, Business object layer and DAL, all running on Windows Workflow Foundation within SharePointDiagram highlightsProject professional and the project web app interact with Project through the WCF interfacesAccess can be through service proxies (http://server/pwa/_vti_bin/psi/ProjectServer.svc) or though the service application services (http://server:32843/[service app id]/ProjectServer/Project.svc)Client apps can read directly to the reporting database for project data. Clients should only use the PSI for access to the Draft, Published and Archived databases. The reporting data service (RDS – not shown) updates the reporting database in almost real timeDatabases can be on separate SQL server instancesWCF and web service forwarders optimise PSI calls from remote clients, and include a server based cache in addition to the client side cache in Project ProfessionalSee http://msdn.microsoft.com/en-us/library/ee767687.aspx for more info
Built on SharePoint:Site templates, features, web parts, and all the usual SharePoint dev stuff can still be usedSharePoint templates within Visual Studio still drive development, WSP’s are still how customisations are deployedThe PWA site is locked down a bit, but behaves just like a normal site collection in a lot of waysRibbon customisations are still done in the same way, separate XML file in hive for PWA specific ribbonsLove thy SDKGet it at http://msdn.microsoft.com/en-us/library/ms512767.aspxIt is chock full of examples and sample code, great way to startContains full object and service descriptions as well to assist with understanding specific PSI functionsUnderstand when to buildAs with SP development, understand what the product can do and what it cant before you decide to developKnow what is done differently in project server to standard SP development
IdenticalAll items are pretty well identical with SharePointRibbon – need to take into account the PWA ribbon XML for id’s instead of the xml file used for SharePoint..SimilarCOM - No managed client OM for PS, but can still be run through web services from remote clientsWorkflow - SharePoint Designer is not supported to access the PWA site, so no SPD workflows there. We will see more on this a little later LINQ – Custom web parts onlyOpen Data - REST is available for any data stored in SharePoint lists within the PWA site structureDifferentDedicated Reporting database– PS provides a dedicated reporting database where you have near real time updates of the published data within your project. Contains all aspects of the Project, Resource, Assignments and Task. Some of the RISK, Issues and other items also make there way in.Multiple OLAP Cubes – PS provides the capability within the application to support multiple Analysis Services databases each containing 14 OLAP cubes that can be customised and configured directly from within the applicationSupported Developer Environments - Windows 7 not supported, need to develop on a server OS
So how does workflow fit into Project Server? Start with a ProcessTo start with we have a process that we want to follow, in this case here, it’s a process for a project to go from idea through to actually being implemented.In Project Server 2010, Microsoft provided a new capability called ‘Demand Management’ that enabled these processes to be encoded within the tool through the use of workflow. So before we dive into looking at workflows in more detail, I want to talk through some of the theory.PhaseA collection of stages within a Project lifecycle, in our case here, they represent the key components of Create, Select, Plan and Manage. Logical for grouping purposes.StagesA stage represents a step in the project lifecycle. Each stage will display either one of many PDP’s or Project Detail Pages, these are web part pages where users can enter or see information about the project, for instance, information relevant to a business case, or the estimated effort using some special Project Server webparts and storing the information in custom fields (the Project equivalent of metadata columns). Depending on which stage we are in, different PDP’s will be displayed, and via the configuration of Project Server, we can also configure if data is available to be edited, or read only at each of the various stages.WorkflowsThe workflow is responsible for ensuring the correct stages are selected, and performing validation and applying business rules on the data entered as well as creating approvals etc.
Project Server workflows are built on top of SharePoint 2010 workflowsThe Project Server workflow platform is built on the SharePoint workflow platform, which in turn is based on Windows Workflow Foundation (WF). Workflow is a key component of demand management.Project Server workflows are of the "site" type, which enables a workflow to apply to an entire SharePoint site. A site workflow removes the restriction that a SharePoint workflow can be started only on a list item. Project Server workflows are deployed to Project Web App, and a workflow instance can be run only on a project entity.The tool itself provides a platform for creating your own workflows, within that platform a number of new workflow actions are surfaced that interact directly with Project Server covering things like:Setting a project stageWaiting for submitReading a metadata (custom field) value from a ProjectUpdating a custom field value from a projectWhen used in combination with SharePoint workflows, can leverage other capabilities such as approvals we can develop some very powerful workflows within PS.Developed in Visual Studio 2010Project Server workflows are developed in Visual Studio 2010, even though they are sequential workflows, the traditional workflow tool of SharePoint Designer can’t be used. This is due to the various workflow actions requiring API (PSI) access to Project Server which SharePoint Designer doesn’t support. Visual Studio surfaces a number of new workflow actions that can be leveraged in your demand management workflows, these include Comparing properties, Check In, Read Project Property , Set Stage etc.Deeply tied with Project Server ConfigurationEach workflow references a number of custom fields (Project Server’s version of Metadata) and Project Stages when it is executed. As such it is incredibly important that you keep your workflows and the configuration of Project Server in sync for it to work, otherwise the workflow will fail.Associated with a Project Server Enterprise Project TypeBefore Project Server can use the workflow, it needs to be associated with an Enterprise Project Type or EPT. The concept of an EPT allows different workflows to be applied to different types of project, for instance you may have a very large and complicated process for your $1M+ projects, but only need a simple workflow (or maybe not even a workflow at all) for your smaller projects.
Purpose : To give an overview of the workflow that will be developed in the demonstration.Click through the stages of the workflow.
Skip to StageProject Server includes capabilities to allow workflows to be restarted and skipped to stages. This is really important when you think a project and the underlying workflow may last for a number of months, maybe even years, so if you do find yourself redeploying a workflow and needing to restart an existing one, then you don’t want to have to go through all the approvals and data entry again.Skip to Stage logic is basically making sure you pick up a variable in the workflow and ensuring you have coded a bypass in the workflow to go around the logic. One caveat to that, is that if you have a required custom field that has not been populated, the workflow will stop until it has been provided.Keep in SyncEach workflow is dependent on the selection of stages, custom field, PDP’s you have configured within the environment, so when you move between environments, you need to make sure you keep these in sync. There are a couple of tools that can help here:Playbooks – allows you to dump out all the config of PS into an XML file which is then played back into another environmentDMImport / Export – a solution starter that can export the workflow components and then deploy them as a feature against a target farm.Third Party Solutions existIn addition to what you have seen today there are a number of third party solutions out there for workflow, which allow you to use a graphical interface to build the workflow, these include products from UMT and Nintex. Leverage the solution startersMicrosoft released a number of solution starters designed to assist in the development of demand management workflows and associated items:Dynamic workflow – provides simple linear stage workflow with approvals and email alerts. All configured within a simple InfoPath form. Very powerfulMorphing workflow – You might want to have a single common workflow up to a stage, then morph into a different workflow depending on information entered. Visualisation – Nice visualisation webpart to allow the current workflow stage to be visible in PS.
The PSI in Project Server 2010 has a dual interface. The Web service (ASMX) interface operates similarly to the way it does in Microsoft Office Project Server 2007, with the following exceptions: You must use the ?wsdl URL option when setting an ASMX reference. For example: http://ServerName/ProjectServerName/_vti_bin/PSI/Project.asmx?wsdlAn ASMX reference must be made through the Project Web App address. You cannot set an ASMX reference to the PSI through the back-end Project Server service application. For applications that must run on the local Project Server computer, you should use the WCF interface.When you are developing on the Project Server computer, you cannot use localhost for the server name in the URL of an ASMX reference. Use the computer nameThe Project Professional 2010 and Project Web App clients use the new WCF service interface for improved performance, security, and scalability. Custom applications can use either interface; the ASMX and WCF interfaces have an identical object model for the public Web services. We recommend using the WCF interface for new applications.The Project Professional 2010 and Project Web App clients use the new WCF service interface for improved performance, security, and scalability. Custom applications can use either interface; the ASMX and WCF interfaces have an identical object model for the public Web services. We recommend using the WCF interface for new applications.
Source: SDK document “Overview of WCF and the PSI”
Following are some scenarios that can benefit from PSI extensions:Pulling data from the Reporting database (RDB): A PSI extension can directly query the RDB from the server. For example, third-party applications that are deployed outside a firewall cannot do a direct query of the RDB on Project Server, but can use a PSI extension service to query the RDB.Consolidating information from several PSI calls: Save bandwidth; make one call to the server instead of many calls.Manipulating and formatting data for a third-party application: Save client-side processing by doing work on the server and returning only data that the application uses.Integrating better with third-party applications and line-of-business (LOB) applications: Extend the functionality of Project Server with PSI extensions for client applications and middleware components for LOB applications such as human resources, finance, or customer relationship management (CRM).
Demo todos:Show how connections to the PSI can be madethrough the front door (_vti_bin/PSI/ProjectServer/svc)Through the back door (port 32843 to ProjectServer.svc) using a proxy assembly and the ProjectServer.svc routerShow calls to PSI to set timesheet data for current dayShow code running in a web part
- SDK includes what you can and what you cant do
Each project has an associated workspaceA key problem organisations that run projects can run into is having a single location to store project related artefacts, the electronic filing cabinet if you will. Project Server addresses this be leveraging Microsoft SharePoint to generated a dedicated Project workspace that is used to contain project related artefacts such as:Project documents (specifications, contracts, email etc)Contact InformationKnowledge bases / process in the form of wiki’sRisksIssuesThe sky is the limit, if you can store it in SharePoint, you can put it in the workspace.Each workspace is tightly integrated within Project Server, being available from the ribbon at various levels of the project.In the case of Risks, Issues and Documents, Project Server will also check to see if any items exist and indicate that in the main UI of the tool to give you an at a glance indication that they exist.This is not limited to Project Server itself, you can also link into the Project Site, Document, Issues and Risks.Out of the box, these might not meet an organisations exact requirements so we can add new lists, modify the risks or issues to meet your requirements or standards such as AS/NZS 4360. You may also wish to include other relevant information about your project, like KPI’s, Project information or maybe even reports intrinsically linked to your project
TemplatedWorkspaces are templated to ensure consistency and that each new project has the same relevant template. Different templates can be used for different EPT’s if required. Very simple to template, just save as template and put the stp into the site collection solution galleryNo more need to have an unlinked / fresh Project site in 2010.Risk and Issue ListsFrequently the risk and issue lists need to be customised to meet the organisational requirements. However as these are closely integrated with the reporting database of Project Server, deleting fields or changing the values will lead to the reporting integration either not working, or queue errors when provisioning.However it is important to be able to modify these lists so that it meets the needs of the organisation. To ensure they don’t break, create a new content type, that includes all the PS default ones, and your new ones. For all the columns you don’t want, hide them within the content type. In the case of risk matrices, learn to love the calculated column and specifically the IF, OR, AND and Brackets Bulk update Project Sites Finally if you are moving workspaces between environments for testing, like Prod to Test, or Dev, you must relink the workspaces for them to work correctly. The relinking ensures the forms display properly and that all the integration with PS works as expected.
As we saw earlier, whilst there are many similarities between developing for Project Server and SharePoint Server, there are some differences, and we looked in depth at three of these common customisation scenarios:WorkflowWe looked at how workflows can be built in VS 2010 to encode your governance or project management process within the tool.We saw how powerful the workflows can be and how you can include approvals and business logic within the tool to help your organisation get more value out of PSWe touched on how to deploy these workflows and saw how the coupling of the workflow and Project Server configuration is important, and provided some overviews of solutions to make this easier for you.PSIBrian gave you an overview of the PSI and how powerful it is We looked at how we can call the PSI in a variety of ways including console apps and webparts. And it doesn’t stop there, the PSI provides a mechanism to integrate with SAP / JDE / timesheeting systems etcWorkspacesAnd finally, we looked at the Project workspaces, the simple and often overlooked collaboration workspace that is deeply integrated with Project ServerWe saw how to customise these workspaces, including how to override the content types to allow customisation without breaking the integration.We saw how to template these workspaces so they are consistent across all projects and how easy it is to make a template in 2010Brian showed us how we can embed reports directly into the workspace and make sure they survive the templating process, something that I hope you will go away and implement on your Project Server instances on Monday.But where to next?We’ve only really had the opportunity to touch on a few areas of Project Server development and there are many more that we can’t do justice in a 75 minute session, luckily there is an absolute wealth of information and resources out there for you..
Call to ActionInstall the SDK, contains numerous examples and reference material for Project Server and is updated regularly. Dev CurriculumReview the developer curriculum a variety of resources including web casts, white papers, links to Technet content etc.Evaluate Project Server 2010Evaluate PS either by:Downloading a trial version and installing it on your farmDownload a Hyper-v image containing Sharepoint and Project ServerTry out the hosted Hyper-V image
There are an absolute stack of resources out there to help you get to grips with developing on Project Server and to shortcut some of the ramp up time.Some of the highlights include the Project Server Developer CurriculumDon’t forget the solution starters, which provide handy additions to Project Server much like the old PowerTools, but with the added advantage that they include the source code, so you can see how to do certain things and provide additional insights.Finally, there is the forums, where both the product team, PSS and a stack of developers/MVP’s and knowledgeable people can assist with your query.Also, don’t forget our blogswww.epmsource.com (Alex)Blog.brianfarnhill.com (Brian)
Slide added at request of Track owner – there will be a giveaway in this session.
Transcript of "A SharePoint Developers Guide to Project Server"
THE SHAREPOINT DEVELOPERS GUIDE TO PROJECT SERVER<br />SESSION CODE: OFS310<br />Brian Farnhill<br />Solutions Architect Extelligent Design<br />blog.brianfarnhill.com<br />Alexander Burton<br />Senior Consultant OBS<br />www.epmsource.com<br />(c) 2011 Microsoft. All rights reserved.<br />
“It’s only a Service Application”<br />(c) 2011 Microsoft. All rights reserved.<br />
Agenda<br />An introduction to Project Server Development<br />Three common customisationscenarios<br />Call to Action & Resources<br />Questions and Answers<br />(c) 2011 Microsoft. All rights reserved.<br />
What is Project Server? <br />(c) 2011 Microsoft. All rights reserved.<br />Synch to SharePoint<br />Sites<br /> Demand Management<br />Communities<br />Composites<br /> Portfolio Selection<br /> BI & Reporting<br />Content<br />Insights<br />Resource Management<br /> Project Team Collaboration<br />Search<br />The Business Collaboration Platform for the Enterprise and the Web<br />Schedule Management<br />
Project Server Architecture<br />(c) 2011 Microsoft. All rights reserved.<br />Project Professional<br />3rd Party Application<br />IE<br />SPF and SPS<br />Project Web Application<br />WCF Forwarder<br />Web Service<br />Forwarder<br />3rd Party Application<br />WFE<br />Web Services<br />WCF Service<br />SPF and SPS<br />App Server<br />Events<br />Queue<br />Business Objects<br />Data Access Layer (DAL)<br />Draft<br />Published<br />Reporting<br />Archive<br />Config<br />Content<br />MS SQL<br />(c) 2011 Microsoft. All rights reserved.<br />
What to tell the developers<br />Project Server is built on SharePoint, so a lot of the same rules apply<br />The Project Server SDK is your new best friend<br />Understand when to build and when to customise<br />(c) 2011 Microsoft. All rights reserved.<br />
SharePoint vs Project Server<br />(c) 2011 Microsoft. All rights reserved.<br />
BUILDING DEMAND MANAGEMENT WORKFLOWS<br />Common Customisation Scenarios<br />(c) 2011 Microsoft. All rights reserved.<br />
Project Server workflows<br />Built on top of SharePoint Workflow<br />Developed in Visual Studio 2010<br />Deeply tied with Project Server Configuration<br />Associated with a Enterprise Project Type<br />(c) 2011 Microsoft. All rights reserved.<br />
(c) 2011 Microsoft. All rights reserved.<br />Propose a Project Idea<br />Does the Project require funding?<br />Team Lead Approval<br />Yes<br />Rejected<br />Approved<br />No<br />Project Approved<br />Project Cancelled<br />
Demonstration <br />Workflow with Visual Studio 2010<br />(c) 2011 Microsoft. All rights reserved.<br />
Workflow considerations<br />Project Server allows workflows to be restarted<br />Need to consider coding ‘Skip to Stage’ logic<br />Must keep workflow and PS configuration in sync<br />Playbooks (Project Resource Kit)<br />DM Import / Export Solution Starter<br />Third Party solutions exist<br />Leverage the solution starters if you can<br />Dynamic Workflow <br />Morphing Workflow<br />Visualisation<br />(c) 2011 Microsoft. All rights reserved.<br />
Leveraging the Project Server Interface<br />Common Customisation Scenarios<br />(c) 2011 Microsoft. All rights reserved.<br />
Interfaces to the PSI<br />Two interfaces – ASMX web services and WCF Services<br />ASMX behave similarly to Project Server 2007<br />Must specify ?wsdl when adding reference<br />References must be made through the web app URL<br />Can’t use localhost as the URL<br />Project Professional and PWA use WCF<br />WCF is recommended for new applications<br />Object models are identical<br />(c) 2011 Microsoft. All rights reserved.<br />
Working with the PSI<br />Services exist within the SharePoint Web Services application (because it’s just a service app!)<br />These can not be called directly because of the claims-based authentication and custom WCF bindings on the web app<br />Project Server provides a router service through the main PWA web app to set as an end point<br />(c) 2011 Microsoft. All rights reserved.<br />
Common scenarios for PSI use<br />Pulling data from the reporting database<br />Consolidating PSI calls<br />Transforming data to pass to a third party app<br />Extending LOB systems with Project Server data<br />(c) 2011 Microsoft. All rights reserved.<br />
Demonstration <br />Leveraging the Project Server Interface<br />(c) 2011 Microsoft. All rights reserved.<br />
Project Server Interface Considerations<br />Love thy SDK and the great example code in it<br />Remember to take the queue into account<br />Plan use of the PSI carefully to avoid adding performance overheads to your servers<br />(c) 2011 Microsoft. All rights reserved.<br />
Project Workspaces<br />Common Customisation Scenarios<br />(c) 2011 Microsoft. All rights reserved.<br />
Project workspaces<br />(c) 2011 Microsoft. All rights reserved.<br />
Customising workspaces<br />Workspaces are just SharePoint site templates<br />Inherit from the PWS site definition<br />Site templates can be saved through the UI or hand crafted in Visual Studio<br />Custom features can be added to templates to build in additional functionality to workspaces<br />(c) 2011 Microsoft. All rights reserved.<br />
demonstration<br />Workspace customisation<br />(c) 2011 Microsoft. All rights reserved.<br />
Workspace considerations<br />Workspaces are based on a template<br />Limitations, such a web part connections will exist<br />Risk and Issue Lists <br />Don’t delete items<br />Don’t change choice field values<br />Instead override the content types<br />Leverage calculated fields <br />Bulk Update Project Sites is your friend<br />(c) 2011 Microsoft. All rights reserved.<br />
To review….<br />Many similarities<br />Three common customisation scenarios<br />Workflow<br />PSI<br />Workspaces<br />But where to next?<br />(c) 2011 Microsoft. All rights reserved.<br />
Call to action<br />Install the SDK<br />http://bit.ly/PS2010SDK<br />Review the Developer Curriculum<br />http://bit.ly/PSDevCur<br />Evaluate Project Server 2010<br />http://bit.ly/PSEval<br />(c) 2011 Microsoft. All rights reserved.<br />
Development Resources<br />Getting started with development for Project 2010 http://msdn.microsoft.com/en-us/library/gg607685.aspx<br />Project Server 2010 Programming Tasks http://msdn.microsoft.com/en-us/library/ee767703.aspx<br />Developing Project Server Workflows http://msdn.microsoft.com/en-us/library/ee767694.aspx<br />PSI Reference http://msdn.microsoft.com/en-us/library/ms488627.aspx<br />Project 2010 SDK http://msdn.microsoft.com/en-us/library/ms512767.aspx<br />Project 2010 Resource Kit http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=22810<br />Project Server 2010 Solution Starters http://archive.msdn.microsoft.com/P2010SolutionStarter<br />Project 2010 Customisation and Programming Forum http://social.msdn.microsoft.com/Forums/en-US/project2010custprog/<br />(c) 2011 Microsoft. All rights reserved.<br />
“It’s only a Service Application”<br />(c) 2011 Microsoft. All rights reserved.<br />
Question & Answer Session<br />(c) 2011 Microsoft. All rights reserved.<br />
Content Slide<br />3rd Annual Community SharePoint Conference<br />Business and Technical Tracks, all levels<br />Superb Internationally Renowned SharePoint Experts<br />Discount for Tech.Ed attendees - $675.00 (full price $795.00)<br />Register: www.sharepointconference.com.au<br />Enter Discount Code TECHED<br />
Enrol in Microsoft Virtual Academy Today<br />Why Enroll, other than it being free?<br />The MVA helps improve your IT skill set and advance your career with a free, easy to access training portal that allows you to learn at your own pace, focusing on Microsoft technologies.<br />What Do I get for enrolment?<br /><ul><li>Free training to make you become the Cloud-Hero in my Organization
Help mastering your Training Path and get the recognition
Connect with other IT Pros and discuss The Cloud </li></ul>Where do I Enrol?<br />www.microsoftvirtualacademy.com<br />Then tell us what you think. TellTheDean@microsoft.com<br />