Tuesday, January 20, 2009

IntelliGantt API Example

Several of our clients have been very interested in using IntelliGantt APIs to customize the integration between Microsoft Project and SharePoint. We're happy to oblige and have just posted a Visual Studio 2008 C# solution that shows how you can:

1) Share projects to SharePoint, Local and Cloud workgroups
2) Update projects on SharePoint, Local and Cloud workgroups
3) Unshare projects from SharePoint, Local and Cloud workgroups
4) Create SharePoint task lists based on template IDs
5) Modify Workspace Settings, which in turn modifies the SharePoint task list when updating
6) Import project plans from MS Project
7) Read (ie. update) changes from MS Project to IntelliGantt
8) Export projects to MS Project
9) Write (ie. update) changes from IntelliGantt to MS Project

We opened up a new forum section to introduce and support the API as we start getting feedback-- and ideas!

The other part of this effort was creating a traditional MSI package to install IntelliGantt. This makes it easier for the example to reference IntelliGantt dlls since the ClickOnce installation generates human unfriendly paths and names, whereas the MSI puts assemblies in Program Files\TeamDirection\IntelliGantt.

(As a bonus, this also addresses deployment to Citrix environments, like Xen. Now the IntelliGantt executable can be explicitly identified and shared as a published resource.)

For the purposes of this API example, you'll want to install the MSI package first, and then unzip the C# solution.

The example doesn't show much in the way of actually working with a Project schedule. What it does show is just how amazing the SharePoint web services API is. Keep in mind that this is a client only install-- nothing is needed for the SharePoint server. (You can run this example against a hosted SharePoint server if you'd like). And yet you can do just about anything needed to move data back and forth. This means the door is wide open for integrating your project data with SharePoint services. We've tried to make the API as accessible as possible-- as easy and intuitive as the UI is-- but look forward to your feedback to see how well we've succeeded.

If you're curious about IntelliGantt's scheduling engine, you can do an Object Browse on the TDINETProjectModel assembly and see all it exposes. Most of the public names will make some sense. For our next API example, we will create a solution that highlights IntelliGantt's robust and feature rich scheduling engine, as well as templates, resources, assignments, filters, hyperlinks and task dependencies.

Finally, check out some of those enumerations to get an idea of what just might be coming down the road!

No comments: