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

    Office Project Server 2007 Developer Training


    Microsoft  Office Enterprise Project Management University (EPMU) is offering a range of new courses in Project Server and Project Portfolio Sever 2007 including Developer Training.

    Office Project Server 2007 Developer Training

    • Designed for Developers extending, developing and integrating Office Project Server 2007
    • 3 Day Course
    • USD$550

    For full details of all courses visit

  • 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

    Microsoft Office Project Conference 2007 - Simple Effective Rights


    I'm Phil Smail, one of the Program Managers from the Product Group. One of my presentations during the MOPC 2007 was one of security programmability. As part of that Presentation I demonstrated some code that I wanted to get onto this blog

    This code is a Simple Effective Rights tool. It's essentially a cut down version of the View Effective Rights tool we shipped with the Project 2003 Project Resource Kit (and will be shipping soon in the Project 2007 Project Resource Kit)

    It's a Winforms application that uses the PSI to brute force calculate why a user does/doesn't have the correct permissions. This version only does Project Permissions but could be very easily modified to handle Resource and Global permissions. It uses the PSI to work out the permissions

    When you first start the application you'll get the following logon screen:


    When you enter the URL you are presented with the main Form page:


    There are three drop downs at the top of the page. One to select the User, the second to choose the relevant permission, and the third to choose the Project Name. One those details have been entered you just need to hit the 'EffectivizeName Possible my Rights' button. It then looks like the following:


    The columns mean the following:

    Column Name Possible Values Purpose
    Right Allow/Deny The right specified for the selected Permission
    Object Present True/False Whether the object is explicitly added to the category. If not then it may be accessible through the Category rules
    Category Name N/A The name of the category giving the user permissions
    User/Group Name User name or the Group name If this is via the User then the User Name is displayed else we just display the name of the Group
    Applicable Rules

    · All current and future projects in Project Server database

    · Only the projects indicated

    · The User is the Project Owner or the User is the Status Manager on assignments within that Project

    · The User is on that project's Project Team, The Project Owner is a descendant of the User via RBS

    · A resource on the project's Project Team is a descendant of the User via RBS

    The Project Owner has the same RBS value as the User

    The rules specified by the Category that may be relevant to the effective Permission

    The rules specified by the Category that may be relevant to the effective Permission

    As you can see in the case above the following can be understood from this:

    · The effective right is Deny for this user, this permission on this project

    · The user is denied in 4 categories, 3 directly on the user, one through a group

    What it’s doing under the covers is going through the user object and working out what categories they have permissions on and whether the object exists and what permission the user has on those objects. It then goes through all the groups the user belongs to, works out what categories they have permissions on and calculates the same information. This will give the effective right the user has.

    Why do we have to go through every item to work out the effective right of the user? Unfortunately there isn’t a PSI that tells us the effective permission of a user other than the logged on user.

  • Project Programmability and Business Intelligence

    Tied Mode between Timesheet & My Tasks Solution Starter



    An new version of the popular Tied Mode between Timesheet & My Tasks solution starter was published on CodePlex today:

    Project Server 2007 Timesheet Tied-Mode Service and Event:

    This new version give you the ability to import saved Timesheets into My Task in an asynchronous manner. For instance all TS imports could be scheduled during off peak hour at night for instance.

    The functionality is the same as the initial solution starter; how and when the updates are processed is what changed. This new version significantly improves the timesheet queue throughput as well as the overall system stability by reducing the load on Statusing.

    A special thank you to Mike Shughrue and Steven Haden from the EPM WW COE for creating and testing this solution starter. 

    If you are aware of any useful tools/solutions for Project and Portfolio Server 2007 and you would like to share them with the community via CodePlex please send me an email.

    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 Discussions forums on CodePlex.

    Q: What are all the EPM projects released on CodePlex?

    A. Check this:


    Christophe Fiessinger

  • Project Programmability and Business Intelligence

    Canceling the Before Save Event



    A good question came in yesterday; how to cancel the Project Before Save event in Project client:

    Public Sub GlobalApplication_ProjectBeforeSave(ByVal pj As Project, ByVal SaveAsUi As Boolean, Cancel As Boolean)
             Cancel = True
    End Sub

    (For demonstration and simplicity, this event handler just cancels all saves. You would most likely want to add validation and if it fails, cancel the save)

    Unfortunately the above code will not work. Instead, you will want to use ProjectBeforeSave2:

    Public Sub GlobalApplication_ProjectBeforeSave2(ByVal pj As Project, ByVal SaveAsUi As Boolean, Info As EventInfo)

             Info .Cancel = True

    End Sub

    Hope this helps,

    Chris Boyd


    Technorati tags: , ,
  • 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

    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

    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

    Registering with Project Server Events


    As I am sure many of you are aware that Project Server provides an event infrastructure that developers can create their own events for key pre and post events that occur on the server. Mike Shughrue from the Project's Center of Excellence has provided the attached sample code that is a great example on how to register events and how to create event handlers. I use this tool to register my events opposed to using the UI on the server.

    For more information about events, check out the following SDK articles:

    Chris Boyd

  • Project Programmability and Business Intelligence

    Project Server 2007 - Project Server Developer Community Expanding


    Leveraging the development aspects of Project Server 2007 spans a wide range of skills.  PWA customizations (ASP.NET), workflow development, line of business applications integration using the PSI, extending Project Server functionality using server side events, specialized reporting from the Project Server databases and experience using VSTO are all areas of discussion. 

    The Project Server Product Group currently supports these efforts through channels such as the this Blog, Project Support WebLog, Project.Server Discussion, Project.Developer Discussion, and the Project 2007 Team Blog.

    To streamline and augment the existing efforts, we are seeking developers to join the already established Project.Developer Discussion Group

    By joining we invite you to share and discover knowledge about Project Server 2007's highly extensible out-of-the-box developer's platform, access Project Server Developer best practices, utilize a technical window back to the MS Project Server Development Group, and take part in several specialized webcasts on Development topics coming up in the next couple months.

    To identify yourself as someone that would like to join the Development Community, please contact Joyce Bileau, v-joyceb@microsoft for more information.

    To join, go to

  • Project Programmability and Business Intelligence

    New Technical Article: "Importing Project 2007 Tasks from Excel Using a Managed Code Add-In"


    Jim has just posted a new technical article. Here are some details he sent me: 


    The article "Importing Project 2007 Tasks from Excel Using a Managed Code Add-In" is now published in the Technical Articles section of the Project 2007 SDK.


    Article URL: 


    Associated download: 


    The article:

      -- Explains how to develop a Project add-in that integrates with Excel, using Visual Studio 2008

      -- Summarizes the differences between C# and VB development for add-ins

      -- Includes extensive C# and Visual Basic code examples

      -- Explains examples of routines that validate and convert subsets of Excel task data for import

      -- Handles multiple task predecessors

      -- Shows a way to handle task predecessors that would create COM exceptions
      -- Shows how to configure ClickOnce for deployment of the add-in


    The download includes the complete C# and Visual Basic.NET code. Visual Studio Tools for Office (3.0), in Visual Studio 2008 (Beta 2), now includes templates for Project 2003 and Project 2007 add-ins. The new templates and ClickOnce publishing make it *much* easier to develop, deploy, and update add-ins for all Office applications.


    You can download the Beta 2 release of Visual Studio 2008 from

  • 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

    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

    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

    Building an app for Project Server 2013


    Alex Burton, a Project MVP, has published a series of posts titled Building your first Project Server app on the EPMSource blog. The app is named Publish All; it publishes all enterprise projects for the PWA instance where the app is installed. The Publish All app is developed by using the Project Server JavaScript object model (JSOM) with "Napa" Office 365 Development Tools, and can be deployed to Project Online and to an on-premises installation of Project Server 2013.

    The blog series includes the following parts:

    Alex has even gone so far as to add a support page for the Publish All app, at It looks to be a very useful series.

    For more information about the Napa tools, see How to: Create a basic app for SharePoint by using Office 365 Development Tools on MSDN. For information about using Visual Studio 2012 with the JSOM for Project Server, see Getting started with the Project Server 2013 JavaScript object model.

  • 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

    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

    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

    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

    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

    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

    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

    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

    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.


Page 5 of 11 (255 items) «34567»