Percona Live MySQL User's Conference, San Francisco, April 10-12th, 2012 Book: "Pentaho Kettle Solutions", Matt Casters, Roland Bouman, & Jos van Dongen, Wiley 2010 Book: "Pentaho Solutions", Roland Bouman & Jos van Dongen, Wiley 2009

Tuesday, July 14, 2009

open-msp-viewer: Free XSLT utilities to render MS Project files as HTML web pages

IMPORTANT NOTICE

The old xslt-based open-msp-viewer project is no longer updated. Please find a new and much improved pure HTML version here at github: https://github.com/rpbouman/open-msp-viewer. Thank you for your interest.

Original post below

For my day job, I've been working on a few things that allow you to render Microsoft Project 2003 projects on a web page.

The code I wrote for my work is proprietary, and probably not directly useful for most people. But I figured that at least some of the work might be useful for others, so I wrote an open source version from scratch and I published that as the open-msp-viewer project on google code. If you like, check out the code and give it a spin.

It works by first saving the project in the MS Project XML format using standard MS Project functionality (Menu \ Save As..., then pick .XML) and then applying an XSLT transformation to generate HTML.

Currently, the project includes an xslt stylesheet that renders MS Project XML files as a Gantt chart. To give you a quick idea, Take a look at these screenshots:
msp1
and
msp2
The web gantt chart is rendered in a HTML 4.01 variant, CSS 2.1 and uses javascript to allow the user to collapse and/or expand individual tasks in the work breakdown structure. Currently, the HTML does not validate due to a few custom attributes I introduced to support dynamic collapsing/expanding the chart with javascript. In addition, the xslt transform process introduces the msp namespace into the result document, which results in a validation error

You can either associate the xslt stylesheet directly with the MS Project XML file, or you can use an external tool like xsltproc.

In the trunk/xml subdirectory, you can find a couple of sample projects in xml format that already have the stylesheet association. I have tested these in IE8, Chrome 2, Safari 4 and Firefox 3.5, and it works well in all these browsers. In the trunk/html directory, you'll find HTML output as created by xsltproc.

In the future, more xslt stylesheets may be added to support alternative views. Things that I think I will add soon are a resources list and a calendar view.

Enjoy, and let me know if you find a bug or would like to contribute.

20 comments:

Tiberiu Ghioca said...

Does it have any aplicability? Do you intend to develop it further?

I would also like to mention MOOS Project Viewer, a free Microsoft Project viewer:
http://www.ms-project-viewer.com/

Roland Bouman said...

Tiberiu,

it's a spin off from what I do at work. I do not have an urgent wishlist at the moment, but if I do, then yes I will develop it further.

Of course, if you have a cunning plan for world domination based on this tool, than I'd be willing to look into it :) It's always fun to go from the tinkering stage to something more useful.

RE. MOOS Project Viewer: thanks for mentioning that, it looks nice. from what I can tell this tool implements more views than just a gantt chart, and it is a real application.

On the downside, MOOSPV is "free" as in beer and only free for non-commercial use., whereas open-msp-viewer is GPL so you can modify to suit your needs, and you can make money on it and become a millonaire :p

Other differences (not necessarily bad, for either solution, just depends on what you need) are MOOSPV is an app, open-msp-viewer is more a component/library; MOOSPV depends on Java, open-msp-viewer depends on a web browser.

Denis said...

Hi Roland,

Looking interesting! I will definitely explore your solution. I am working on similar project. Please have a look http://www.amiproject.com/templates/HomeMove I am going to make money on that in future.

Tiberiu said...

Dear Roland,

Thank you for the feedback. Good luck with the "millonaire" thing :) One thing to be mentioned. I do not know how well chosen is your implementation... it is limited to only working with .xml files and not .mpp and I do not know how powerful is that XSLT tranSformation... I do not see too much future for it but I am curious what you will get and maybe I am wrong.

By the way I think it is time for jerryjacobson06 from ValleySpeak Project Server to come to post a comment on your site :))

Tiberiu said...

@Denis: If you plan to make money then you should improve your marketing strategy. Project.to is very similar to yours, I think it is newer than you on the market BUT he got you from behind. Your product was better than his but now I do not know what to say... I think you are moving slower than him.

@Roland: Is there a way to get notified about new posts? I did not found it.

Roland Bouman said...

@Denis: wow! I'm impressed :)
It looks really cool and I am sure many people would love to use this. can you briefly explain what technology is behind your solution?

Just an interested geek asking and interested in learning....

@Tiberiu,

look, I just made this available as-is, with no further pretension.

Personally, I can't wait for my organization to move away from MS Project altogether, but as long as its what we're using then this is what I am offering.

As for getting notified about posts, in the right sidebar, you will see a "subscribe to" gadget. I hope that's what you are looking for?

good luck and kind regards,

Roland.

Denis said...

@Roland Thank you for positive feedback! Technology is simple: .net, asp.net, html, css and JavaScript. Let me know if you want know more on that.

Denis said...

@Tiberiu Thank you for feedback! Unfortunately, I do not have enough time to develop my project. But I have couple of ideas I am going to launch soon. I believe it will differentiate my project from respective competitors. Keep your eyes open! :)

Anonymous said...

@Roland, it looks good however the css formatting in IE7 doesnt work properly.

@Denis, thats wonderful interface. I have worked with HPV Solo 2007 version which actually can read and display correctly MSProject Plans (.mpp) files. This interface reminds me of that. Nice work!

Roland Bouman said...

Anonymous,

yeah, I see what you mean..the left part is all messed up.

Are you using IE7? Should I fix it? Personally my impression is that IE7 never really enjoyed much traction. Perhaps I'm wrong.

Anonymous said...

Yeah I am using IE7 (still). Dont worry about fixing it. The idea to just run xml through the xsl transformation and view the project as html is very impressive.

You wouldnt mind if I try to fix the left side, Would you?

Roland Bouman said...

Hi Anonymous!

thanks, I'm glad you like the approach :) I am sure much can be improved in the xslt.

As for fixing the HTML/CSS: please, be my guest! If you feel like sharing, contact me and I'll add it to the project - of course, with full attribution. Mail is: roland.bouman@gmail.com

Anonymous said...

Thanks Roland. If I could make any improvement to the current one. I will for sure let you know and then you can decide if you would want to update the release.

Anonymous said...

Thanks for a very useful solution! I've developed an xslt to combine multiple project files into one gantt if anyone would find that helpful.

Also could you please suggest a way to set some of the levels to load initially closed rather than open?

Cheers,

Fraser

Unknown said...

Just wanted to say thanks! This project is going to save me a lot of time. Why MS Project doesn't include this kind of functionality out of the box is a mystery to me.

Roland Bouman said...

@Unknown, glad it's useful to you. Just use the issue tracker to post any bugs or feature requests and I'll see what I can do to improve it. It hasnt progressed much beyond that first rough cut that is now on google code.

Anonymous said...

Hi Roland. I went to the Google Projects page, and couldn't find any XSLT files there. Did you take it down?

Roland Bouman said...

Hi Anonymous,

the xslt files are where they have always been - in the xslt directory inside the svn repository (http://code.google.com/p/open-msp-viewer/source/browse/trunk/xslt/).

There is no download section. Just do a svn checkout of the repository, and use the files you need.

See http://code.google.com/p/open-msp-viewer/source/checkout for instructions.

creativ said...

hello roland, i'm searching some tool just like your, but unfortunately i have no idea how to use it...if you can guide me in few lines...i will apreciate.

Roland Bouman said...

@creativ, I mentioned it in the blog:


"You can either associate the xslt stylesheet directly with the MS Project XML file, or you can use an external tool like xsltproc."

See: http://www.w3.org/TR/xml-stylesheet/
and: http://xmlsoft.org/XSLT/xsltproc2.html