Project Programmability

This blog focuses on customizations and programming for Project Web App, Project Server, Project Professional and Project Standard. Includes User Interface (UI) customizations, Project Server Interface (PSI) and Visual Basic for Applications (VBA) Programming. It also covers Business Intelligence.

  • Project Programmability and Business Intelligence

    Project Workspace Sync Release to CodePlex



    Last year I shared a couple of samples that showed how to sync the membership for the Project Workspace and how to trigger a RDB queue job for the issue, risks and deliverables in the Project Workspaces:

    These samples seem to be popular. As a result, I have combined the two into a single application called Project Workspace Sync and released it to CodePlex:

    Chris Boyd

  • Project Programmability and Business Intelligence

    My VBA macro from Project 2007 doesn't work in Project 2010!


    If you have a VBA macro that worked in Project 2007 and doesn't work in Project 2010, here are some things to try.

    There are quite a few members from Project 2007 that are deprecated and hidden in Project 2010. Some of the hidden members still work as they did in Project 2007, some simply do nothing, and using some directly results in an error. If the macro relies on a hidden member that does not work the same way in Project 2010, you can get a variety of errors. For example, the Application.AnswerWizard property and the Office.AswerWizard object are both hidden -- and the AnswerWizard no longer exists. The following macro results in a run-time error 1004 in Project 2010:

    Sub GetAnswerWizard()
        Dim aw As Office.AnswerWizard
        Set aw = Application.AnswerWizard
    End Sub

     To see the hidden members, go the VBE, press F2 for the Object Browser, right-click in the Members pane, and then click Show Hidden Members. The hidden members are in a light gray font. VBA Help does not include documentation of hidden members.

    Check the macro for members that are hidden in Project 2010, and get documentation for any of those from Project 2007 VBA Help on MSDN. Then set a breakpoint to see whether the member does what is expected.

    If the macro does not use any hidden members, trace through the macro by using breakpoints, to see what is going on. Some members in Project 2010 have additional parameters. For example, if you specify a parameter by position, such as Method(,,,"Value"), the parameter could be in the wrong order. When you use only a few parameters in a method that has many, is often best to use named parameters, for example, Method MyParam:="Value".

    Note: The September update of the Project 2010 SDK includes an update of the Project 2010 VBA Help file for local use.

  • Project Programmability and Business Intelligence

    ANNOUNCING: Demand Management Center for Project 2010 now live!



    For simple information discovery - we have just published a Project 2010 Demand Management resource center that centralizes all information around Demand Management and Portfolio Strategy into one single location.


    Many of included links include pure developer resources. We have decided not to fragment the resources between TechNet and MSDN – that’s why you might find also developer-related link to MSDN content in the above TechCenters.


    This new resource center is the third dedicated resource center for Project 2010 – the full list below:


    ·        Demand Management for Project 2010 -

    ·        Business Intelligence for Project 2010 -

    ·        Upgrade and Migration to Project 2010 -


    These centers are part of the Project Server 2010 TechNet TechCenter and their concept is to collect relevant information in one place and to give end-to-end information from getting started quickly to deep dive.



    Q: Do I have to have a special product of flavor of Project Server 2010 to get the Demand Management and Portfolio Strategy functionality?

    A: All you need to have is Project Server 2010 – all included ready when you need it. You are probably referring to the 2007 release and Project Portfolio Server 2007 that was a standalone product used in conjunction with Project Server 2007 to manage full project life-cycle from initiation through selection to planning and managing the project.


    Q: I’m using the Project Portfolio Server 2007. Is there any migration path to Project Server 2010?

    A: Yes – there is. Please  visit the Upgrade and Migration to Project 2010 - that has a whole section dedicated to migrating from Portfolio Server 2007.


    Q: I’m a developer, what’s in there for me?

    A: Many of included links include pure developer resources. We have decided not to fragment the resources between TechNet and MSDN – that’s why you might find also developer-related link to MSDN content in the above TechCenters.


  • Project Programmability and Business Intelligence

    MSDN Webcast: PSI Programming Overview, Demos and Q&A


    This is a little late, I missed that I didn’t post this.  Q&A and demos from the March 12th webcast.

    Question Answer
    Microsoft has BPOS (Business Productivity Online Services) which includes hosted Outlook and Hosted SharePoint, can SharePoint Server be installed on premise with its SharePoint components in BPOS and can the user extend this configuration using the things you are showing in this series? Project Server is not hosted in the BPOS. We are looking into this for the next release of Project Server
    Could you please send the link for good documentation on registering project server events in a farm environment. An event is failing in a farm environment but working in a single server environment The SDK has good documentation on registering events.  But there is one little detail that doesn’t jump out in the documentation, I’m not even positive it’s in there.  Events are registered with SharePoint, so when you scale out the information is in the config database and goes to all servers in the farm.  What doesn’t happen is the binary is not copied to each machine in the farm, you have to do that manually.
    Why don't I have the option of add in the using? I added reference to The Project Server assemblies are deeper than Microsoft.Office.  Assemblies you would typically add then reference via “Using” when working with Project Server would be:
    So does the SDK tell me or instruct me as to what prerequistists have to exist in order to be able to use the PSI? meaning, do I have to be developing on the box that has PServer installed? or can I simply reference a few dll's pointing my uri to the project dev environment? Yeah there is a pretty good overview:

    The way I develop is with a client machine and a VM (with Project Server installed).  I go into the VM and run this command:
    regsvr32 /u C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\shfusion.dll
    That allows you to look at the GAC as files.  Then I copy everything that has Microsoft.Office to my client machine.  I tend to work with all the different Office products so I pull a lot of stuff I don’t necessarily need.  Once I have the files on my client machine, then I register them in the GAC.  Remember if you apply a service pack to your VM you’ll need to grab the files again.
    Oh and remove the /u from the above command and rerun to get the files system back to normal.
    Most of the samples of PSI I have seen are developed using c#, not much on VB. Do you recommend to use C# over VB? VB.Net is just as good for this as C#.  Actually any .NET language will work great.  I “cut my teeth” in C.  So my natural progression was from C to C++ to C#.
    Hi, Resource demo...did I understand correctly? You read DS of all resources, check out and update one, and send "whole' DS back across web services for one resource update? I read the DS for one resource, check it out, then send the complete dataset for the single resource back.
  • Project Programmability and Business Intelligence

    Do you EPMU?


    Microsoft EPM University offers a comprehensive 4 to 5 days educational package for customers and partners who want to quickly ramp-up with EPM solution via rich instructor led online experience.

    The courses are designed to build and enhance the required knowledge to successfully plan, deploy, configure and extend Microsoft Office EPM solution. You can review course details, schedules and register for the course of your choice. The courses currently being offered are:

    You get access to EPMU’s virtual classroom environment that includes a professional instructor and hosted computer environment to run your labs on.

    Check out the schedule and  be sure to register soon to get a spot in the class! The very last class begins in June 2009!

  • Project Programmability and Business Intelligence

    Updating Project Server 2007 custom applications for Project Server 2010


    The Project 2010 SDK includes a general discussion about updating applications developed for Project Server 2007 to run with Project Server 2010. Because the PSI in Project Server 2010 is a superset of the previous PSI, many ASMX-based applications can run unchanged on a Project Server that uses only Windows authentication -- but all require testing before deployment on Project Server 2010!

    The Project Server Programmability page includes the Porting Applications Built for Project Server 2007 section, which links to the Migration and Compatibility of Custom Solutions section in the Overview of WCF and the PSI. In addition to the information on those pages, applications for multi-authentication installations of Project Server 2010 must be updated to handle forms-based and Windows-based authentication in the Claims environment of SharePoint Server.

    The ASMXLogon_MultiAuth sample in the recent Code samples from the Project 2010 SDK webcast blog post provides an example, using the information in the Using Claims Multi-Authentication discussion in the Prerequisites for ASMX-Based Code Samples article of the SDK.

    Even if your older application works on Project Server 2010, and you use only Windows authentication, it is a good idea to update the web service (ASMX) references and recompile, as described in Migration and Compatibility of Custom Solutions .


  • Project Programmability and Business Intelligence

    April update of the Project 2007 SDK is now available on MSDN


    The April update of the SDK is now available on MSDN. It includes many final versions of articles that have been published as posts on this blog.  

    ·         SDK Download: .
    The pj12ProjectSDK.exe download includes (new and updated items in blue bold):

    o   pjSDK2007.chm (conceptual topics and managed code reference – the same topics as on the MSDN online library)

    o   pj12ReportingDB.chm (Reporting database schema reference and Visio diagrams)

      • OLAPCubeSchemas.xls (dimensions, measures, and properties of the Project Server OLAP cubes)
      • XML data interchange schema for Project 2007 (mspdi_pj12.xsd plus supplemental schemas for enterprise custom fields)
      • Statusing schemas (ChangeList.xsd and SetAssignmentWorkData.xsd)
      • Project Portfolio Server 2007 Database Reference (AccountData and AccountIndex)
      • Redistribution license for the Microsoft.Office.Project.Server.Library.dll
      • SDK code samples:
        1. ChangeXML Utility: generate, validate, and test ChangeXML parameters for the UpdateStatus method
        2. Custom Web Parts: two samples; one uses the Microsoft.Office.Project.Server.PWA.dll assembly, and one does not
        3. Impersonation: two samples; a simple console application and the Impersonation Web Application
        4. Login Demo
        5. OLP Example
        6. Project Guide: default Project Guide files, and the sample Critical Path custom Project Guide updated for Project 2007
        7. Project Workspace
        8. ProjTool: a sample application to help generate data and test many of the PSI methods
        9. PSI Extensions: develop and test a custom PSI Web service
        10. Report Pack: seven sample reports using SQL Server Reporting Services 2005 (SP1)
        11. Test Event Handler
    • SDK Online: Project 2007 SDK in MSDN online library:
      • Object Model Maps: The Project 2007 VBA Reference was also recently posted on MSDN, along with four pages of the new Project object model maps. For example, click any object in Application and Projects Object Map to go to the topic for that object. You can also see the object model maps in VBA Help when you use Project Standard or Project Professional. In the Project Help window, click the Connection Status menu at the lower right, and then select Show content from Office Online.
    • Portal:  Project Developer Portal in the Office Developer Center on MSDN includes links to the Project 2007 SDK,  Project 2007 blogs, as well as the Project 2003 SDK.


    What’s new in pjSDK2007.chm and the online SDK:


    In addition to new code samples and schemas in the download, the April update of the SDK includes 97 conceptual topics (28 new since the RTM release) and many updates in the managed code reference topics. Major new and updated conceptual topics include the following:

    ·         XML Schema References for Project (15 topics; includes the ChangeList Schema Reference)

    ·         Changes for Custom Project Guides 

    ·         Custom Fields in OLAP Cubes (in the Local and Enterprise Custom Fields topic)

    ·         How to: Generate ChangeXML for Statusing Updates

    ·         Project Server Report Pack (9 topics)

    ·         Walkthrough: Creating a PSI Extension 

    ·         Walkthrough: Develop an Impersonation Web Application


    Other updates include enumeration descriptions, PSI method permissions, TimesheetDataSet properties, and a VBA sample for Project Deliverables.


    For related content, see the Office Developer Centers,  SharePoint Developer Center, and the SharePoint Server 2007 Developer Portal.

  • Project Programmability and Business Intelligence

    Microsoft Office Project Server 2007 and AJAX.NET


    Even though Boris has moved on to another team in Microsoft, he still wanted me to share the following with you:

    Microsoft Office Project Server 2007 is built on top of Windows SharePoint Services, so you might think you can develop AJAX Web Parts as you do in Windows SharePoint Services, right?

    Unfortunately it’s not that easy. Actually the Web Part development process is the same, but you need to configure Project Server 2007 for AJAX support.

    Here’s what you need to do:

    You must configure the Project Web application and the Shared Services Provider Web Application to support calling Web services from script. In the Web.config file for the application, you must register the ScriptHandlerFactory HTTP handler, which processes calls made from script to .asmx Web services. For Web service calls that are not issued from ASP.NET AJAX script, the handler delegates the call to the default handler.

    You need to add the following lines to the web.config located in:

    [C:\Program Files]\Microsoft Office Servers\12.0\WebServices\root


      <remove verb="*" path="*.asmx" />

      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,    System.Web.Extensions, Version=, Culture=neutral,PublicKeyToken=31bf3856ad364e35"/>


    You also need to add the following line to the web.config of your project server installation which can be found here:

    C:\Inetpub\wwwroot\wss\VirtualDirectories\[PSweb app directory]

    <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>

    After making those changes to the config files the client runtime is now enabled for AJAX and you can start building AJAX Web Parts.

    Have fun

  • Project Programmability and Business Intelligence

    Microsoft Office System Developer Conference 2008



    We are pleased to announce the dates and location for the 2008 Office Developer Conference!

    When: February 10-13, 2008

    Where: San Jose Convention Center, San Jose, CA

    Who: 2000 developers and architects who build solutions on the Office platform (Office clients, servers, and services)

    ODC 2008 will bring together architects, developers, industry technical experts, Microsoft insiders and key partners in a public forum for the first time! Together, we will redefine what it means to be focused on Microsoft Office development, exchange ideas on how to continue innovating in this ever-changing space, and share best practices on how to craft the next generation of Office Business Applications. Microsoft Chairman Bill Gates will deliver a special keynote that is not to be missed.

    We are giving you advance notice that our public site is going live on Monday morning, Sept. 17th. We will keep you updated when registration opens and as we have more information to share about the event. In the meantime, please help to spread the word about the conference and visit the site on Monday so you can subscribe to updates as we post them.

    See you there,

    - The 2008 ODC Team

    Answers to some Frequently Asked Questions about the conference:

    Who is the Microsoft Office System Developer Conference for?

    Those involved or interested in using the Microsoft Office system (clients, servers, and services) as an application development platform. For example, people in technical roles e.g. architects, developers, designers, and technical managers.

    Who can attend?

    The conference is open to the public.

    Is this the first time for this conference?

    No, Microsoft has held this conference three times in the past (2004, 2005, 2006). However, those conferences were only open to a select group by nomination/invitation. This is the first conference that is open to the public.

    Will it cost to attend the conference?

    Yes, there will be a reasonable registration fee for the conference. For those that register early, we will have a special early bird rate as well.

    How many people are you expecting?

    We’re expecting between 1800-2000 attendees

    Which products/technologies will this conference cover?

    Obviously, the conference will cover everything in Microsoft Office system, including clients, servers and services, but business productivity applications don’t exist in isolation. More and more, we’re finding that people are using others parts of the technology stack and bringing together various technologies to make applications more compelling. So a great number of sessions will have topics involving Office application development in the context of leading-edge technologies such as VOIP, Silverlight, integration with third-party line of business applications, etc.

    What tracks will you offer?

    We are still finalizing the organization of the more than 60 sessions planned. Track information will be available as registration opens in October.

    I’ve heard there’s also a SharePoint Conference. What’s the difference?

    The SharePoint conference will take place in March 2008 in Redmond, WA. Unlike the Microsoft Office System Developer Conference, the SharePoint conference is primarily intended for those in IT who use, deploy, and configure SharePoint. If you are focused on SharePoint deployment you should attend the SharePoint Conference. If you are a SharePoint developer you should attend Office System Developer Conference. Here you will find the most information about how to develop solutions that not only build on the SharePoint platform, but also take advantage of the other technologies in the Office system.

    Why didn’t you just have the conference at the same time/location with SharePoint Conference so people could attend both?

    We did look into this but couldn’t make this happen due to lack of suitable space.

    Who is delivering the keynote?

    Microsoft Chairman Bill Gates will be delivering a special keynote presentation. Visit our site in October to find out more about the other keynote speakers!

    Why did you choose San Jose instead of having the conference in the Seattle area?

    We looked at several options. Lack of suitable space was a key factor. Also, average temps in San Jose in Feb are Low: 45°F (7°C) High: 63°F (17°C) with 2.84 in (7.21 cm) of precipitation, whereas in Seattle the averages are Low: 37°F (3°C) High: 51°F (10°C) and 4.09 in (10.39 cm). It wasn’t a difficult decision to make.

    Who will present sessions?

    Sessions will be presented by Microsoft experts and MVPs, as well as other industry/technical experts.

    Will you have non-Microsoft staff presenting sessions?

    Yes. If you or someone you know would like to present on a relevant technical topic, we’ d be happy to consider them, though slots are very limited. To submit a session idea, please send all relevant information to

    Where can I find more information?

    Our web site will have more information about the conference as it becomes available. Check back often or sign up to get notified!

  • Project Programmability and Business Intelligence

    MSDN Webcast: Building Integrated Applications on the Project Server 2010 Platform (Level 300)


    It is our pleasure to host Catalin Olteanu, Chief Product and Technology Officer, UMT and former Principal Development Lead for Microsoft Project to talk about extending Microsoft Project 2010!

    Webcast Description:

    Now that Microsoft Project Server 2010 is built on Microsoft SharePoint Server 2010, developers can take advantage of a rich platform and familiar tools to effectively build integrated applications and provide customers with shrink-wrapped solutions to common problems. Join Catalin Olteanu to hear lessons learned from developing UMT Project Financial Server 2010 in parallel with the Project 2010 release cycle.
    Project Financial Server 2010 is a complex, three-tier application that seamlessly integrates with Project Server 2010 and extends many of the out-of-the box components including demand management, the ribbon, the queue service, permissions, web parts, and the reporting infrastructure.


    Starts: Tuesday, September 20, 2011 8:00 AM
    Time zone: (GMT-08:00) Pacific Time (US & Canada)
    Duration: 1 hour(s)

    Register for Event today!

  • Project Programmability and Business Intelligence

    SharePoint 2010 Developer Conference Presentations


    The SharePoint 2010 developer conference presentation files are available in PowerPoint and XPS format. They include developer presentations for integrating with Office 2010 clients. See SharePoint 2010 Presentations: Developer Conference Session Files.

  • Project Programmability and Business Intelligence

    March 2013 update of the Project 2013 SDK download file


    The Project 2013 SDK download is updated. The conceptual, how-to, and reference documentation in the download closely matches the Project 2013 developer documentation online content published on MSDN.

    The Project2013SDK.msi download file now installs properly on Windows 8 and Windows Server 2012.

    The Project 2013 SDK download contains:

    • The on-premises Reporting database schema reference, ProjectServer2013_ReportingDB.chm, and the OLAP cube schema reference. 
    • Updated VBA Help for local use. Objects such as Chart, Report, Series, and Shape now show correct members tables, properties, and methods topics.
    • Basic reference topics for the JavaScript client-side object model (JSOM), which includes REST endpoints and HTTP request syntax. You can use the JSOM for development of Project Online solutions for cross-browser web apps and for non-Windows platforms.
    • Sixteen complete code solutions, including two task pane apps (with minor updates) for Project, the QuickStatus app sample for Project Server and Project Online, eight client-side object model (CSOM) solutions, two solutions for querying the ProjectData service for reporting, and three updated legacy PSI solutions.
    • DLLs and a license for redistribution of the Project Server CSOM assemblies, JavaScript files for the CSOM, the Microsoft.Office.Project.Server.Library assembly, and the Microsoft.Office.Project.Server.Events.Receivers library for on-premises development.
      Notes:   1. The attached file contains the RTM build 15.0.4420.1017 of the Project Server assemblies for redistribution.
                    2. The file also includes the Microsoft.Office.Project.Schema.dll assembly, for developing event handlers.
                    3. Project CSOM solutions also require the redistributable DLLs for the SharePoint 2013 CSOM, 
                        which are at SharePoint Server 2013 Client Components SDK.
    • Updated Intellisense files for the PSI and CSOM, source code for creating a PSI proxy assembly, and instructions on how to update the PSI proxy files.
    • XML schemas for the Project client, AppProvisioning, and the Statusing PSI.

    The top-level online landing page for the Project SDK is Project for developers (

    For additional Project-related SDK content, see Office for developers (, SharePoint for developers (, and Build apps for Office and SharePoint ( The two articles on Task pane apps for Project are in the Apps for Office and SharePoint SDK, and the JavaScript API for Office reference includes information specific for Project, the ProjectDocument object with eleven methods and three events, and four enumerations for Project.

    Want to try out Project 2013?

    1. Sign up for Project Online and Project Pro for Office 365
    2. Download Project Professional 2013 and Project Server 2013


  • Project Programmability and Business Intelligence

    Checked Out Resources


    Phil Smail has this great code snippet for providing better error handling with regards to checked out resources:

    While working with the PSI I wanted to check out a number of resources. Obviously the situation can arise where some of those resources are already checked out and I wanted to report that information to the client.

    Unfortunately the PSClientError object only gives you information that there were resources already checked out but not which ones were checked out. The data is contained with the XML for the Exception so I wrote a helper function to extract this information out

    The output from the code looks like the following:

    The code is as follows:

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;
    using System.Web.Services.Protocols;
    using System.Xml;
    namespace GetError
        class Program
            private const string RESOURCESWEBSERVICE = "/_vti_bin/PSI/Resource.asmx";
            static GetError.ResourceWsc.Resource Resource = new GetError.ResourceWsc.Resource();
            static void Main(string[] args)
                String PWAURL = args[0];
                Resource.Url = PWAURL + RESOURCESWEBSERVICE;
                Resource.Credentials = CredentialCache.DefaultCredentials;
                Guid[] restypeGuids = new Guid[2];
                //Change these GUIDS to res Guids in your system
                restypeGuids[0] = new Guid("{f461c3f7-e0c9-414f-ae1a-41abe862f709}");
                restypeGuids[1] = new Guid("{4e5d7702-7748-4a18-bc5d-7beef7004188}");
                Console.WriteLine("Trying to check out resources");
                catch (SoapException ex)
                    String tempxml = ex.Detail.InnerXml;
            static void ExtractError(String xmlstr)
                XmlDocument doc = new XmlDocument();
                foreach (XmlNode node in doc.DocumentElement.FirstChild.ChildNodes)
                    String ErrString = "";
                        //We know its one error
                        XmlNode n = node.Attributes.GetNamedItem("value");
                        ErrString = "Error: Resource - " + n.Value;
                        XmlNode childn = node.FirstChild;
                        if (childn.Name.Equals("error"))
                            XmlNode no = childn.Attributes.GetNamedItem("name");
                            switch (no.Value)
                            case "CICOAlreadyCheckedOutToYou":
                                ErrString += " Resource already checked out to you";
                            case "CICOCheckedOutInOtherSession":
                                ErrString += " Resource checked out in another session";
                            case "CICOCheckedOutToOtherUser":
                                ErrString += " Resource already checked out to another user";
  • Project Programmability and Business Intelligence

    SharePoint 2010: 3 New Visual Studio 2010 Extensibility Projects for SharePoint 2010


    Pretty cool – check this out


    These projects will help you automate some common development tasks when creating SharePoint 2010 solutions using Visual Studio 2010.

    These three SharePoint 2010 Extensibility Projects can be downloaded from the MSDN Code Gallery here,

    All of the projects contain a Hands On Lab and a walkthrough video. Follow the links below to blog posts providing further details for each project template.



    Silverlight Web Part Project Template

    The Silverlight Web Part Project template will create a fully functioning Silverlight Web Part project ready for deployment. The project template also uses a Silverlight control generator that replaces some of the functionality that was deprecated from the Silverlight 3.0 SDK. This makes it easy for developers to quickly create a custom Silverlight application that goes beyond the functionality of the built in Silverlight Web Parts. Developers have total control over the Web Part such as how the Silverlight plugin code is generated and other Web Part behavior.
    For more details and a quick walkthrough visit: Silverlight and SharePoint project template


    Server Ribbon Project Item Template

    One of the new features in SharePoint 2010 is the Server Ribbon. The Server Ribbon brings all of the goodness that the Client Ribbon provides to SharePoint. Creating a ribbon requires that the developer code the ribbon xml by hand. Doing this by hand has a steep learning curve to get started. The Server Ribbon Project Item template makes it easy to create a Server Ribbon by following the wizard. In addition to the wizard there are code snippets for create all of the ribbon controls. This is a great way to learn the correct ribbon xml to make powerful user interfaces in SharePoint.
    For more details and a quick walkthrough visit: SharePoint Ribbon project template


    OBA Deployment Project Item Template

    SharePoint enables you to create custom content types that can be attached to document libraries. Creating rich OBA document templates using Visual Studio and deploying them to SharePoint is a common pattern that developers use to enable Line of Business applications. If you’ve deployed a document-level add-in to SharePoint you are familiar with the number of steps involved in this process. The OBA Custom Content Types Project Item template removes all of these steps and reduces the process down to a simple wizard and an F5 deployment. The extensibility project does all of the work making the developers more productive.

    For more details and a quick walkthrough visit: OBA Deployment project template

  • Project Programmability and Business Intelligence

    OLP Sample Code for Project Server 2010


    The Object Link Provider (OLP) in Project Server 2010 enables the management of the Project-specific lists in a project site (issues, risks, deliverables, documents, and custom lists) and integration of the SharePoint lists with Project Server. The OLP  has the same functionality as in Project Server 2007; however, you can use Windows Communication Foundation (WCF) to develop OLP solutions for Project Server 2010.

    The attached code ( is a preview of an example that uses the CreateWebObjectLinks method, to be published in the next update of the Project 2010 SDK. Before you run the sample application, perform the following steps:

    1. Use Project Professional 2010 to create and publish a project with at least one task.

    2. Use Project Web App to open the project site.

    3. Create at least one issue or risk in the Issues or Risks SharePoint list of the project site.

    4. Change the OLP constructor values according to your example.

    5. Add a web service reference to http://localhost/pwa/_vti_bin/Lists.asmx, and name the reference WebSvcLists.

    This example performs the following tasks:

    • Verifies that the project, task, and project site exist and gets their corresponding GUIDs.

    • Links a task and a SharePoint list item (in this case, an Issue).

    • Links a task and a generic object.

    • Gets the list of SharePoint items that are linked to a task and writes the contents of the ObjectLinkProvider dataSet dsLinkedObjects to an XML file.

    • Gets a list of generic items that are linked to a task.

    • Deletes the links to web objects.

    For more information about how the sample code works, see Procedures 1-6 in How to: Use the OLP to Link an Object to a Task.

  • Project Programmability and Business Intelligence

    UPDATED: Webcast: Communication between Project Professional and Project Server - Active Cache processes and Architecture drill down (Level 300)


    Great attendance – thank you!

    WebCast Overview
    This webcast will uncover processes and key messaging between Microsoft Office Project Professional 2007 and Microsoft Office Project Server 2007. From first logon, through operations like project open, save and publish, we will describe in detail the ‘cache’ folder structure and registry settings. Network traffic between client and server will also be explained. Finally, we will discuss enhancements made to increase client/server communication scalability and reliability.


  • Project Programmability and Business Intelligence

    Upcoming WebCast: Project Server Development for SharePoint Developers (Level 300)



    Let me highlight the following webcast that we conduct Thursday, May 05, 2011 8:00 AM (GMT-08:00) Pacific Time. Make sure to register now to get automatic reminder!

    MSDN Webcast: Project Server Development for SharePoint Developers (Level 300)

    Language(s): English.

    Product(s): Microsoft Project 2010

    Audience(s): Pro Dev/Programmer

    This webcast covers the Microsoft Project Server development features from a Microsoft SharePoint developer's perspective. We explain the logical architecture of Project Server in a SharePoint farm and compare the development features. We also give real world examples such as the ribbon UI, Windows Communication Foundation (WCF) server programming, web part with JS Grid, Workflow for Demand Management, and cmdlets for Windows PowerShell. The key takeaway is for SharePoint developers to understand the similarities in development to be able to join the Project Server developer community.

    Presenters: Steven Haden, Senior Consultant, Microsoft Corporation and Olivier Laymand, Senior Consultant, Microsoft Corporation

    Steven Haden is a senior consultant working for Microsoft Services in France. He is involved in large Microsoft Project Server and Microsoft SharePoint deployment. Steven is interested in both the architecture and the development of solutions and is the author of the white paper "Hitchhiker's Guide to Demand Management" (

    Olivier Laymand is a senior consultant from Microsoft Services working on large Microsoft SharePoint and Microsoft Project Server deployments. He's involved in solution architecture definitions, development of best practices, and governance.

  • Project Programmability and Business Intelligence

    TechED Europe - Microsoft Project 2010 Overview PowerPoint Deck


    We did two Project 2010 sessions at TechEd Europe – Christophe (thanks!) posted the decks on SkyDrive here as he mentioned here

    We have also shot two short videos on the 2010 news for Developers and  IT Professionals as mentioned here.

    Happy holidays!

  • Project Programmability and Business Intelligence

    Where is the XML file for modifying the PWA ribbon?


    Some folks have asked about the pwaribbon.xml file and modifying the ribbon in PWA for Project Server 2010. The SDK article Walkthrough: Customizing the PWA Ribbon and Accessing the JS Grid includes that information, although the article can be overlooked if you are not concerned with the JS Grid control. Here is the introductory information in the article about the pwaribbon.xml file:

    Modifying the Project Web App Ribbon with an Elements.xml File

    The Server ribbon for Project Web App is defined in the pwaribbon.xml file in [Program Files]\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\FEATURES\PWARibbon\listtemplates. To modify the Project Web App ribbon, you can use a custom Elements.xml file to add, change, or remove tabs, groups, and controls in the ribbon. For general information about modifying the Server ribbon in SharePoint applications, see Server Ribbon XML.


    You should not modify the pwaribbon.xml file itself. Updates and service packs can replace the pwaribbon.xml file and overwrite your changes. Changes that you make in the pwaribbon.xml file are not supported.

    You can also search MSDN for PWA ribbon. The article is at the top of the list.

  • Project Programmability and Business Intelligence

    Converting COM add-ins to VSTO for 64-bit Office apps


    64-bit Office apps--including Project 2010--do not support COM add-ins, which are 32-bit. To use the 64-bit environment, COM add-ins must be ported to a 64-bit add-in by using the Office Development Tools in Visual Studio 2010 (often referred to as Visual Studio Tools for Office, or VSTO).

    There is no direct conversion tool for porting 32-bit COM add-ins to VSTO for 64-bit Office apps. The amount of time to port a COM add-in can vary greatly, depending on the functionality and Project version for which it was designed. A simple add-in designed for 32-bit Project 2010 might take a few hours; something like Solution Starter: Scrum for Project 2003 (although I haven’t done a port) might take several weeks and require a complete redesign, because it uses features that are no longer available in Project and Excel 2003 – and it was written in VB6.


    ·         VSTO in VS 2010 supports only Office 2007 and 2010.

    ·         Carefully check the types when you convert the code (int, long, etc.).

    ·         When doing the port, you can use compiler constants to make the code usable in both 32-bit and 64-bit Office apps. See Tables of VBA Object Model Changes for a VBA example, and for a comparison of types in VB and C#.


    See also (VBA-related, not specifically for add-ins) Working with VBA in Office 2010 (32-bit) and Office 2010 (64-bit).


    You might also want to check out Add-In Express 2010; see, for example, Converting existing Office COM add-in projects to Add-in Express.


  • Project Programmability and Business Intelligence

    EPM 2007 Test Data Population Tool


    Christophe just passed along this information:

    The EPM 2007 Test Data Population Tool solution starter was published on CodePlex today:

    MWSnap048 2007-11-26, 19_26_50.jpg

    The EPM 2007 Test Data Population Tool enables you to load large amounts of EPM data: resources, projects, tasks, assignments into a Project Server 2007 database. You can then use this data to test loads and help your organization plan for your Project Server 2007 deployment. This tool is similar to the EPM 2003 Data Population utility but contains more features plus since the sources are provided you can customize it to fit your specific needs.  It was written by EPM World Wide Center of Excellence (WW COE) to generate data needed to perform performance and scalability labs for large and complex EPM deployments.

    The EPM 2007 Test Data Population Tool is a Win Form application that leverages the Project Server Interface (PSI) and/or WinProj (Project Professional).

    This solution starter includes a 15 pages document, a setup.exe to deploy it, as well as all source code.

    A special thank you to Mike Shughrue and Michael Jordan from the EPM WW COE for creating and testing the tool extensively during scalability labs, as well as Boris Scholl from the Product Marketing Group for reviewing the code and documentation. 

    About CodePlex

    CodePlex is Microsoft's open source project hosting web site. You can use CodePlex to create new projects to share with the world, join others who have already started their own projects, or use the applications on this site and provide feedback. A word about Microsoft’s role: Microsoft does not control, review, revise, endorse or distribute the third party projects on this site. Microsoft is hosting the CodePlex site solely as a web storage site as a service to the developer community.


    Q: Is the tool supported?

    A: There is no support in terms of CSS/PSS. We expect the support being a CodePlex community effort. Please note that the customization code uses standard supported web service calls available out of the box in EPM2007.

    Q: Is the tool free?

    A: Yes.

    Q: Can I distribute the tool and the source code to customers and partners?

    A: Customers and Partners can use both. Please point them to CodePlex as they have to agree on the license terms

    Q: Can a partner distribute the tool and code as is?

    A: No, but he can point his customer to the website to download it, so he makes sure that the customer agrees with the license terms.

    Q: Can a customer install the customization and use it?

    A: Yes the customer can, but he/she is responsible for testing it and running it.

    Q: Can I suggest changes to it?

    A: Yes, join the CodePlex community or send us an email:

    Q: Will this tool be distributed in other ways (i.e. DVDs)?

    A: No.

    Q: What skills do I need to modify or change the tool?

    A: C#, Project Server Interface, and a good understanding of the EPM 2007 data schema.

    Q: I’m trying to modify the code and do have questions. Who do I ask?

    A: Go to the EPMDatapop discussion forum on CodePlex.


    Christophe Fiessinger

  • Project Programmability and Business Intelligence

    Myths about Project 2010 Beta virtual Image HW requirements


    Just heard from number of you the confusion on the HW requirements, let attempt to clear some of it by this post.

    We advice the following two components that extremely enhance the performance:

    • 8GB of RAM is optimal on the host machine so you CAN allocate 6GB to the image
      • Please NOTE SharePoint 2010 – (platform for Project Server 2010) does NOT support less than 4GB of RAM - SharePoint Server 2010 system requirements – so 4GB on your host machine will not work as it will not allow you to assign 4GBs to the image.
      • Attempts to assign less than 4GBs to the virtual machine will cause number of processes not starting – this is not supported


    • Fast Hard drive – preferably SSD (Solid State Drive)
      • What is SSD?
      • How big you recommend? We recommend 80GB+ as the base image size is approx. 40GB
      • Recommendations on maker? We had a great experience with Intel, Kingston with Intel Controller (M-Series or E-Series).


    Does 2 versus 4 core make a big difference? No in our testing – the biggest speed improvement is the SSD.

    What configuration are you using for most of your demos?

    • We mostly use DELL E6400 (3GHz, duo Core, 8GB RAM, fast SSD) – this offers optimal size/portability and performance. The Project Conference KeyNote and demos ran from it and all Project 2010 Ignite demos I do, run from it as well! Some partners use the DELL Precision M4400.
    • We also use HP EliteBook 8530w (Quad core, 8GB RAM, fast SSD) – this one is slightly bigger and heavier – Christophe uses this one for his Project 2010 Ignite demos.
    • We are sure that similar specs from other manufacturers will rock as well!
  • Project Programmability and Business Intelligence

    Free online courses for developers - MSDN Ramp Up



    Check out the Ramp Up program ( if you have not done already. It has interesting tracks including SharePoint...

  • Project Programmability and Business Intelligence

    Who builds the Project 2010 Solution Starters?


    Some of you are asking how and who builds the Solution Starters.

    The Solution Starter specifications were done by the same group of people who design new components of Microsoft Project – the Program Managers inside of Microsoft. The specifications (“specs”) were then handed off to external company who coded, tested and released them into the MSDN Code Gallery.

    The company is called Internet Commerce Corporation (ICC)

    ICC is one of the first companies that started working with Microsoft Project Server 2010 as part of Microsoft's TAP program and continues to gain experience being involved in the development of a number of solution starters for Project Server 2010. Since then, ICC has built strong expertise in building EPM solutions based on the Microsoft Project Server 2010 Platform.

    Major focus areas in Enterprise Project Management for ICC are:

    • EPM Solution Implementation
    • Project Server 2010 deployment and configuration
    • Project Server 2010 customization and custom report development

    If you plan to do a coding project for Project 2010 and you need great developers with vast experience, feel free to consider them too!


  • Project Programmability and Business Intelligence

    Importing SharePoint List Data into Project Server 2007 Custom Fields


    Check this out - by Stephen C. Sanderlin, MSProjectExperts. Awesome real-world project article, extensive sample code!


    If you are heading to Project Conference – Steve has a 3 sessions about PSI – they span from 200 to 400 level. Worth attending…

    DEVDM 200: Project Server Programmability Overview

    Speaker(s):  Stephen Sanderlin, MSProjectExperts | 200 - Intermediate Level
    This session will provide an overview of the Project Server Interface (PSI) and the Reporting Database (RDB), along with discussions concerning their capabilities, usage, and limitations. This session seeks to build a foundational understanding of these components for the new Project Server developer.

    DEVDM 303: Best Practices: Consuming the PSI

    Speaker(s):  Stephen Sanderlin, MSProjectExperts | 300 - Experienced Level
    The Project Server Interface (PSI) contains a wealth of functionality spread across numerous components. Developers who are new to Project Server often find the sheer complexity and depth of the PSI to be extremely intimidating. In this session, we will show you how to build a basic PSI consumer application and provide some best practices. This session seeks to increase the new developer’s comfort level with the PSI.

    DEVDM 401: Building a PSI Wrapper for Application Integration

    Speaker(s):  Stephen Sanderlin, MSProjectExperts | 400 - Advanced/Expert Level
    When developing an interface between Project Server and an external Line of Business (LoB) application, the depth and complexity of the Project Server Interface (PSI) can present a whole host of issues. One of the most challenging issues is the substantial effort required for a developer that is unfamiliar with Project Server to gain solid experience and comfort with the PSI. One possible approach is to assign a small team to encapsulate the PSI interactions inside of a custom API. In this session, we will demonstrate and discuss various strategies and best practices for PSI encapsulation.

    See you at Project Conference!


Page 5 of 11 (255 items) «34567»