Last night I caught up on a 50+ message thread over one of our design aliases with many of the “big dogs” on the WinFX team vehemently disagreeing. It is the issue of Strings vs. Uri instances.  Honestly, I don’t know where I personally come down on this one yet.  I am a huge, huge fan of making developers lives easier – anything we can do to push work ON developers at Microsoft that takes works OFF out customers is goodness to me.  That is, after all, the point of the framework.

I mean, do we gain a lot by making developers type

Foo (new Uri (“http://foo.bar.com”)) rather than Foo (“http://foo.bar.com”)?  Can you imagine the number of new Uri() calls there will be in reasonable Indigo code?  This not a performance argument, as the 2nd option will undoubtedly just create a Uri instance to validate the argument.  It is simply a question of developer satisfaction.

 

On the other hand I have a sneaking feeling (no, I am sure) I don’t really appreciate the effect of pushing this work on MS developers… Are we just leading developers into a pit of despair by using strings for Uris?   Will FxCop and design guidelines be enough to keep us out of trouble?  I just don’t know… yet ;-)

 

Please comment on Chris’s blog so we have it all in the same place as the debate internally continues.