Wednesday, 19 January 2005

Free .NET Component Inspector from oakland software

Sometimes the best way to learn a new object model is to explore it at runtime. That is what makes OutlookSpy and OfficeSpy so valuable. The .NET Component Inspector, from oakland software, will let you do the same thing with any .NET assembly. Very cool!

01/19/2005 11:31:36 (Central Standard Time, UTC-06:00)  #    Trackback

 Tuesday, 18 January 2005

Surviving the Visual Studio .NET Designer "Woe"

In this article mwadams describes some of the problems in the current VS.NET designers. Some of the same problems exist in the Web designers too. So far all of the Web Designer problems I've tested are fixed in VS.NET Whidbey. I hope the same is true for the Windows Form designers. But until Whidbey arrives, mwadams provides some excellent advice.

This post brought to you by the letter W and Mike Gunderloy.

01/18/2005 07:14:46 (Central Standard Time, UTC-06:00)  #    Trackback

The best is the enemy of good

Joost Ronkes Agerbeek is documenting his experiences as he readies his first product for release. In his latest post he discovers that some times good enough is, well, good enough. This is a lesson that I am reminded of by my current employer every day. In fact, if you plan to start your own software business I recommend you work for a small ISV for a couple of years first. Or better yet, start your own ISV today and document the process the way Joost is. You are bound to learn a lot that way too.

01/18/2005 06:50:42 (Central Standard Time, UTC-06:00)  #    Trackback

Improve the design time experience of your .NET controls

In this article Jason Bock documents the trip he took to get a better design time experience for one of his Windows Form controls. Thanks Jason!

01/18/2005 05:50:41 (Central Standard Time, UTC-06:00)  #    Trackback

 Monday, 17 January 2005

What pieces of Windows Orchestration (WinOE) will be available in Whidbey?

WinOE Workflow Prepped For Whidbey, Longhorn, Office 12 In 2006 - Just in case you're not tired of learning new APIs yet. [Mike Gunderloy]

It isn't clear what is going to be available in the Whidbey timeframe, but I definitely need to look into this further for my day job.

P.S. I didn't get around to saying this when Mike posted his 500th post. But I don't know how Mike does it. I love The Daily Grind. I would be lost without it. If something interesting happens in the Microsoft/.NET world Mike points to it. The Daily Grind is a must read for any Windows developer.

01/17/2005 17:02:36 (Central Standard Time, UTC-06:00)  #    Trackback

Using Magic Numbers in place of null in Xml interfaces

It seems that while he was sending out Double.MaxValue the system was enable to use Double.Parse() on it. In other words, he wasn't able to "roundtrip" his value, like Double.Parse(Double.MaxValue.ToString()).


Using Edge Cases as Magic Numbers is more evil than using Magic Numbers [Scott Hanselman]

There is a similar issue with DateTime data when you try to use simple serialization - or serialization from a class -> XSD - to build an interface. That reminds me, I need to look at how Xml Serialization works for nullable types in Whidbey.

...after a quick Google search...

It looks like Christian Weyer already answered my question in this article.

01/17/2005 16:34:53 (Central Standard Time, UTC-06:00)  #    Trackback

 Friday, 14 January 2005

Use LinkedIn to connect to other microISVs was started to provide an online community where all of us with similar interests can congregate and share and learn. After a few emails, several of us thought it would be good to facilitate networking and communication among the community using

If you’re interested, head over to and sign up and send me an invitation. Find me by searching for ‘brian microisv’. My email is brian at you can guess dot com. Be sure to include the word microISV in your Groups and Associations. [microISV]

You can use my WEBLOG at {my domain} email address to send me an invitation.

01/14/2005 16:12:10 (Central Standard Time, UTC-06:00)  #    Trackback

Bill Gates on DRM

Gizmodo: I think setting up the platform? No, it's not inherently bad. But I think it does depend on what it is that you're protecting. But I think we just disagree.

Gates: No, I actually don't think we disagree. [Gizmodo]

I wish there was a podcast of this interview. I'd love to hear that exchange.

I also wish Gizmodo had asked Bill if he thinks there is a business model on the web for content that isn't protected by DRM. I'm also curious if he is willing to pay for DRM'd content. I'd also ask if Microsoft anticipates a tech support problem in a few years when people start replacing their computers and they can't move the content they paid for because the DRM won't allow it.

01/14/2005 16:03:08 (Central Standard Time, UTC-06:00)  #    Trackback

 Saturday, 08 January 2005

OutlookSpy: The most important Outlook development tool in my toolbox

I'd give up Visual Studio before I'd give up OutlookSpy. It is that good. Are you doing any Outlook development? Then you need OutlookSpy. It is worth 10 times more than Dmitry charges for it.

01/08/2005 10:02:26 (Central Standard Time, UTC-06:00)  #    Trackback

Does your managed Outlook Add-in stop working after a few minutes?

I'm working on a managed Outlook Add-in for my day job. I'm in the early prototyping stages and I haven't implemented a shim yet. I plan to soon, but for now I'm just trying to figure out the basics. I'm using DebugView to monitor my add-in and I've noticed that periodically another add-in is tracing from my thread. This didn't concern me until I noticed that my add-in quit working immediately after these traces. Here are the traces that I see:

[3852] APPMANAGER: Checking for updates.
[3852] APPMANAGER: New update NOT detected.

I have Lookout installed. Since Lookout doesn't use a shim it is running in the same AppDomain as my add-in. After poking around in the Lookout options dialog I found the "Automatically check for new software updates" setting on the Advanced tab. I disabled that setting and now I don't see the APPMANAGER traces. Better still, my add-in doesn't break anymore. I suspect that Lookout is calling ReleaseCOMObject as part of the process that is logging the APPMANAGER traces. That perfectly illustrates why you need a shim. But if you are just trying to take baby steps, I hope this saves you a little frustration ;-)

01/08/2005 09:50:38 (Central Standard Time, UTC-06:00)  #    Trackback