Thursday, October 30, 2008

IntelliGantt Add In for Microsoft Project Released

Just a note that the new version is now available on the TeamDirection site. The old version is also available for Microsoft Project 2003 and/or WSS 2.0/SharePoint 2003 users.

The new version is chalk full of goodies (more screencasts and case studies on the way!) and, because it supports ClickOnce technology, you'll see new features appear now and then as we listen and respond to our customer base. The best part is everyone will get these updates automatically without lifting a finger-- which is the way it should be.

Next up-- IntelliGantt Plus. We are targetting November 15th as the first beta of the new rich client. Because our experience with ClickOnce with the Add In has been so positive we will be making IntelliGantt Plus a ClickOnce application as well.

Also, we will be consolidating the two IntelliGantt rich clients (IntelliGantt and IntelliGantt Plus) in to one rich client, named ... (wait for it :)...


Thanks for everyone's help getting the Add In released. On to the rich client!

Monday, October 20, 2008

IntelliGantt Add In now supports ClickOnce

One of the hardest decisions to make as a software company is not only how to develop the bits but also how best to send them. I've long thought that web-based solutions are actually, from a user interaction perspective, a poorer experience than comparable rich client applications. The fundamental reason is HTML is a presentation environment with javascript and other 'glue' bolted on to aid user interaction whereas a rich client has the full power of your desktop to work with.

However, the delivery of a web-based solution has been so superior that it has tipped the balance in their favor. Given two equal applications, the web-based solution wins because the installation and update is as simple as a click (ideally).

Not that rich clients will ever go away-- after all, what is the browser itself? But they could certainly learn something from the efficiencies of web delivery. Thankfully, it looks like the latest incarnation of ClickOnce is on the right track.

Our 'old' IntelliGantt product suite (the IntelliGantt rich client and the Add Ins for Microsoft Project and Mindjet MindManager) were delivered with traditional installtion programs. However, rounding back to that initial 'delivery choice', we are using the very latest ClickOnce technology with .NET 3.5 SP1 to deliever the new releases.


1) Microsoft addressed the installation and security model to be on par with a web applications 'sandbox'.
2) They also built in automatic updating
3) They reduced the complextiy of actual installation (supporting frameworks, redistributables and such)
4) They're supporting a wider delivery path (Apache, Firefox, etc)

With the latest incarnation Microsoft also made a very wise choice-- support for servers other than IIS to ClickOnce distribution! This will have huge ramifications strategically (see OpEd below), but there are still a few hiccups we ran in to. Here's what we did to address them:

Make sure your web server supports the required mime types!

Our site runs on Apache and as such we had to add the following mime types in an .htaccess file in order for ClickOnce to download all the bits correctly:

AddType application/x-ms-application application
AddType application/x-ms-manifest manifest
AddType application/octet-stream deploy

These are described in detail on MSDN.

We also found out, by actually deploying our new Microsoft Project Add In to customers that the following mime type is needed for the VSTO file itself:

AddType application/x-ms-vsto vsto

With the possiblity that msu (microsoftupdate)and msp (microsoftpatch) are also needed.

We've been very pleased with the result as not only do users experience a seamless installation, but every update we make is automatically updated for all our clients as well. As a result, we've been able to respond just as quickly as a web-solution, download the bits just as easily and still take advantage of the tremendous power on everyone's desktop.

Web solutions versus desktop solutions is really a battle between what will be the application container going forward-- to OS or the Browser. Didn't we go through this already with Microsoft and Netscape back in the late 90s? Yes, and Netscape lost. And so did Microsoft. Why? Because rather then answering the technology advantages of the web, Microsoft used their business advantage to carry the day. However, the door was still open in the weeks and months that followed. As a result, Google, among others, were able to walk through it and plant their flags.

Does ClickOnce finally start levelling the playing field? I think so, though in truth the lines will most likely totally blur between what is a desktop app and what is a web app. For instance, how different is a Flash package downloaded and run from cache in your web-browser than a .NET app downloaded and run in your OS?

Not much.

It's just nice to finally have some of the same tools that makes the web so successful. Good job to Microsoft's ClickOnce team!

Wednesday, October 15, 2008

The Underappreciated SharePoint Issue List

Way back when we were first developing IntelliGantt we had to decide which SharePoint web part IntelliGantt would work with. Because it focuses on project management the obvious web part was (and still is) the Task List.

However, I still remember that day when someone from a theater group in Florida called and gave me an eye-opening demonstration of how they were using the Issues List to manage their day-to-day tasks. True, it may not have a Gantt (or does it? :), and it's not really for project management and heck, there's no difference between an issue and a task, right?

Right, there's not much difference between an issue and a task. So the question basically turned from us asking users 'how about using a task list' to users asking us 'how about using an issue list'? For instance, there's a great versioning feature with an Issue List that let's anyone see not just that an issue is resolved, but an accompanying history showing HOW it was resolved.

This is useful.

So we ehanced IntelliGantt to recognize the SharePoint Issue List and voila, here it is in action:

Perhaps you're thinking 'great, but I really like the Gantt Chart view that comes with the Task List'. Ah, we didn't forget about you. When you use IntelliGantt to work with an Issue List, IntelliGantt incorporates the same fields the Gantt Chart view native to WSS 3.0 and MOSS uses. For example, in the above demo you'll notice that IntelliGantt added a few fields to the Issue List-- most importantly a Start Date and % Complete-- to go along with the Due Date that was already there.

It turns out these are exactly the fields a Gantt View requires in order to display. So, after connecting with an Issue List, IntelliGantt prepares it for a Gantt View automatically. The end result, based on the demo above, looks like this:

I just have to take a moment to say 'That's pretty cool!'

You can download the new IntelliGantt Add In for Microsoft Project and try it out yourself.

Monday, October 13, 2008

What XML Parser Does Internet Explorer Use?

We came across an odd thing today. I'm not going to say its a bug because I don't know all the ins and outs. In the grand scheme of things I would rate it between the final coat of paint my railings are crying out for and the notion that I should cancel my newspaper since I read everything online these days.


We had a bug report where IntelliGantt wasn't handling embedded objects within Microsoft Project fields correctly. The customer was kind enough to share their MPP file with us and we were able to work through the issue he was facing. (As an aside, providing the MPP file was a huge help for us. Thank you!)

We did eventually find we had a problem with a particular embedded OLE object within the Microsoft Project Task Notes field. But we were flummoxed after the fix because the project still bombed during the Sharing operation to SharePoint.

More debugging and additional enhancing of the log output led us to Task 98. Task 98 is certainly not as interesting as Hanger 18, but it did contain an alien of sorts-- an alien character code I hadn't seen since...

There in the rubble of text was a \v character, like that V miniseries back in the 80s.

Now the reason it took us so long to find this is we typically test our SharePoint XML packages with Internet Explorer. During our test, IE handled the XML just fine. However, when we created an XML document at runtime (for example. System.Xml.XmlDocument.LoadXml(string), it would throw an exception that it couldn't handle a \v.

Even though we are using .NET 3.5 SP1 (the very very latest) it looks the the System.XML parser is more or less unchanged from .NET 2.0. IE7, on the other hand, most likely is not using the .NET Xml parser and has something a bit newer.

It gets me wondering... Microsoft at this point really has two code bases: one for .NET and one for classic Win32. It's almost like two software development companies. I wonder how long this state of affairs can/will continue?

90,000 employees tells me as long as they want :)

Thursday, October 09, 2008

Why I Love Customers

As much as you try, you can't think of everything.

But a customer base? They're much smarter than me and certainly able to point out what needs to be done.

Case in point: We just received feedback from two customers that were as powerful as they were blindingly obvious:

1) How about putting an Ordinal in to the SharePoint task lists so that I can quickly match the SharePoint task list ID with the MS Project task ID? This is great because it has the added benefit of sorting the SharePoint list so it matches the MS Project task order. Duh!

2) Synchronizing tasks is great, but why are you putting constraints on the tasks in MS Project. If a task has been completed early, the slack should be taken up. Obviously!

Our crack engineers were able to get these requests in to the BETA refresh we posted tonight along with feedback from other users.

Our request to you is keep that feedback coming!

Wednesday, October 01, 2008

Connecting Project, SharePoint and Outlook

A couple people asked about sending Microsoft Project tasks through SharePoint all the way to Microsoft Outlook. Because the Office suite is more or less ubiquitous in corporations, many people spend most of their day within their communication hub -- MS Outlook.

So is it easier to update a task via a web broswer pointing to a SharePoint task list? Or is it easier to update a task using Outlook? While we could commission a study on the subject and possiblity come up with a definitive answer, we think the better approach is to say 'yes, we do both'.

Here's a screencast showing:

1) Starting a new project, adding resources and (very important) giving those resources within MS Project an email address so that IntelliGantt can automatically match them with SharePoint members in the site collection.
2) Sending the project to a SharePoint task list
3) Using Outlook to work with the same SharePoint task list
4) Adding a filter to Outlook so that I only see my tasks (very important for projects that have hundreds of tasks)
5) Updating a task within Outlook
6) Getting that update all the way back to MS Project

It sounds (and reads) like a lot, but its only 26 frames in the screencast, and most of these slides handle creating a filter withing Outlook.

Whether your team members would like to work with their browsers in SharePoint, or work online/offline on their client with MS Outlook, IntelliGantt helps you tie MS Project, SharePoint and Outlook together in to a single project information mesh.

Here's the screencast: