<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://mbrownchicago.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fmbrownchicago.spaces.live.com%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Brownie Points</title><description>The Tale of a .NET Conv...Fanatic.</description><link>http://mbrownchicago.spaces.live.com/</link><language>en-US</language><pubDate>Fri, 05 Sep 2008 20:42:24 GMT</pubDate><lastBuildDate>Fri, 05 Sep 2008 20:42:24 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><live:identity><live:id>2459489012663404964</live:id><live:alias>mbrownchicago</live:alias></live:identity><image><title>Brownie Points</title><url>http://blufiles.storage.live.com/y1pSHtrknD16T8WaQmMIeMOctQiMhwkMhhOf1PlveDjzQj21sujEylyahdnmja9xnax</url><link>http://mbrownchicago.spaces.live.com/</link></image><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>What I'm Working On</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!918.entry</link><description>&lt;p&gt;Here's a screen shot/teaser of &amp;quot;Flow&amp;quot;, a pet project of mine. &lt;p&gt;&lt;a href="http://5rlkhw.blu.livefilestore.com/y1pscspuw82IzJwv-Ill6mXFHb63EQEBjGMHvvyalDKN-gGvgYLIibjJ1Q-PJAceidOMvqwhd7wtA5I1JqNCd7--A?PARTNER=WRITER"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=389 alt=image src="http://5rlkhw.blu.livefilestore.com/y1pRhnaILJLtiWdcY43A9XbDQ_kWpZrXuOo1y0x5RbSCrTFQJoTTgkdOMNJQMZM5YtHa3dO0hrgrfk94M8U1_5WCw?PARTNER=WRITER" width=644 border=0&gt;&lt;/a&gt;  &lt;p&gt;It may not look like much, but it's deceptive. Seeing it in action is a totally different experience. I'm not quite ready to show that to you though :P&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+What+I'm+Working+On&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!918.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!918.entry</guid><pubDate>Sat, 30 Aug 2008 21:38:34 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!918/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!918.entry#comment</wfw:comment><dcterms:modified>2008-08-30T21:38:34Z</dcterms:modified></item><item><title>PnP Design for Operations</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!909.entry</link><description>&lt;p&gt;So while I was testing out &amp;quot;Flow&amp;quot;, I came across a link to a Patterns and Practices project that I hadn't seen before called &lt;a href="http://www.codeplex.com/dfo" target="_blank"&gt;Design for Operations&lt;/a&gt;. Basically, this project provides guidance and tools for placing instrumentation and management hooks into your application so that it can work with System Center and other management tools. There have been a number of times where I thought it would be nice to add this kind of functionality into an enterprise app and leverage the capabilities of SCOM (formerly MOM) to provide rich management and metrics; but I didn't have a clue where to start. This package looks like it would give a huge jumpstart into doing just that. &lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+PnP+Design+for+Operations&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!909.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!909.entry</guid><pubDate>Wed, 27 Aug 2008 06:04:29 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!909/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!909.entry#comment</wfw:comment><dcterms:modified>2008-08-27T06:04:29Z</dcterms:modified></item><item><title>Turn Off Vista Autotuning</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!908.entry</link><description>&lt;p&gt;If you have an older router, Vista's network auto tuning feature will cause it to get confused. Some suggest turning off Stateful Packet Inspection (or SPI) on the router will fix the issue. Others say updating the firmware will work. If your router does not have an option to turn off SPI or you do not want to do so, or if your router manufacturer no longer provides firmware updates, the last option is to turn off autotuning. &lt;p&gt;Here's the magic command line to do so: &lt;div&gt; &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none"&gt;c:\&lt;span style="color:#006080"&gt;&amp;gt;&lt;/span&gt;netsh interface tcp set global autotuninglevel=disabled &lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;I recently rebuilt a laptop and had a hard time finding this solution again. Now it's documented in a well known place for me (and you as well).&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+Turn+Off+Vista+Autotuning&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!908.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!908.entry</guid><pubDate>Tue, 26 Aug 2008 17:27:34 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!908/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!908.entry#comment</wfw:comment><dcterms:modified>2008-08-26T17:27:34Z</dcterms:modified></item><item><title>LiveID SDK</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!832.entry</link><description>I&amp;amp;apos;m trying out the sample app in the Windows Live ID SDK.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+LiveID+SDK&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!832.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!832.entry</guid><pubDate>Fri, 22 Aug 2008 17:45:29 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!832/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!832.entry#comment</wfw:comment><dcterms:modified>2008-08-22T17:45:29Z</dcterms:modified></item><item><title>NDepend</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!804.entry</link><description>&lt;p&gt;Recently, &lt;a href="http://codebetter.com/blogs/patricksmacchia/default.aspx" target="_blank"&gt;Patrick Smacchia&lt;/a&gt; dropped by and left a note showing how he &lt;a href="http://codebetter.com/blogs/patricksmacchia/archive/2008/08/13/net-3-5-sp1-changes-overview.aspx" target="_blank"&gt;used NDepend&lt;/a&gt; to see numerically what has changed between 3.5 and 3.5 SP! This prompted me to look a little closer at the tool. If you want to capture metrics on your .NET code, NDepend does a great job at doing it. &lt;p&gt;Similar to the capabilities that TestDriven.NET gives to the lower entries in the Visual Studio product line in the arena of Unit Testing, NDepend provides code metrics for those who aren't using Team System. I would argue it goes a bit beyond the built-in Team System code metrics tools. NDepend has a query language called CQL that allows you to specify what metrics are important to you and what your alert levels are for those metrics. &lt;p&gt;There is a lot to explore in this area, especially when looking at continuous integration and build verification. Before I even spend my time looking at code for a review, I can have NDepend look over the code and tell me what's missing. Once I've made the queries, NDepend will consistently catch code that breaks my rules. Giving me more time to focus on building another O/RM.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+NDepend&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!804.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!804.entry</guid><pubDate>Thu, 14 Aug 2008 13:58:02 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!804/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!804.entry#comment</wfw:comment><dcterms:modified>2008-08-14T13:58:02Z</dcterms:modified></item><item><title>VS2008/.NET Framework 3.5 SP1 Coming Soon</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!798.entry</link><description>&lt;p&gt;According to this blurb on MSDN Subscriber Downloads &lt;p&gt;&lt;a href="http://5rlkhw.blu.livefilestore.com/y1phoFh3vW7kp3PwNIPk8uj1-wWaE9_SKntJX2peZNbKT-eiCc804JwgVNSJpN1Y0UunRjgVS80cKM?PARTNER=WRITER"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" border=0 alt=image src="http://5rlkhw.blu.livefilestore.com/y1p4jSmOZNs5OPd-bie-QtmSHXdC7f98QOFUQKZbXQbpVdBpMrv2KhRDO3vdqL6Wjnvhr6WkzozUvhgPYK12AaFBQ?PARTNER=WRITER" width=724 height=92&gt;&lt;/a&gt;  &lt;p&gt;the VS2008/.NET 3.5 SP1 download will be available on the 11th. Some people have noticed that SQL Server 08 installs .NET 3.5 SP1. So it's almost here. I played around with the SP1 beta and liked what I saw. So it's going to a tough weekend for me.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+VS2008%2f.NET+Framework+3.5+SP1+Coming+Soon&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!798.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!798.entry</guid><pubDate>Fri, 08 Aug 2008 14:18:39 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!798/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!798.entry#comment</wfw:comment><dcterms:modified>2008-08-08T14:18:39Z</dcterms:modified></item><item><title>SQL Server 08 Get It While It's Hot</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!793.entry</link><description>&lt;p&gt;The final piece of the 2008 Launch, SQL Server 2008 (formerly known as Katmai), has finally gone Gold. For those with an MSDN subscription, you can download the bits now on subscriber downloads. &lt;p&gt;I'm not the person to ask for a full-blown tour of Katmai, but some of the features that have had my radar pinging include: &lt;ol&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/spatial-data.aspx" target="_blank"&gt;Spatial Data&lt;/a&gt;: With native support for geographic data, SQL 2008 provides a powerful platform for storing and retrieving your data based on location. &lt;li&gt;&lt;a href="http://www.sqlservercentral.com/articles/News/3253/" target="_blank"&gt;Separate Date and Time Data Types&lt;/a&gt;: If you're only concerned about a date, you no longer have to store it as August 6, 2008 12:00:00.00 AM. Likewise if you're only concerned about a given time (for instance if you want a recurring appointment to happen every day at 10:00 AM), you no longer are burdened with specifying a date in addition. &lt;li&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/12/02/sql-server-2008-table-valued-parameters.aspx" target="_blank"&gt;Table Value Parameters&lt;/a&gt;: Table value parameters allow you to pass a table of data into a stored procedure. While you could emulate the same effect using XML in SQL Server 2005, native support for passing in tabular data means your stored procedures do not have to deal with parsing XML or complicated XQuery. &lt;li&gt;&lt;a href="http://blogs.msdn.com/manisblog/archive/2007/08/17/sql-server-2008-hierarchyid.aspx" target="_blank"&gt;HierarchyID&lt;/a&gt;: This is an interesting beast. It is a system defined SQL-CLR data type that can be used as a column type in your table. Basically the HierarchyID allows you to store a hierarchical relationship between rows in your table. (Look for an update to the Employees tables in the Northwind samples to demonstrate how to take advantage of this new feature).&lt;/ol&gt; &lt;p&gt;There are a number of other new features in SQL Server 2008 and we haven't even left the realm of the database engine itself. Reporting Services (including a server that does not rely on IIS), Analysis Services, and Integration Services have all received significant upgrades.  &lt;p&gt;I guess this gives me a nice toy to play with while waiting for the release of .NET 3.5/VS 2008 SP1.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+SQL+Server+08+Get+It+While+It's+Hot&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><category>Microsoft Development</category><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!793.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!793.entry</guid><pubDate>Thu, 07 Aug 2008 06:18:00 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!793/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!793.entry#comment</wfw:comment><dcterms:modified>2008-08-07T06:18:00Z</dcterms:modified></item><item><title>Fixing WPF Command Routing</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!784.entry</link><description>&lt;p&gt;&lt;a href="http://wekempf.spaces.live.com/default.aspx" target="_blank"&gt;Bill Kempf&lt;/a&gt;, a fellow &lt;a href="http://wpfdisciples.wordpress.com/" target="_blank"&gt;WPF Disciple&lt;/a&gt;, was lamenting the fact that by default a CommandBinding can only refer to a handler defined in the code behind of the Window/Page/UserControl in which it's defined. He wished that a syntax similar to the following was possible &lt;p&gt;  &lt;div&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Window&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;Window.CommandBindings&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000"&gt;CommandBinding&lt;/span&gt; &lt;span style="color:#ff0000"&gt;Command&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&amp;quot;foo:MyCommands.FooCommand&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000"&gt;Executed&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&amp;quot;{Event Target={StaticResource MyPresenter}, Handler=OnFooCommand}&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Window.CommandBindings&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000"&gt;Window&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;I took that scenario as my starting point. The first issue I saw was that I needed a markup extension that let's you specify a Target Object and the name of a handler on that Target returning a ExecutedRoutedEventHandler. So I made one. 
&lt;p&gt;The Markup Extension exposes two properties: Target (of type object) and Handler of Type String. The ProvideValue override (shown below) uses reflection to get a handle on the function and creates a lambda that invokes it for the result. (I love lambdas as much as I loved anon functions before them.)
&lt;div&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff"&gt;object&lt;/span&gt; ProvideValue(IServiceProvider serviceProvider)
{
    ExecutedRoutedEventHandler retval=&lt;span style="color:#0000ff"&gt;null&lt;/span&gt;;
    &lt;span style="color:#0000ff"&gt;if&lt;/span&gt; (Target == &lt;span style="color:#0000ff"&gt;null&lt;/span&gt;)
    {
        &lt;span style="color:#0000ff"&gt;throw&lt;/span&gt; &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; Exception(&lt;span style="color:#006080"&gt;&amp;quot;Target cannot be Null.&amp;quot;&lt;/span&gt;);
    }
    var type = Target.GetType();
    var function = type.GetMethod( Handler, &lt;span style="color:#0000ff"&gt;new&lt;/span&gt;[]{&lt;span style="color:#0000ff"&gt;typeof&lt;/span&gt; (Object),&lt;span style="color:#0000ff"&gt;typeof&lt;/span&gt; (ExecutedRoutedEventArgs)});
    &lt;span style="color:#0000ff"&gt;if&lt;/span&gt; (function != &lt;span style="color:#0000ff"&gt;null&lt;/span&gt;)
    {
        retval = ((obj, args) =&amp;gt; function.Invoke(Target, &lt;span style="color:#0000ff"&gt;new&lt;/span&gt;[] {obj, args}));
    }
    &lt;span style="color:#0000ff"&gt;return&lt;/span&gt; retval;
}&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;So I plug my new markup extension into a sample window, anticipating some good command routing lovin'. Of course it's never as easy as it looks at first. The Executed property on CommandBinding, although an event, expects a string in markup (the XAML compiler does some trickery to turn the string into an event handler). Well I know, I'll create an Attached Property to do my magic...
&lt;p&gt;(To be continued...)&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+Fixing+WPF+Command+Routing&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!784.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!784.entry</guid><pubDate>Sat, 26 Jul 2008 03:58:27 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!784/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!784.entry#comment</wfw:comment><dcterms:modified>2008-07-26T03:58:27Z</dcterms:modified></item><item><title>Generic Extension Methods</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!777.entry</link><description>&lt;p&gt;I've discovered that if an extension method is generic and the generic type is used as the &amp;quot;this&amp;quot; parameter, you do not have to write out the generic discriminator. The compiler is smart enough to infer it for you. For example, the &lt;a href="http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!748.entry" target="_blank"&gt;range validation function&lt;/a&gt; I shared a few weeks ago can be called like so: &lt;div&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#0000ff"&gt;int&lt;/span&gt; myInt=5;
myInt.ValidateRange(2,20);&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Jeff would be happy.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+Generic+Extension+Methods&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!777.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!777.entry</guid><pubDate>Sun, 20 Jul 2008 12:35:28 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!777/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!777.entry#comment</wfw:comment><dcterms:modified>2008-07-20T12:35:28Z</dcterms:modified></item><item><title>Frameworks! Frameworks! Frameworks!</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!776.entry</link><description>&lt;p&gt;If I haven't blogged about t before, I meant to but have been extremely busy. The first release of Prism or &lt;a href="http://blogs.msdn.com/gblock/archive/2008/07/03/composite-application-guidance-is-live.aspx" target="_blank"&gt;Composite App Guidance for WPF&lt;/a&gt; is available. Oh wait...I've &lt;a href="http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!743.entry" target="_blank"&gt;blogged about it already&lt;/a&gt; (Did I mention how much I love Live Writer?). If you're looking at WPF for enterprise &amp;quot;Line of Business&amp;quot; applications, you should really look at it, not just for the framework but for the guidance assets themselves. I participated in the advisory board for the guidance and had a blast giving feedback to the PnP team and seeing that feedback integrated into the package. I even got my name on the &lt;a href="http://msdn.microsoft.com/en-us/library/cc707819.aspx" target="_blank"&gt;MSDN page for the package&lt;/a&gt; &lt;p&gt;&lt;a href="http://gs7x7a.blu.livefilestore.com/y1pAF_u2qgvbkD43u9hJgfoZ2Ao3bG_MwVzRbUtiRacRPlipwi5Md0yb3PeVDf-hyQ2ladzVR3wJBI?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" border=0 alt=fameandfortune src="http://gs7x7a.blu.livefilestore.com/y1pJdd3YDPSiS3zEhuLO_ECk-qYpYY0cZy3cqm7BikZEjo6fQBdsvLDxfUoCUrD_9JwdDoeQLg042usJyp_PA8UQQ?PARTNER=WRITER" width=734 height=255&gt;&lt;/a&gt;  &lt;p&gt;It's the little things that make me smile :P &lt;p&gt;Anyway, this post isn't about me. It's about some cool announcements coming from Microsoft. (Slow down guys or there won't be much left to announce by the time PDC arrives.) First up is the &lt;a href="http://blogs.msdn.com/kcwalina/archive/2008/04/25/MEF.aspx" target="_blank"&gt;Managed Extensibility Framework&lt;/a&gt; or MEF for short. The short explanation for it is native Dependency Injection in the .NET Framework. There is a CTP available for it, which I'm downloading as we speak. &lt;p&gt;Next on the list is the upcoming &lt;a href="http://www.amazon.com/Framework-Design-Guidelines-Conventions-Development/dp/0321545613/ref=pd_bbs_sr_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1216270694&amp;amp;sr=8-2" target="_blank"&gt;second edition&lt;/a&gt; of &lt;a href="http://www.amazon.com/Framework-Design-Guidelines-Conventions-Development/dp/0321246756/ref=pd_bxgy_b_img_b" target="_blank"&gt;Framework Design Guidelines&lt;/a&gt;. The first edition is a book that I recommend that anyone doing significant .NET development have on their shelf...within easy reach. &lt;a href="http://blogs.msdn.com/kcwalina/default.aspx"&gt;Krzysztof Cwalina&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/brada" target="_blank"&gt;Brad Abrams&lt;/a&gt;, and others on the Framework team have continued to provide addenda for the book. But there has been a major release of the framework since the first edition was published, and there is enough new stuff to talk about to merit a new edition. I've already got it pre-ordered. &lt;p&gt;Speaking of the MEF and the PnP team, Glenn Block recently announced his move from PM for PnP to PM on the MEF team. I can't think of a better person to provide leadership for this initiative.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+Frameworks!+Frameworks!+Frameworks!&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!776.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!776.entry</guid><pubDate>Fri, 18 Jul 2008 18:36:56 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!776/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!776.entry#comment</wfw:comment><dcterms:modified>2008-07-18T18:36:56Z</dcterms:modified></item><item><title>I'm Going to PDC</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!773.entry</link><description>&lt;p&gt;&lt;a href="http://www.microsoftpdc.com/"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px 10px 0px 0px;border-right-width:0px" border=0 alt=PDCBling1 align=left src="http://blufiles.storage.msn.com/y1pqKlZxAyiiaHRaEy_HEgXG3aX1vikXgTWwn5wiXNj9YCGk9Xhdauj9kFA0sqSYzIR?PARTNER=WRITER" width=134 height=184&gt;&lt;/a&gt;I'm all set. My hotel is booked, flight is selected, and registration is done. Now all I have to do is wait and speculate. This will be my first PDC, so I'm pretty excited about it. Although &lt;a href="http://www.microsoftpdc.com/Agenda/Sessions.aspx" target="_blank"&gt;Microsoft has revealed&lt;/a&gt; some of the topics to be discussed, the fun part is guessing what they aren't telling us yet: &lt;p&gt;With guaranteed coverage of &amp;quot;Rosario&amp;quot;, I'm pretty sure they'll be talking about .NET 4.0 (and hopefully Acropolis). The initial previews were very promising. To have it become a native part of the .NET framework is exciting. &lt;p&gt;I'm also hoping to get a sneak peek at Windows 7. Server 2008 and Vista are major advances in the Windows platform. I know there is a lot of groaning about the UAC, and drivers, and blah, blah, blah. Personally I like Vista a lot (and love Server 2008 even more). I can't wait to see what's in the pipe for the next revision. &lt;p&gt;I definitely want to see what's in store for Team Edition for Architects and the new TFS/Team Explorer functionality. Full UML support will be huge for me. Hierarchical work items is a plus as well. &lt;p&gt;&lt;a href="http://www.mesh.com" target="_blank"&gt;Live Mesh&lt;/a&gt; looks very captivating to me, and I can't wait to get my hands on some programmable bits. &lt;p&gt;I'm also looking forward to meeting some of the names that I know in the .NET community. And of course watching Charles Petzold's presentation at the pre-conference. What are you excited about?&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+I'm+Going+to+PDC&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!773.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!773.entry</guid><pubDate>Thu, 17 Jul 2008 13:01:37 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!773/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!773.entry#comment</wfw:comment><dcterms:modified>2008-07-17T13:01:37Z</dcterms:modified></item><item><title>Shadow Copies Saved My Life</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!761.entry</link><description>&lt;p&gt;I'm a control freak...when I delete something, I want it gone like now. I don't want it to go to a recycle bin so I can retrieve it later. Get off my computer...NOW. So when I delete a file, I always use Shift+Delete to bypass the &amp;quot;send to recycle bin&amp;quot; phase. That has bitten me in the butt a few times in the past. Thanks to Vista's shadow copy service, I have been able to recover from over zealous deletion twice now. Once with a source tree with changes I hadn't committed to source control yet. And just now with the entire contents of my downloads folder. &lt;p&gt;I may sound like one of those commercials that you see where people give &amp;quot;real&amp;quot; testimonials about how good a product is. But believe me, if you've ever wished you could undo a delete, shadow copies are the next best thing to having a rewind button for life.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+Shadow+Copies+Saved+My+Life&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!761.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!761.entry</guid><pubDate>Tue, 08 Jul 2008 16:13:09 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!761/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!761.entry#comment</wfw:comment><dcterms:modified>2008-07-17T13:02:14Z</dcterms:modified></item><item><title>Returning to the Motherland</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!748.entry</link><description>&lt;p&gt;As I mentioned before (I think), my focus on UI development has been a recent phenomenon in my career. Prior to that, the majority of my efforts has been in back-end frameworks and integration. Even looking at what I've done in the WPF arena, most of my attention has been on creating utilities that do a lot of behind the scenes work: MVPoo, Commands, Attached Properties, and all that fun stuff. I guess it's only natural that I land back in the arena of back-end and framework development. I've got a few interesting classes and utilities to share from my recent excursions in the area. Hopefully, someone will find these useful. &lt;p&gt;First up are a couple of extension methods for range validation. Right now, they only work on IComparable&amp;lt;T&amp;gt; (which all value types derive from). Being extension methods, they only work with .NET 3.5 but it is an easy exercise to change them to standard static utility methods. The interesting bit I discovered writing these is that extension methods can be Generic. The unfortunate part is the redundancy required here...something that Jeff Atwood would probably &lt;a href="http://www.codinghorror.com/blog/archives/001136.html" target="_blank"&gt;frown upon&lt;/a&gt;. Here is how the method would be used: &lt;div&gt;&lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none"&gt;&lt;span style="color:#0000ff"&gt;int&lt;/span&gt; tmpInt=45;
&lt;span style="color:#0000ff"&gt;bool&lt;/span&gt; isValid=tmpInt.ValidateRange&amp;lt;&lt;span style="color:#0000ff"&gt;int&lt;/span&gt;&amp;gt;(25,50);&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The ValidateRange methods (I overloaded the function so that a caller can specify whether the range should be inclusive) take the type of the object being validated as a type parameter so that it can pass it to IComparable&amp;lt;T&amp;gt; and strongly type the min and max parameters. I guess I could just use the non-generic IComparable interface instead of IComparable&amp;lt;T&amp;gt;, but then you'd lose the compile time verification.
&lt;p&gt;Anyway, the code is attached below. Let me know what you think.
&lt;p&gt;&lt;iframe style="border-right:#dde5e9 1px solid;padding-right:0px;border-top:#dde5e9 1px solid;padding-left:0px;padding-bottom:0px;margin:3px;border-left:#dde5e9 1px solid;width:240px;padding-top:0px;border-bottom:#dde5e9 1px solid;height:26px;background-color:#ffffff" marginwidth=0 marginheight=0 src="http://cid-2221dc39e0c749a4.skydrive.live.com/embedrow.aspx/Code Samples/Validation.cs" frameborder=0 scrolling=no&gt;&lt;/iframe&gt;
&lt;div style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Extension Methods" rel=tag&gt;Extension Methods&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Validation" rel=tag&gt;Validation&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Range Validation" rel=tag&gt;Range Validation&lt;/a&gt;,&lt;a href="http://technorati.com/tags/C#" rel=tag&gt;C#&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+Returning+to+the+Motherland&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!748.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!748.entry</guid><pubDate>Tue, 24 Jun 2008 16:44:23 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!748/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!748.entry#comment</wfw:comment><dcterms:modified>2008-06-24T16:44:23Z</dcterms:modified></item><item><title>Prism Becomes Composite Application Guidance for WPF</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!743.entry</link><description>&lt;p&gt;Or CAPPG for short. I had the pleasure of participating on the advisory board over the past few months. I think the biggest boost to my ego came when I saw the &lt;a href="http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!596.entry" target="_blank"&gt;Delegating Command&lt;/a&gt; captured as a &lt;a href="http://www.codeplex.com/CompositeWPF/SourceControl/FileView.aspx?itemId=235564&amp;amp;changeSetId=12511" target="_blank"&gt;best practice&lt;/a&gt; by the PnP team.  &lt;p&gt;Prism (there was an acronym there but I forgot what it is) is a new guidance framework, in the vein of the CAB, SCSF , and WCSF, that captures best practices from the pioneers in the wild west of WPF development. (Remember WPF is still considered to be in the early-adopter phase.)A lot of the writings of Josh Smith, Dr. WPF, Dan Crevier , and others has been captured in this framework (which is still, according to the team, a work in progress). I have my own work that is soon to be in progress and will use Prism to take it through its paces. &lt;p&gt;If you will be doing any significant WPF development in the near future, it couldn't hurt to evaluate Prism. &lt;a href="http://www.codeplex.com/CompositeWPF" target="_blank"&gt;Here's the link&lt;/a&gt;.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+Prism+Becomes+Composite+Application+Guidance+for+WPF&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!743.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!743.entry</guid><pubDate>Fri, 20 Jun 2008 05:50:39 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!743/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!743.entry#comment</wfw:comment><dcterms:modified>2008-06-20T05:50:39Z</dcterms:modified></item><item><title>The Best Part of Blogging</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!729.entry</link><description>&lt;p&gt;You get to look back at your old posts in astonishment at how far you've come from back then. Take Paul Stovell for example. &lt;p&gt;In March of 2006 he gave a presentation called &lt;a href="http://www.paulstovell.com/blog/why-i-hate-data-binding-slides-and-links" target="_blank"&gt;&amp;quot;Why I hate Data Binding&amp;quot;&lt;/a&gt; &lt;p&gt;In July of 2007 he gave a presentation called &lt;a href="http://www.paulstovell.net/blog/index.php/sdnug-binding-oriented-programming-notes-and-links/" target="_blank"&gt;&amp;quot;Binding Oriented Programming&amp;quot;&lt;/a&gt; &lt;p&gt;Talk about an about face! I don't have any drastic examples like that in my blog. But it's still fun to read through some of my old posts.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+The+Best+Part+of+Blogging&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!729.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!729.entry</guid><pubDate>Mon, 02 Jun 2008 17:16:39 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!729/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!729.entry#comment</wfw:comment><dcterms:modified>2008-06-02T17:16:39Z</dcterms:modified></item><item><title>You ARE in the Software Business</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!711.entry</link><description>&lt;p&gt;I've spoken a lot about the potential that Team Foundation Server provides as a framework for creating very powerful software development process tools. I've also spoken a lot about supporting your software development department with a dedicated development team. These two ideas go hand in hand. Let me expand on that here. &lt;p&gt;When a company wants to support their business processes with software, they have two choices: buy a product off the shelf; or build a custom software solution. Actually, there are three choices, but the third is a hybrid of the first two: customize an off the shelf product.  &lt;p&gt;The software your company creates for the sprocket order fulfillment system is an electronic manifestation of your company's business processes. You have significant amounts of money set aside every year to improve that software so that it better captures your business processes. You know that COTS software won't be an exact fit for what you are doing, your processes are what give you an edge over the sprocket factory down the road. &lt;p&gt;Why is it that companies are so quick to segregate software development from the rest of their business? &amp;quot;IT supports the business, it's not a core business process.&amp;quot; &amp;quot;We're not in the software business, we're in the sprocket business.&amp;quot; &lt;p&gt;Stop it! It's time to come to terms with reality that if you are spending money to develop your own software or to customize off the shelf software, YOU ARE IN THE SOFTWARE BUSINESS. Even if the only consumer of your software is you. Once you've accepted that fact, you'll realize that software development is a core business process. Do you see where I'm going here? We take it for granted that an off the shelf product is good enough for developers. You don't know how many times I've heard people complain &amp;quot;if only visual studio did this&amp;quot; or &amp;quot;I wish TFS was easier to work with.&amp;quot; Sound familiar to the same complaints you hear about the CRM tool your company just bought? The big difference is that code gets written to address the shortcomings of the CRM solution. Whereas Visual Studio and TFS get to stay as they are and development teams are trained to &amp;quot;work with the system.&amp;quot; When was the last time you've heard of a company (other than a software vendor) having a project dedicated to creating tools that improve the software development lifecycle? &lt;p&gt;Why spend so much money creating software that captures all of your business processes except the one that makes the rest possible? And if you don't think that improving your software development process isn't as important as your &amp;quot;core business&amp;quot;, you'll quickly be left behind when that sprocket factory down the road figures it out.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+You+ARE+in+the+Software+Business&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!711.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!711.entry</guid><pubDate>Thu, 08 May 2008 12:25:18 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!711/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!711.entry#comment</wfw:comment><dcterms:modified>2008-05-08T12:25:18Z</dcterms:modified></item><item><title>Attached Properties for Max Column Width</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!707.entry</link><description>&lt;p&gt;Laurent Bugnion (a fellow &lt;a href="http://wpfdisciples.wordpress.com/" target="_blank"&gt;WPF Disciple&lt;/a&gt;) just &lt;a href="http://blog.galasoft.ch/archive/2008/05/06/wpf-listviewgridview-minimum-and-maximum-width-for-a-column.aspx" target="_blank"&gt;wrote a post&lt;/a&gt; showing one way to add MaxWidth capabilities to the WPF GridView. &lt;a href="http://wekempf.spaces.live.com/" target="_blank"&gt;William Kempf&lt;/a&gt; (another disciple whom I had the pleasure of meeting when I gave my presentation at &lt;a href="http://www.indycodecamp.com/"&gt;Indy Code Camp&lt;/a&gt;), suggested that Laurent use an attached property to allow the feature to be XAMLized. 
&lt;p&gt;I thought it would be a good idea. So I fired up VS and wrote a little bit of code. If you've read my posts on using the remora pattern then you know the gist of the setup (if not go see them &lt;a href="http://mbrownchicago.spaces.live.com/?_c11_BlogPart_pagedir=Next&amp;amp;_c11_BlogPart_handle=cns!2221DC39E0C749A4!356&amp;amp;_c11_BlogPart_BlogPart=blogview&amp;amp;_c=BlogPart" target="_blank"&gt;here&lt;/a&gt;). Laurent jumped through a few hoops to hook into the drag event of the GridViewColumnHeader resize thumb control. I found out that GridViewColumn implements INotifyPropertyChanged so on a whim decided to check if I can catch a Property changed event when the Width is changed. Lo and behold I could. So I checked if I could do a poor man's CoerceValue and surely enough I was able to do that as well. I couldn't think of a better place to put it, so I checked the code into the WPF Toolbelt (along with a few other changes). This makes the first check-in since September of last year. I just reorganized some namespaces and stuff...it took me a while to get reacquainted with the code. But I will be performing more work on it in a while. Download the code from Skydrive (only have the MaxWidth attached property now...MinWidth isn't much harder though). 
&lt;p&gt;&lt;iframe style="border-right:#dde5e9 1px solid;padding-right:0px;border-top:#dde5e9 1px solid;padding-left:0px;padding-bottom:0px;margin:3px;border-left:#dde5e9 1px solid;width:240px;padding-top:0px;border-bottom:#dde5e9 1px solid;height:66px;background-color:#ffffff" marginwidth=0 marginheight=0 src="http://cid-2221dc39e0c749a4.skydrive.live.com/embedrowdetail.aspx/WPF Samples/GridViewHelper.cs" frameborder=0 scrolling=no&gt;&lt;/iframe&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+Attached+Properties+for+Max+Column+Width&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!707.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!707.entry</guid><pubDate>Tue, 06 May 2008 22:31:26 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!707/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!707.entry#comment</wfw:comment><dcterms:modified>2008-06-15T17:45:05Z</dcterms:modified></item><item><title>You'll Grow Out of It</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!697.entry</link><description>&lt;p&gt;&lt;a href="http://blufiles.storage.msn.com/y1p8EpAlDbvGPle65MTjfWl7xpRhkjiQl6OoGnvNDnP_8qH1R4Ox_DbvemlPp2WO0EMgjQDJRy1_hw?PARTNER=WRITER"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=albumcover src="http://blufiles.storage.msn.com/y1p8EpAlDbvGPnYlQSW9lj0RICo-nr6_kqRHsahMsRNrZtNG368GhkeqLSPDTdduxAedprfpMQFuis?PARTNER=WRITER" width=244 align=left border=0&gt;&lt;/a&gt; I followed the instructions for an &lt;a href="http://jrients.blogspot.com/2008/01/concept-album-meme.html" target="_blank"&gt;interesting meme&lt;/a&gt; that I found on &lt;a href="http://manicprogrammer.com/cs/blogs/willeke/archive/2008/01/28/my-new-band.aspx" target="_blank"&gt;Eric's blog&lt;/a&gt; and came up with the album cover you see to the left. Here are the original links if you're interested: 
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/358/2314662240/" target="_blank"&gt;The Picture&lt;/a&gt; 
&lt;p&gt;&lt;a href="http://www.quotationspage.com/quote/27617.html" target="_blank"&gt;The Quote&lt;/a&gt; 
&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Wyoming_County,_West_Virginia" target="_blank"&gt;The Article&lt;/a&gt; 
&lt;p&gt;I took artistic license and named my band just Wyoming County, but it the recipe works pretty well. The funny thing is...the title is somewhat appropriate. I think I have grown out of my current space and have already taken up residence in a &lt;a href="http://blog.planetwpf.com/" target="_blank"&gt;new environment&lt;/a&gt;. I will begin moving my old content over (someone remind me to keep local copies of my blog posts for the next time I want to do this), and adding new content to the main domain. In the interim, it will just host Brownie points. So what are you waiting for? My latest post is waiting for you &lt;a href="http://blog.planetwpf.com/post/2008/03/Hello-World.aspx" target="_blank"&gt;right here&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+You'll+Grow+Out+of+It&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!697.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!697.entry</guid><pubDate>Wed, 12 Mar 2008 05:55:19 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!697/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!697.entry#comment</wfw:comment><dcterms:modified>2008-03-12T06:00:39Z</dcterms:modified></item><item><title>The Problem as I See It</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!678.entry</link><description>&lt;p&gt;I remember helping a developer who was attempting to transition from C to C++. Because valid C is valid C++, it was difficult to get the point across to him that -- even though it worked -- it wasn't necessarily the best way to do things. It takes a concentrated effort for someone to unlearn bad habits. &lt;p&gt;For an example look at Winforms programming. It is dead simple to drag a few controls onto a form and wire it up to perform business logic on a button click. I must confess I've done this myself, even as recently as last year (oh wait it's 2008 now make that the year before last). It took me struggling with WPF to realize that even though it &amp;quot;worked&amp;quot; that was not the best way to wire up my UI (in all but the simplest of cases). I decided to explore the benefits of the Model-View-Controller Pattern (or MVC for short) for my application development. I knew of this design pattern's existence but had never bothered to implement it explicitly in my development. As I got my feet wet with using MVC for my WPF UIs, I started noticing a lot of benefits.  &lt;p&gt;Actually let me correct myself. I didn't consciously decide when I first started coding in this manner that I was going to use the MVC pattern. I just decided to remove the logic of deciding what controls were enabled, how to initialize the UI, and how to validate the data entered into the form (among other concerns) away from the Window/UserControl and into a helper class that worked with the UI while shielding it from the intricacies of how the system works. &lt;p&gt;Once I looked at what I had done, I finally realized that I had implemented a variation on the MVC pattern. I had read some of Dan Crevier's blog postings regarding what he called the Model - View - ViewModel, or MVVM, pattern (itself a refinement of the MVP pattern) prior to this so I guess it had laid dormant in my subconscious until I needed it. &lt;p&gt;I have come to realize that going from basic &amp;quot;Forms and Controls&amp;quot; (as Martin Fowler &lt;a href="http://martinfowler.com/eaaDev/uiArchs.html" target="_blank"&gt;calls it&lt;/a&gt;) UI development to MVC is a paradigm shift on the magnitude of going from procedural development to object-oriented development (e.g. C to C++). Although the same development techniques that make Winforms (and VB before it) development so approachable still &amp;quot;work&amp;quot; with WPF, the framework really shines when you move to an MVC architecture for your UI. Once you grok this concept, you'll find that you'll hesitate to write even simple applications without using it.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+The+Problem+as+I+See+It&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!678.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!678.entry</guid><pubDate>Wed, 23 Jan 2008 00:45:41 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!678/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!678.entry#comment</wfw:comment><dcterms:modified>2008-01-23T00:45:41Z</dcterms:modified></item><item><title>Dynamic Dependency Properties</title><link>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!668.entry</link><description>   &lt;p&gt;First things first. I'd like to wish everyone a Happy New Year. Here's hoping that 2008 brings with it happiness, excitement, joy, and wonder! &lt;p&gt;Recently I came across a &lt;a href="http://www.madprops.org/cs/blogs/mabster/archive/2007/09/14/customtypedescriptors-and-wpf.aspx" target="_blank"&gt;blog post&lt;/a&gt; that discussed the use of Custom Type Descriptors to dynamically add properties to an object. We currently use this technique in our application, however there is a lot of hocus pocus going on behind the scenes that makes working with that particular piece of code precarious. &lt;p&gt;I was curious if it would be possible to dynamically declare dependency properties and bind to them using the WPF Binding system. The short answer is yes. The long answer is HELL YES! Believe me using dependency properties to dynamically add properties to your objects is orders of magnitude easier than using custom type descriptors. Something tells me that DPs are just an abstraction of custom type descriptors. Does that make me lazy? Probably. Then again, the less code I have to write to accomplish a task, the less likely I am to introduce bugs, and the quicker I can get to the next task. And as we all know, &amp;quot;programming  is fun, but shipping is our job.&amp;quot; Besides, you want to trust me on this one...programming Custom Type Descriptors is not fun. &lt;p&gt;Of course you, my dear readers, are probably wondering, &amp;quot;Why would I want to dynamically register dependency properties?&amp;quot; Isn't the whole point of a dependency property to allow you to bind to it at design time? Well not only does Mabsterama give a great scenario with the role provider, but there is a well known data modeling pattern known as &lt;a href="http://en.wikipedia.org/wiki/Entity-Attribute-Value_model" target="_blank"&gt;Entity Attribute Value&lt;/a&gt;. I just ran into a &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2622970&amp;amp;SiteID=1" target="_blank"&gt;post in the forums&lt;/a&gt; (which are finally working properly again) where the poster appears to be in need of a similar solution. This encouraged me to finish this post. &lt;p&gt;My solution relies on a simple class that I call the DependencyPropertyRegistry. The DependencyPropertyRegistry is responsible for dynamically registering dependency properties against a DependencyObject descendant and keeping track of the properties so they can be manipulated. The second part of the solution is a class that wants to dynamically expose properties for binding. The final piece of the puzzle is a control that knows how to properly configure the bindings and display them. &lt;p&gt;This is easiest explained through code, but I have to do some scrubbing before I can share it with you guys. I promise it will be worth the wait.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+Dynamic+Dependency+Properties&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><comments>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!668.entry#comment</comments><guid isPermaLink="true">http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!668.entry</guid><pubDate>Thu, 03 Jan 2008 01:36:01 GMT</pubDate><slash:comments>5</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://mbrownchicago.spaces.live.com/blog/cns!2221DC39E0C749A4!668/comments/feed.rss</wfw:commentRss><wfw:comment>http://mbrownchicago.spaces.live.com/Blog/cns!2221DC39E0C749A4!668.entry#comment</wfw:comment><dcterms:modified>2008-01-03T01:36:01Z</dcterms:modified></item><item><title>Blog list: WPF Blogs</title><link>http://mbrownchicago.spaces.live.com/Lists/cns!2221DC39E0C749A4!124</link><description>&lt;div&gt;&lt;p&gt;WPF Blogs&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a href="http://www.thewpfblog.com"&gt;The WPF Blog&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Learning about programming wpf from a flash designer&amp;#39;s perspective.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=2459489012663404964&amp;page=RSS%3a+Blog+list%3a+WPF+Blogs&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=mbrownchicago.spaces.live.com&amp;amp;GT1=mbrownchicago"&gt;</description><guid isPermaLink="false">cns!2221DC39E0C749A4!124</guid><pubDate>Tue, 23 May 2006 21:47:37 GMT</pubDate><msn:type>bloglist</msn:type><live:type>bloglist</live:type><live:typelabel>Blog list</live:typelabel><cf:itemRSS>http://mbrownchicago.spaces.live.com/Lists/cns!2221DC39E0C749A4!124/feed.rss</cf:itemRSS><dcterms:modified>2006-05-23T21:47:37Z</dcterms:modified></item></channel></rss>