Office PIAs

Not that I do a bunch of Office development, but I did build a pretty nifty utility for PowerPoint a while back. Getting it installed on anyone elses machine, however, was a pain in the ass because while I always remember to install the Office Primary Interop Assemblies when I install Office, I’m fairly certain I’m in the minorty on doing so. So installing Build Slide Exporter was alway tricky. Now, the Office PIA’s are available as a seperate install. Not sure if you can redist them, but the readme file that comes with the installer specifically mentions “Wrap the O2003pia.msi in another setup package through Visual Studio or other Windows Installer aware setup editor” so it sounds like they expect it to be redistributed.

p and p Live! Webcast Guest Hosting

Last Thursday, I hosted the patterns & practices Live! webcast for Ron Jacobs. The session was on the Updater Application Block with Eugenio. I should have posted a link before hand – sorry about that. As soon as I find a link to the on-demand version, I’ll post it.

Ron is still out this week, so I’m hosting another webcast this coming Thursday at 11am PDT. The session is on Packaging Design and Architecture Guidance for Visual Studio and I’m very excited about the stuff we’ll be showing. Visit the MS Events site to sign up for the session.

Update: I located the on-demand version of the UAB webcast.

Not Your Father’s C++

Certainly not my father’s C++. I sat thru a presenation on VC++ 2005 today. Wow, I hadn’t realized all the coolness there.

First off, all the syntax is working it’s way thru the standards bodies, so no more underscore underscore syntax. It makes the code somewhat easier to read, but more importantly it’s following a similar standardization process to CLI and C#.

Secondly, you can now use all the native C++ features (templates, multiple inheritance, buffer overrun protection, etc) and all the CLI features (garbage collection, generics, language interop) together. Previously, you had very limited choices for mixing the two coding idioms. No longer – go ahead and mix and match. This gives you the best of both worlds. Use templates, and expose them to other .NET languages as generics.

Finally, it brings deterministic finalization to .NET. In VC++ 2005, you can declare both a destructor (used when a class goes out of scope or is explicitly deleted) and a finalizer (used when the class is garbage collected). This is similar to the whole IDisposable approach for classes that wrap unmanaged resources (file handles, network sockets, etc). Actually, it’s identical to IDisposable because that’s how it’s implemented! And it works both ways – if you instance a managed class that implements IDisposable “on the heap” then it will automatically call dispose at the end of scope. For example:

{  //C++ Version
   FileStream fs = FileStream(path, FileMode::Create);
   fs.Read(...);
   fs.Write(...);
}  //fs.Dispose called automatically

Even though the FileStream is implemented in C#, it behaves here like a stack type and is destructed as you would expect. In C#, you’d have to use a using statement to achieve the same effect. For this trival example, it’s not that big a deal. But if you have multiple stack instances created at different times within a scope, this helps out immensely.

Not sure I would move to C++ for all my managed programming, but I’ll certainly be giving VC++ 2005 another look.

Various Modeling Info

I was in Barcelona all last week, so I’m behind on email and blogs. I missed a couple of great posts from various folks involved in modeling at Microsoft. Gareth blogged about the text template engine in the DSL toolkit. Ali Pasha blogged about the relationship between the Distributed System Designers and the System Definition Model. And R.Ramesh pointed to the second and third parts of the Channel 9 interview with John Stall from the Class Designer team.

BTW, if you want to keep up on all the goings on the VSTS world at large, you have to subscribe to Rob Caron’s Blog.

Three Seperate IM Stacks

It’s interesting to see how consumer and corporate IM have finally started to evolve in different directions. I have a personal IM account (harrypierson at hotmail dot com) on MSN running the newly released MSN 7. I really like the integration with Spaces, the contact cards and the new Personal Message feature that also integrates w/ WMP and iTunes to show “what I’m listening to” (in case you’re curious, baby lullabies – I’m sitting in Patrick’s room as he goes to sleep). I hadn’t realized how many of my coworkers (primarily ex-teammates) have started blogs on MSN Spaces.

I also just installed Office Communicator 2005, the new corporate client for Live Communications Server 2005. While we’ve had LCS installed internally for a while, I rarely used it. I mean, the only real value I saw in corporate IM in general was security – if your employees are chatting on IM, better to keep it off the public Internet. But w/ LCS 2005 & new new client, there are several cool new features. First off, LCS 2005 connects with both AOL and MSN public IM services. So if you want to, add me as an IM contact via my corporate email address (hpierson at microsoft dot com). Next, LCS 2005 & the new client integrate with your Exchange calendar. So if you’re in a meeting, you’re status changes to Busy. I can also hover on a contact and see what they’re up to now (in a meeting until noon, free until 3:30, etc). Finally, the new Office Communicator client integrates with PBX systems. So I can select a conact, hit call, and my desktop phone automatically calls the person. For incoming calls, I get notification even if I’m not in my office. So if I’m in a meeting, my wife calls, I can click on the notification to forward the call to my mobile phone.

Finally, I’m running Skype (callto harrypierson). I was in Barcelona most of last week and I used the SkypeOut service all the time, except when I was making connections in the Amsterdam airport. I racked up the big 2 Euros in calls over the course of a week. I seem to remember MSN IM having support a similar service via Net2Phone, but they stopped some time ago. I’d probably can Skype if they brought it back. I don’t want or need three contact points like this. Two is good – one for work and one for personal – but three is one too many.

If you want to reach me, you have zero excuse!