Windows Vista will be available to a large audience a little more than a month (31 January 2007), so I wondered what it would take to make Creative Docs .NET Vista aware and pass the Certified for Vista logo program.
There are a set of requirements which must be met. Basically, for Creative Docs .NET, this means that:
All executable files must be signed with an Authenticode signature (EXEs and DLLs).
The installer must rely on the MSI engine (or ClickOnce), behave well and be Restart Manager aware.
The application must crash reliably, should it crash, and not try to handle unexpected exceptions; a proper crash will trigger Windows Error Reporting.
The application must behave well when multiple users are logged on a machine (fast user switching) or when used remotely through RDP.
The application must contain a manifest specifying its UAC level.
The application must accept shutdown messages from the Restart Manager.
Microsoft provides techincal guidance (Vista Requirements and Vista Test Cases), 10 hours of free support to help solve the problems which could arise and, for a limited time, pay the first $1000 of the fees incurred when submitting the application for certification, if the certification succeeds.
About two weeks ago, I registered on the Innovate on teh Windows Vista Platform site, purchased a VeriSign Authenticode certificate (there is currently a special offer at $99), signed my preliminary 2.0.8 version of Creative Docs .NET, got a WinQual account from Microsoft, checked the 30 test cases and on the 20th of December, submitted Creative Docs .NET for certification.
This was an interesting experience... and I was only mildly surprised when I discovered that the tools Microsoft provides (Visual Studio 2005) do not produce error free MSI files, and that there is no update I am aware of that fixes several issues which would disqualify the product for the logo. Fortunately, a few helpful Microsoft support engineers provided workarounds and our good friend google helped a lot too...
Next time, I'll summarize the fixes that were required for my MSI file to pass all test cases. Until then, I wish you all a (politically incorrect?) Merry Christmas!