I am a program manager on the Project team. I work on server and client programmability features such as the new web services API (called the Project Server Interface or PSI), server side events and the client VBA object model.

We have made some great architectural & platform improvements in the 2007 release. I will be using this blog as a forum to provide information and code samples vis-à-vis programming with Project 2007. I will focus mostly on Project Server but you can expect an occasional post dealing with the client.

To start off with, let me list all the new features available to developers for building Project based solutions.

Project Server Programmability Features: 

  • Project Server Interface: The new web services API. 
  • Server Side Events: A new feature in Project Server 2007. 
  • Reporting Database: A rich OLTP reporting store that is updated on a near real time basis. 
  • Web Parts: Since Project Web Access is now a custom SharePoint Site, the web UI can use the web part framework extensibility model. 
  • OLAP Cubes: Project Server 2007 will ship with 11 cubes (and 3 virtual cubes).

Project Client Programmability Features:

  • VBA Object Model: Updated with new members corresponding to the new features. No major changes here. 
  • Project Guide: A UI element that supports custom development. No major changes to the Project Guide infrastructure. 
  • Visual Reports: Create great reports leveraging the most popular desktop reporting tools, Excel and Visio.

Not necessarily programmability feature, but worth mentioning:

  • Server side scheduling engine: While it is not truly a programmability feature, the server scheduling engine is going to play a big part in all the server side solutions that work with project data. It will be transparent to most of the developers. However, it is important to know that this technology is now available on the server – and it is now possible to update and reschedule projects on the server without incorporating Project Professional in the mix.

Here’s a brief overview of the new server side web services API, henceforth referred to as PSI. The PSI is a set of over 320+ web services (caveat: we are still a ways off from shipping, so this number may change) that provide comprehensive server data and functionality coverage. The PSI has been factored by the business object, for example the PSI is divided into areas such as Projects, Resources, Custom Fields, Lookup Tables, Timeseets etc. Each such area has a separate .asmx file.

A thing to note here is that there are many features and capabilities that are available only in the Win32 (Project Pro) application; it was not a goal for the PSI to provide parity with Project Professional.

A key change in Project 2007 is that all clients, Project Web Access, Project Professional and other 3rd party applications access the server exclusively via the PSI. In the previous versions, Project Pro established a direct ODBC connection with the back end database. Not so anymore. This change, the way clients communicate with the server, is going to simplify a lot of extranet deployments since all clients will communicate with the server over HTTP or HTTPS.

My next post will be about getting started with PSI programming. Stay tuned.