Ported my system management software at work over to .Net 2.0 and MMC 3.0 (Microsoft Management Console). I’m using VC# Express until the licensing comes down for VStudio Pro 2k5. Bascially we have to renew our MSDN licenses and there’s some haggling going on as to whether developers actually need tools. *shrug*

While .Net 2.0 is well documented and the new VStudio is a dream to work with - read: Ultra Mega Coding Crutch - MMC 3.0 has all but nothing for example code and Google search results. All of the documentation in MSDN is “pre-release documentation” and I managed to download some sdk sample code from some place in Indonesia. Apparently the official MMC 3.0 SDK isn’t out yet - or at least it’s in the Vista Platform SDK and is a total pain in the ass to find.

But I’ve got my tool ported over and eliminated 1 third party assembly outright. I’ll soon be able to nuke my poorly written progress dialogs and wizards as MMC 3.0 has these as part of the class library. Handy.

So far a few things to note about MMC 3.0:

It was released for downloads on March 13th 2006 and you can download it for XP, 2k3, and eventually Vista. (and XP 64 and 2k3 64).

MMC 3.0 let’s you write managed MMC snapins. If you don’t know what they are.. Ummm run MMC in the run bar and check it out. Enterprise Manager for SQL is an MMC snapin. There are a number of others that I fail to remember at the moment.

“Pre-release” documentation can be found here.

Now.. you’re off to start coding.. right?

Well, the first thing that’s going to frustrate you is that you won’t be able to find the Microsoft.ManagementConsole namespace in the GAC. You’ll find it here \system32\microsoft.managementconsole.dll. Reference it and set it to copy locally since it’s not gac’d.

I’ve yet to see the console display anywhere or in any fashion the messages I pump to Status and AsyncStatus when I’m doing lengthy work on a background thread. Even compiling the SDK sample I had and running it doesn’t show anything. *shrug* So I opted to use the microsoft.managementconsole.advanced.waitdialog This seems to work just fine.

When using the WaitDlg… if you call UpdateProgress and set both work complete and total work to 0.. i.e.; mywaitdlg.UpdateProgress(0,0,”Doing Something”); You’ll get a bouncing progress bar. So if you’re totally lost about how many steps what you’re doing is going to take.. you can always at least keep something moving on screen.

Anywho.. I’m in the middle of testing.. so I’ll leave you with this and get back to it.

Rev