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.
We have released SP2. For more details, check out Christophe's blog:
Our “very” own Project Developer Center got a new design by the MSDN writers – it means richer and more discoverable content for you! Check it out, it’s really stunning!
Thanks for the hard work to Jim and Verna! As always any feedback, comments, ideas could be directed to EPMDev@microsoft.com.
This is a little late, I missed that I didn’t post this. Q&A and demos from the March 12th webcast.
regsvr32 /u C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\shfusion.dll
It seems like I’ve been doing Project Programmability webcasts for months… oh yeah I have :). There are still two more left, check them out:
EPMAuditing Solution Starter Drilldown
Both start at 8:00 AM PDT.
Thank you for attending my MSDN webcast Project Server Events and Workflows. Don’t forget about next weeks webcast on Project Client programmability. Below is some of the Q&A I got during the webcast. Attached is the demos from the webcast.
Will you chat at all about Project Server 2010? Are there any plans for changes in the new version?
Is the command (i.e save project) already queued, when an event is raised?
Based on your description of pre and post, the "project published" event is raised after save to the db. Would you say its best to eval business rules afterward, log violations, notify user and delete from db? is there an ability to only delete from PDB and leave in DDB so user can correct and attempt re-publish?
Is it microsoft.office.project.schema.dll or microsoft.office.project.server.schema.dll?
microsoft.office.project.schema.dll is the correct DLL.
Is there anything to pay special attention for (i.e. concurrency, locking, etc.) with events on heavy loaded systems or is this solved by "serialized" execution through the project server queue?
Using events to enforce business rules
As Christophe pointed out in this blog post, we have now a very comprehensive white paper “Best Practices for Migrating to Project Server 2007” that provides guidance, references, and best practices to observe when migrating to Microsoft Office Project Server 2007 from Project Server 2003.
But how does it apply to you as a developer?
Project Server 2007 has a new API - Project Server Interface (PSI) that is a managed code interface opposed to the older Project Data Service (PDS) XML message interface found in previous versions of Project Server. And yes this means a lot :)
I’m pretty sure you have already investigated the content in the Project Server 2007 SDK (http://msdn.microsoft.com/en-us/library/ms512767.aspx), so let me point you to this chapter in the 2007 SDK “PDS Parity in PSI Web Services” - http://msdn.microsoft.com/en-us/library/ms197081.aspx. It has 3 articles inside, including equivalence table and code examples.
We would love to hear your feedback on the “PDS Parity in PSI Web Services” or any other feedback on the developer documentation and resources could be shared via EPMDev@microsoft.com. Thanks!
Thank you for attending my PSI review MSDN webcasts, I really enjoyed delivering them. I think if I deliver again it’ll need to be three webcasts, I barely finished part A, and left out three web services in part B. Below is some of the Q&A I’ve gotten.
Create a custom timesheet import UI. So create timesheet from data in Excel for example (each row as a new timesheet maybe?)
I want to work on top of various projects that have a certain CustomField value. Going into every project's dataset takes waaaay too long. Is there a better way to do this with PSI?
Is it ok to use VB for all this stuff or is it much better to use C#?
I am trying to sync the values in a Look up table with an external SQL table so the two stay in sync. What is the best way to do this? the table is a customer table from the accounting system
What types of programming tasks are going to take existing GUIDs, and what tasks will require us to generate our own GUID? Queueing? Object Creation? It would seem like Project Server would want to own the GUID, for sync'ing and stuff, right?
I don't mean to oversimplify, but if we have an admin backup scheduled daily, isn't that what you are referring to as the 'archive' (although with code you can have more control rather than an all or nothing).
Do you have any customers that are automatically tweaking the queue configuration settings in a production environment?
For AD Credentials, I use the NetworkCredentials class, which class do I use for the Forms logins? I don’t use it, just curious.... It blocks my outbound webservices connection, I can't seem to authenticate properly, any tips?