<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://codebetter.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Glenn Block</title><subtitle type="html" /><id>http://codebetter.com/blogs/glenn.block/atom.aspx</id><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/default.aspx" /><link rel="self" type="application/atom+xml" href="http://codebetter.com/blogs/glenn.block/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20416.853">Community Server</generator><updated>2008-04-01T00:20:00Z</updated><entry><title>Prism, CAB, and WinForms futures</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/05/10/prism-cab-and-winforms-futures.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/05/10/prism-cab-and-winforms-futures.aspx</id><published>2008-05-11T04:32:00Z</published><updated>2008-05-11T04:32:00Z</updated><content type="html">&lt;p&gt;On the &lt;a href="https://www.codeplex.com/Thread/View.aspx?ProjectName=prism&amp;amp;ThreadId=27418"&gt;forums&lt;/a&gt;, Bil asked the questions below. &lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;Just wondering about guidance here. I have clients who are not ready or able to move to 3.5/VS2008 yet but need to start developing new Smart Client applications. They&amp;#39;re also not ready to move to WPF as they don&amp;#39;t see a lot of value in it for the type of apps they need. &lt;br /&gt;That sort of leaves me between a rock and hard place IMHO. Prism is good, but only if you&amp;#39;re on the 3.5 platform and want to build WPF apps (right?).&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;Smart Client Software Factory is good if you&amp;#39;re on the 3.5 platform and want to build WinForms apps but you&amp;#39;re tied to ObjectBuilder and CAB (and we won&amp;#39;t open that can of worms). &lt;br /&gt;So what does one do when you&amp;#39;re living in reality (2.0 platform, WinForms) and need to build new Smart Clients. Are you stuck using either the old SCSF/CAB setup or RYO. &lt;br /&gt;Wondering if there&amp;#39;s any plans for Prism to be a little more broader than WPF or what the alternaties are?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;Thanks.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Below is my answer. I hope this clarifies these questions which are on many customers&amp;#39; minds.&lt;/p&gt;
&lt;p&gt;&lt;font color="#800000"&gt;Great question Bil&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#800000"&gt;1. We have an FAQ we will be including in our Docs that clarifies how Prism is postioned against our other offerings. I&amp;#39;ve posted the content of that below. Let me know if it makes sense. &lt;br /&gt;How does Prism compare to patterns &amp;amp; practices’ other Composite UI offerings?&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#800000"&gt;Within patterns &amp;amp; practices, we have several offerings for building composite applications.&amp;nbsp; The following list highlights the scenarios where you should consider using each:&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;font color="#800000"&gt;&lt;b&gt;Smart Client Software Factory&lt;/b&gt;: Recommended for WinForm composite application development.&lt;/font&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Mainstream recommendation for LOB applications.&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Leverages the most mature platform.&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Offers the best development and debugging experience (tooling, control support, drag &amp;amp; drop, RAD experience).&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Best for forms over data-type applications (order entry, etc).&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Includes guidance automation (guidance package support and recipes).&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;&lt;font color="#800000"&gt;&lt;b&gt;Smart Client Software Factory and WPF interop&lt;/b&gt;: Recommended for islands of WPF in an existing SCSF application.&lt;/font&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Allows leveraging existing SCSF infrastructure.&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Includes guidance automation (guidance package support and recipes).&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;&lt;font color="#800000"&gt;&lt;b&gt;WPFCAB&lt;/b&gt;: Recommended for migrating existing CAB applications to WPF.&lt;/font&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Pure WPF.&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Allows leveraging existing SCSF infrastructure, except for views.&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Not maintained or owned by p&amp;amp;p, supported by community.&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Literal port of CAB to WPF (not optimized for WPF paradigm).&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Does not include guidance automation.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;&lt;font color="#800000"&gt;&lt;b&gt;Prism&lt;/b&gt;: Recommended for building new composite WPF applications that are optimized for WPF.&lt;/font&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Targets WPF composite application development.&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Lighter-weight, ability to pick and choose.&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Better integration with existing applications and libraries.&lt;/font&gt;&lt;/li&gt;
&lt;li&gt;&lt;font color="#800000"&gt;Does not include guidance automation.&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;p&gt;&lt;font color="#800000"&gt;2. As to what to do if your clients need to build composite UI apps, but they are not ready to move to 3.5? In terms of p&amp;amp;p current offerings, SCSF is the only option. Notice I said building composite UI, not smart client as SCSF on the whole is not necessarily appropriate for all smart clients. Once option is to explore using many of the Prism services in Winforms as they are NOT UI dependent (more about this in the next points).&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#800000"&gt;3. On the 2.0 / Winform question, Prism libraries take hard dependencies on 3.5, not only on WPF, but also in LINQ and Lambda usage. Now most of the services do not actually depend on WPF, including Module loading, EventAggregator (currently depends on Dispatcher, but we are moving to use synchronization context). The LINQ/Lambdas could be removed. The RegionManager depends on WPF in it&amp;#39;s use of attached properties for registering. But you can also register regions imperatively, thus allowing you to have a WinForm RegionManger that does not use attached properties. Now whether or not the guidance / libraries would be appropriate for Winforms, is a different story and one that you would have to answer.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#800000"&gt;4. Will Prism be more broader than WPF? Silverlight is definitely something we are looking at. There is already a version for Silverlight on our contrib site. Would do Winforms / Web guidance on Prism? It&amp;#39;s possible, though not something we have thought a lot about to date. We&amp;#39;ve worked really hard to be focused, and not look outside of our main focus area that is WPF. At the same time we the design is very malleable, and loosely coupled, making it potentially usable on other platforms. Mono version of Prism anyone?&lt;/font&gt;&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178020" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="prism" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/prism/default.aspx" /></entry><entry><title>WPF, from this to that..Wow!</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/05/08/wpf-from-this-to-that-wow.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/05/08/wpf-from-this-to-that-wow.aspx</id><published>2008-05-08T17:44:00Z</published><updated>2008-05-08T17:44:00Z</updated><content type="html">&lt;p&gt;A few weeks ago, our reference implementation for Prism looked like this.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/gblock/WindowsLiveWriter/PrismRIfirstdrop_8804/image_2.png"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/gblock/WindowsLiveWriter/PrismRIfirstdrop_8804/image_thumb.png" title="image" alt="image" width="600" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Early on we decided that we needed the RI to have a better look in feel so that it delivered a more real world WPF experience. We hired a design firm to create XAML proofs based on our implementation. The process on their end was two fold. First there we a graphic designer who created non XAML proofs. Then a XAML developer converted those proofs to XAML. &lt;/p&gt;  &lt;p&gt;Once we got the proofs, Adam Calderon from Interknowlogy (on our team) team took two weeks, and merged the new XAML into our existing codebase. In the migration, there were a few aspects of the proofs that we decided not to apply because we wouldn&amp;#39;t push on the scenarios we need to. However, the changes we did apply, did not require much code rework to the application itself.&lt;/p&gt;  &lt;p&gt;This is what came out of that effort, and what was in our last drop.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/WPFfromthistothat.Wow_9546/image_8.png"&gt;&lt;img src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/WPFfromthistothat.Wow_9546/image_thumb_3.png" title="image" style="border-width:0px;" alt="image" width="600" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I must admit, I was previously skeptical of the whole designer-developer interaction and what was really possible. I am definitely now a true believer! Great job WPF team!&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177902" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="Composite WPF" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/Composite+WPF/default.aspx" /><category term="Featured" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/Featured/default.aspx" /><category term="prism" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/prism/default.aspx" /><category term="WPF" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/WPF/default.aspx" /></entry><entry><title>Prism vs Framework XXX</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/05/08/prism-vs-framework-xxx.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/05/08/prism-vs-framework-xxx.aspx</id><published>2008-05-08T08:33:00Z</published><updated>2008-05-08T08:33:00Z</updated><content type="html">&lt;p&gt;&lt;img height="500" alt="" src="http://farm1.static.flickr.com/110/288925731_b025652e66.jpg?v=0" width="375" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.flickr.com/photos/mukluk/288925731/" href="http://www.flickr.com/photos/mukluk/288925731/"&gt;http://www.flickr.com/photos/mukluk/288925731/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;There&amp;#39;s been a bunch of talk on the net comparing Prism to other frameworks that exist. In many cases comparisons are being made based on feature parity and such. I think it&amp;#39;s important to make the distinction of why Prism is different.&lt;/p&gt;  &lt;p&gt;Prism is a set of guidance for building Composite UI applications with WPF. It is not a framework, though it includes a light framework that was refactored out of building the guidance. This is actually a very small part of it. Here are some of the things that are different about Prism.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Built with some of the leading WPF experts in the industry. &lt;/li&gt;    &lt;li&gt;Includes a reference implementation that was developed under the review of more than 25 industry experts, including several fortune 500 companies, the WPF team and the .NET product teams. &lt;/li&gt;    &lt;li&gt;Includes comprehensive documentation on building Composite UI applications, what kinds of challenges they solve, when they are appropriate, which design patterns and principles they incorporate. &lt;/li&gt;    &lt;li&gt;Includes How-Tos walking through how to implement the various composite functionality within your apps. &lt;/li&gt;    &lt;li&gt;Includes several Quickstarts designed to ease adoption, and to illustrate specific aspects of building Composite UIs. &lt;/li&gt;    &lt;li&gt;Allows customers to incrementally adopt it in their existing WPF applications rather than starting from scratch. &lt;/li&gt;    &lt;li&gt;Incorporates a Composition model that is non-invasive. &lt;/li&gt;    &lt;li&gt;Fully black-box and white-box tested. &lt;/li&gt;    &lt;li&gt;Built entirely with Test Driven Development. Full code coverage and unit test suites. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This does not mean that Prism is the end-all solution, as I have said many times that is not. It does mean however that is much more than a framework with a bucket of features. We&amp;#39;re not building it to be feature-laden, we&amp;#39;re building it to best address a specific set of scenarios. &lt;/p&gt;  &lt;p&gt;As a &lt;a href="http://www.ayende.com/"&gt;friend&lt;/a&gt; of mine told me, &amp;quot;less features is a feature&amp;quot;.&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177859" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="Composite WPF" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/Composite+WPF/default.aspx" /><category term="Featured" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/Featured/default.aspx" /><category term="prism" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/prism/default.aspx" /><category term="WPF" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/WPF/default.aspx" /></entry><entry><title>Unity and Silverlight</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/05/05/unity-and-silverlight.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/05/05/unity-and-silverlight.aspx</id><published>2008-05-06T00:08:35Z</published><updated>2008-05-06T00:08:35Z</updated><content type="html">&lt;p&gt;It can be done! Go read Chris&amp;#39;s &lt;a href="http://www.tavaresstudios.com/Blog/post/Unity-and-Silverlight-It-can-be-done!.aspx"&gt;post&lt;/a&gt; for more. Jared if you are listening, we need this for &lt;a href="http://www.codeplex.com/prsimcontrib"&gt;PrismContrib&lt;/a&gt;. (which I still need to post about)&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177709" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="prism" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/prism/default.aspx" /><category term="silverlight" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/silverlight/default.aspx" /><category term="unity" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/unity/default.aspx" /></entry><entry><title>Reflections on ALT.NET Seattle, breakfast</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/05/05/reflections-on-alt-net-seattle-breakfast.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/05/05/reflections-on-alt-net-seattle-breakfast.aspx</id><published>2008-05-05T07:12:00Z</published><updated>2008-05-05T07:12:00Z</updated><content type="html">&lt;p&gt;What do you do before you head over to a day of grueling open-space sessions? Why head to &lt;a href="http://www.rubys.com/"&gt;Ruby&amp;#39;s&lt;/a&gt; diner for breakfast of course. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/ReflectionsonALT.NETSeattlebreakfast_1D5/ALTDOTNET%20Seattle%20004.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="457" alt="ALTDOTNET Seattle 004" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/ReflectionsonALT.NETSeattlebreakfast_1D5/ALTDOTNET%20Seattle%20004_thumb.jpg" width="588" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s my table with &lt;a href="http://codebetter.com/blogs/jeremy.miller"&gt;Jeremy Miller&lt;/a&gt;, &lt;a href="http://elegantcode.com/about/jason-grundy/"&gt;Jason Grundy&lt;/a&gt; and &lt;a href="http://elegantcode.com/about/jarod-ferguson/"&gt;Jarod Ferguson&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/ReflectionsonALT.NETSeattlebreakfast_1D5/ALTDOTNET%20Seattle%20001.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="475" alt="ALTDOTNET Seattle 001" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/ReflectionsonALT.NETSeattlebreakfast_1D5/ALTDOTNET%20Seattle%20001_thumb.jpg" width="582" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;We weren&amp;#39;t the only ones who showed up. That&amp;#39;s &lt;a href="http://weblogs.asp.net/rosherove/"&gt;Roy Osherove&lt;/a&gt; in the corner (without a guitar), and &lt;a href="http://www.scottcreynolds.com/"&gt;Scott Reynolds&lt;/a&gt; doing what looks like tweeting. The side profile is&lt;strike&gt; &lt;/strike&gt;&lt;a href="http://geekswithblogs.net/dsellers/Default.aspx"&gt;&lt;strike&gt;Dru Sellers&lt;/strike&gt;&lt;/a&gt;&lt;strike&gt;.&lt;/strike&gt;Dustin Campbell&lt;/p&gt;
&lt;p&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/ReflectionsonALT.NETSeattlebreakfast_1D5/ALTDOTNET%20Seattle%20006.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="457" alt="ALTDOTNET Seattle 006" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/ReflectionsonALT.NETSeattlebreakfast_1D5/ALTDOTNET%20Seattle%20006_thumb.jpg" width="576" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Others showed up as well like &lt;a href="http://udidahan.weblogs.us/"&gt;Udi Dahan&lt;/a&gt; and &lt;a href="http://donxml.com/"&gt;Don Demsak&lt;/a&gt; though they escaped my cameras wrath :-)&amp;nbsp;Anyway, after eating our &amp;quot;Wheaties&amp;quot;, we headed over to &lt;a href="http://www.digipen.edu/main/Campus_Life"&gt;Digipen&lt;/a&gt; for the opening session. with full bellies and eager minds.&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177652" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="ALT.NET" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/ALT.NET/default.aspx" /></entry><entry><title>PrismShouldNotReferenceUnity</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/05/04/prismshouldnotreferenceunity.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/05/04/prismshouldnotreferenceunity.aspx</id><published>2008-05-05T04:40:00Z</published><updated>2008-05-05T04:40:00Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;Clarification: We are not against using Unity,&amp;nbsp;the Prism&amp;nbsp;RI uses Unity, and we&amp;#39;ve been very happy with it&amp;#39;s implementation.&lt;/strong&gt;&amp;nbsp;&lt;strong&gt;We are after all one of Unity&amp;#39;s first internal customers. On the other hand, we want to make it easier for customers to use their IOC container of preference, which is what this post illustrates.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Friday night Oren (Ayende) and I headed downtown to Seattle at the Tap House grill, where we paired and hacked there and at my apartment into the early hours of the morning. You can see me tweeting about it below.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/PrismShouldNotReferenceUnity_12F67/image_6.png"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="300" alt="image" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/PrismShouldNotReferenceUnity_12F67/image_thumb_2.png" width="293" border="0" /&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/PrismShouldNotReferenceUnity_12F67/image_4.png"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="298" alt="image" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/PrismShouldNotReferenceUnity_12F67/image_thumb_1.png" width="331" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One of the best parts of the evening is the part I have highlighted in red, which happened after a discussion we had on how Prism does not depend on Unity. I told Oren that we had thought of automating as part of our tests to check whether or not any reference was included but that we found it unnecessary as the team was very clear on this requirement. He however disagreed and said &amp;quot;You should, you should&amp;quot; in order that we emphasize it. He then pulled open VS and wrote this test.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/PrismShouldNotReferenceUnity_12F67/image_8.png"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="183" alt="image" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/PrismShouldNotReferenceUnity_12F67/image_thumb_3.png" width="591" border="0" /&gt;&lt;/a&gt; &lt;/pre&gt;
&lt;p&gt;My heart skipped a beat before he ran it...&lt;/p&gt;
&lt;p&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/PrismShouldNotReferenceUnity_12F67/image_10.png"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="160" alt="image" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/PrismShouldNotReferenceUnity_12F67/image_thumb_4.png" width="639" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Any questions?&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177649" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="Featured" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/Featured/default.aspx" /><category term="misc" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/misc/default.aspx" /><category term="prism" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/prism/default.aspx" /></entry><entry><title>Brian Noyes thoughts on Prism</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/04/29/brian-noyes-thoughts-on-prism.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/04/29/brian-noyes-thoughts-on-prism.aspx</id><published>2008-04-29T18:24:22Z</published><updated>2008-04-29T18:24:22Z</updated><content type="html">&lt;p&gt;&lt;a href="http://briannoyes.net/"&gt;Brian Noyes&lt;/a&gt; from &lt;a href="http://www.IDesign.net"&gt;IDesign&lt;/a&gt; is one of the great folks helping us in the design and development of Prism. Brian brings a breadth of experience with WPF, and has worked significantly with CAB. He also was the author of the click-once integration pieces in SCSF. Recently he put together a great &lt;a href="http://www.softinsight.com/bnoyes/2008/04/29/PrismCompositeWPFGuidance.aspx"&gt;post&lt;/a&gt; speaking on the work we are doing. He talks about composite applications, what Prism is, and also the state of the project. &lt;/p&gt;  &lt;p&gt;I&amp;#39;ve been meaning to do a similar post, but thanks to Brian I am off the hook. :-)&lt;/p&gt;  &lt;p&gt;Check it out &lt;a href="http://www.softinsight.com/bnoyes/2008/04/29/PrismCompositeWPFGuidance.aspx"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177391" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="Composite WPF" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/Composite+WPF/default.aspx" /><category term="patterns and practices" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/patterns+and+practices/default.aspx" /><category term="prism" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/prism/default.aspx" /></entry><entry><title>Extreme Patterns with Oren</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/04/28/extreme-patterns-with-oren.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/04/28/extreme-patterns-with-oren.aspx</id><published>2008-04-28T08:53:31Z</published><updated>2008-04-28T08:53:31Z</updated><content type="html">&lt;p&gt;On my way to Tech-Ed Israel, I stopped over in Tel Aviv for a few nights. While there, I had the pleasure of having a small chat with &lt;a href="http://www.ayende.com/blog"&gt;Oren Eini&lt;/a&gt; around patterns. The chat was insightful as Oren let his passion for applying patterns shine through. The best part of the video is when he&amp;#160; discussed various techniques he uses to aid development teams in their adoption. Just see for yourself, it&amp;#39;s a real treat. &lt;/p&gt;  &lt;p&gt;Disclaimer: &lt;strong&gt;I do not support any of the techniques mentioned in this video. This is a professionally trained actor. Please kids, don&amp;#39;t try this at home.&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;object id="viddler_gblock_2" height="408" width="545" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"&gt;&lt;param name="_cx" value="14420"&gt;&lt;param name="_cy" value="10795"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://www.viddler.com/player/8c9cac8e/"&gt;&lt;param name="Src" value="http://www.viddler.com/player/8c9cac8e/"&gt;&lt;param name="WMode" value="Window"&gt;&lt;param name="Play" value="0"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value="LT"&gt;&lt;param name="Menu" value="0"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value="always"&gt;&lt;param name="Scale" value="NoScale"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value=""&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;param name="AllowNetworking" value="all"&gt;&lt;param name="AllowFullScreen" value="true"&gt; &lt;embed src="http://www.viddler.com/player/8c9cac8e/" width="545" height="408" type="application/x-shockwave-flash" allowscriptaccess="always" name="viddler_gblock_2" /&gt;&lt;/embed&gt;&lt;/object&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177217" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="patterns" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/patterns/default.aspx" /><category term="techedisrael2008" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/techedisrael2008/default.aspx" /></entry><entry><title>The Prism team and how we develop</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/04/27/the-prism-team-and-how-we-develop.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/04/27/the-prism-team-and-how-we-develop.aspx</id><published>2008-04-27T22:29:00Z</published><updated>2008-04-27T22:29:00Z</updated><content type="html">&lt;p&gt;We&amp;#39;ve got quite a diverse team for Prism that spans 3 continents. &lt;/p&gt;
&lt;h1&gt;In Redmond&lt;/h1&gt;
&lt;p&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/MeetthePrismteam_CB49/Prism%20Team%201_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="448" alt="Prism Team 1" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/MeetthePrismteam_CB49/Prism%20Team%201_thumb.jpg" width="581" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" size="1"&gt;Adam Calderon (Interknowlodgy), Arun Subramonian Namboothiri (Infosys), Prasad Paluri (Infosys), Francis Cheung, Julian Dominguez (Southworks), Bob Brumfield, Glenn Block, Blaine Wastell, Nelly Delgado, Brian Noyes (iDesign), and Larry Brader&lt;/font&gt;&lt;/p&gt;
&lt;h1&gt;In Buenos Aires&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; And India&lt;/h1&gt;
&lt;p&gt;&amp;nbsp; &lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/MeetthePrismteam_CB49/Prism%20Team%203_2.jpg"&gt;&lt;/a&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/MeetthePrismteam_CB49/Prism%20Team%202_4.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="230" alt="Prism Team 2" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/MeetthePrismteam_CB49/Prism%20Team%202_thumb_1.jpg" width="280" border="0" /&gt;&lt;/a&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/MeetthePrismteam_CB49/Prism%20Team%203_4.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="235" alt="Prism Team 3" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/MeetthePrismteam_CB49/Prism%20Team%203_thumb_1.jpg" width="279" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" size="1"&gt;Ezequiel Jadib, Mariano Szklanny&amp;nbsp; (Southworks)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Gokul Janardhanan (Infosys), Prashant Javiya (Infosys)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Although there&amp;#39;s thousands of miles between us, we work as one team &lt;strong&gt;not&lt;/strong&gt; 3, that&amp;#39;s how we make it work!&lt;/p&gt;
&lt;h1&gt;So who does what?&lt;/h1&gt;
&lt;table class="" cellspacing="0" cellpadding="2"&gt;

&lt;tr&gt;
&lt;td class=""&gt;&lt;strong&gt;Area / Role&lt;/strong&gt;&lt;/td&gt;
&lt;td class=""&gt;&lt;strong&gt;Team members&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;Dev&lt;/td&gt;
&lt;td class=""&gt;Francis, Bob, Julian, Adam, Brian&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;Test&lt;/td&gt;
&lt;td class=""&gt;Larry, Prasad, Gokul, Prashant,Arun&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;Docs&lt;/td&gt;
&lt;td class=""&gt;Nelly, Mariano&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=""&gt;Program / Product Planning / Product Mgmt&lt;/td&gt;
&lt;td class=""&gt;Blaine Wastell, Glenn Block&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;How do we work?&lt;/h2&gt;
&lt;p&gt;Within the client team (and throughout p&amp;amp;p) we adopt a hybrid of &lt;a href="http://en.wikipedia.org/wiki/Extreme_Programming"&gt;XP&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Scrum_%28development%29"&gt;Scrum&lt;/a&gt;. We are a &lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;TDD&lt;/a&gt; shop all the way. We do &lt;a href="http://en.wikipedia.org/wiki/Continuous_integration"&gt;continuous integration&lt;/a&gt;, and practice &lt;a href="http://en.wikipedia.org/wiki/Pair_programming"&gt;pair programming&lt;/a&gt; (as well as pair planning, pair powerpointing and a few other variations :) ) . We have bi-weekly &lt;a href="http://en.wikipedia.org/wiki/Iteration"&gt;iterations&lt;/a&gt;, do daily &lt;a href="http://en.wikipedia.org/wiki/Stand-up_meeting"&gt;stand-ups&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Extreme_Programming_Practices#Planning_game"&gt;ip meetings&lt;/a&gt; (and pre-ip), and we have a &lt;a href="http://en.wikipedia.org/wiki/Scrum_%28development%29#Product_backlog"&gt;product backlog&lt;/a&gt;. We don&amp;#39;t have a &amp;quot;&lt;a href="http://en.wikipedia.org/wiki/Scrum_%28development%29#Sprint_backlog"&gt;Sprint Backlog&lt;/a&gt;&amp;quot;, but we do stack-rank our priorities for each iteration during pre-ip, and create TFS WorkItems. We also keep &lt;a href="http://en.wikipedia.org/wiki/Burn_down_chart"&gt;burn down charts&lt;/a&gt; and the like to continually measure the team velocity.&lt;/p&gt;
&lt;h2&gt;What&amp;#39;s it like being in the team room?&lt;/h2&gt;
&lt;p&gt;People often ask what it&amp;#39;s like working in the team room. If you haven&amp;#39;t work in a collaborative environment before, it might sound scary to all be in the same room. After all, everyone likes having their own space right? One of the core tenets of the &lt;a href="http://agilemanifesto.org/"&gt;agile manifesto&lt;/a&gt; is &amp;quot;Individuals and interactions over process and tools&amp;quot;. In an agile team, breaking down the walls literally, brings real cohesion amongst the team. When you are in the room, it&amp;#39;s as if you can hear the teams heartbeat. &lt;/p&gt;
&lt;p&gt;Recently thanks to the &lt;a href="http://www.codebetter.com/"&gt;CodeBetter&lt;/a&gt; guys who lent me their &lt;a href="http://www.qik.com/"&gt;Qik&lt;/a&gt; phone, I got a chance to stream some live video of one of our iteration planning meetings (much to the dismay of my team that I caught completely off guard). In the video aside from seeing the shocked faces of the team :(, you&amp;#39;ll hopefully get a preview of how we work. (click the play buttons if you see them or use the links)&lt;/p&gt;
&lt;p&gt;Here I am on the way to &amp;quot;surprise&amp;quot; the team......&lt;a title="http://qik.com/video/46805" href="http://qik.com/video/46805"&gt;http://qik.com/video/46805&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;embed src="http://qik.com/player.swf?streamname=0750eb269da14c5787cd9a24d87a3e66&amp;amp;vid=46805&amp;amp;playback=false&amp;amp;polling=false&amp;amp;user=codebetter&amp;amp;userlock=true&amp;amp;islive=&amp;amp;username=anonymous" width="320" height="280" type="application/x-shockwave-flash" wmode="transparent" allowscriptaccess="always"&gt;&lt;/embed&gt; &lt;/p&gt;
&lt;p&gt;And then.....&lt;a title="http://qik.com/video/46813" href="http://qik.com/video/46813"&gt;http://qik.com/video/46813&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;embed src="http://qik.com/player.swf?streamname=c03bb18842bc4462b8c9dc0c2af8ad30&amp;amp;vid=46813&amp;amp;playback=false&amp;amp;polling=false&amp;amp;user=codebetter&amp;amp;userlock=true&amp;amp;islive=&amp;amp;username=anonymous" width="320" height="280" type="application/x-shockwave-flash" wmode="transparent" allowscriptaccess="always"&gt;&lt;/embed&gt; &lt;/p&gt;
&lt;p&gt;I feel fortunate to work in such a great environment with such a terrific team!!! I keep waiting for the day when my manager tells me they discovered the computer glitch and it was all a big mistake....&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177200" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="patterns and practices" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/patterns+and+practices/default.aspx" /><category term="prism" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/prism/default.aspx" /></entry><entry><title>PageFlow reborn</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/04/22/pageflow-reborn.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/04/22/pageflow-reborn.aspx</id><published>2008-04-22T07:39:37Z</published><updated>2008-04-22T07:39:37Z</updated><content type="html">&lt;p&gt;Many of you noticed that WCSF 2.0 did not ship with PageFlow. Early during the development of WCSF 2.0, we decided to break out the PageFlow application block and recipes into a separately downloadable package. There were several reasons foremost of which was that we wanted to make it easier to use Pageflow on it&amp;#39;s own without having to install WCSF. A secondary reason was that we had requests from the community around extending their wanting to extend PageFlow. &lt;/p&gt;  &lt;p&gt;Unfortunately, due to resource constraints, we were not able to complete the breakout of PageFlow before we shipped. However, as I &lt;a href="https://www.codeplex.com/Thread/View.aspx?ProjectName=websf&amp;amp;ThreadId=23172"&gt;mentioned&lt;/a&gt;, we have been completing this work out-of-band.&amp;#160; We&amp;#39;re now nearing completion of the source and will be uploading it shortly. The docs will still need more work and we&amp;#39;ll be shipping them some time after the source ships.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What&amp;#39;s in the new PageFlow?&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;New stand alone PageFlow guidance package that works on Visual Studio 2008! Does not require WCSF. &lt;/li&gt;    &lt;li&gt;New XmlPageFlowProvider that does not depend on Windows Workflow Foundation &lt;/li&gt;    &lt;li&gt;Migrated PageFlowWithShoppingCart Quickstarts to Visual Studio 2008 &lt;/li&gt;    &lt;li&gt;Updated Dependencies to GAT/GAX 1.4 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Coming soon to &lt;a&gt;WCSF Contrib&lt;/a&gt;!&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176874" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="PageFlow" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/PageFlow/default.aspx" /><category term="patterns and practices" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/patterns+and+practices/default.aspx" /><category term="wcsf" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/wcsf/default.aspx" /><category term="WCSFContrib" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/WCSFContrib/default.aspx" /></entry><entry><title>Reflections on ALT.NET Seattle, the evening before</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/04/21/reflections-on-alt-net-seattle-the-evening-before.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/04/21/reflections-on-alt-net-seattle-the-evening-before.aspx</id><published>2008-04-22T06:51:50Z</published><updated>2008-04-22T06:51:50Z</updated><content type="html">&lt;p&gt;This weekend I attended the long awaited ALT.NET Seattle, in this post I&amp;#39;ll share some of my thoughts from the event. ALT.NET kicked off with an opening session with all the attendees. &lt;/p&gt;  &lt;p&gt;After a Costco run to stock up on food along with several others including &lt;a href="http://codebetter.com/blogs/david_laribee/"&gt;David Laribee&lt;/a&gt;, &lt;a href="http://twitter.com/sbellware"&gt;Scott Bellware&lt;/a&gt; and &lt;a href="http://bradwilson.typepad.com/"&gt;Brad Wilson&lt;/a&gt; (thanks for driving), I arrived at Digipen. I remember not really knowing what to expect as ALT.NET has gone through a lot of transition over the past year. I was never the less excited and optimistic.&lt;/p&gt;  &lt;p&gt;Upon arrival, the first person I bumped into was &lt;a href="http://www.lostechies.com/blogs/chad_myers/"&gt;Chad Myers&lt;/a&gt;. Chad and I had been collaborating over various mediums for the past 6 months, however we never met in person. Meeting Chad in person was a reminder for me about the significance of this event that had drawn in people from across the globe.&amp;#160; As I entered into the main room where the event was going to start, I could feel the excitement. There was something different about &amp;quot;this&amp;quot; event than other events I had attended. I had just returned from &amp;quot;Tech Ed Israel&amp;quot; followed by the MVP summit, but this was something different. Here you could tell that all the attendees felt like they were really part of something, rather than simply being spectators.&lt;/p&gt;  &lt;p&gt;To kick off the event, &lt;a href="http://www.stevenlist.com/"&gt;Doc&lt;/a&gt;, our facilitator, introduced us to the four main principles of &lt;a href="http://en.wikipedia.org/wiki/Open-space_meeting"&gt;Open-Space&lt;/a&gt;, and described what was to come in the coming days. Rather than describe it, it&amp;#39;s best if you experience it, which is possible thanks to Jeffrey&amp;#39;s &lt;a href="http://codebetter.com/blogs/jeffrey.palermo/archive/2008/04/18/video-of-alt-net-opening.aspx"&gt;videos&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img height="122" alt="" src="http://farm3.static.flickr.com/2315/2426332554_6330b10956.jpg?v=0" width="543" /&gt;&lt;/p&gt;  &lt;p&gt;Next as is traditional in Open-Space the attendees planned out the sessions for the next 2 days. The nice thing about this conference is that it&amp;#39;s not a spectator-only sport. Anyone can contribute, anyone can suggest a session. Essentially you just write your name and session on a sticker and walk up to the center of the room.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.flickr.com/photos/alexhung/2431615393/"&gt;&lt;img height="159" alt="Proposing topics" src="http://farm4.static.flickr.com/3220/2431615393_fd5e024b20_m.jpg" width="240" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The other nice thing is that just because you suggest, doesn&amp;#39;t mean you need to actually deliver the session. As a convener, your responsibility is to ensure that you start off the meeting, and that someone takes the notes. In my case, I suggested 3 sessions, entitled &amp;quot;To Mock or not to Mock&amp;quot;, &amp;quot;Prism, Are we headed in the right direction&amp;quot; and &amp;quot;What is guidance?&amp;quot;. In the end, all the proposed sessions were posted on a schedule in the front of the room. (That&amp;#39;s me in the blue and white jacket) &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.flickr.com/photos/alexhung/2432430256/"&gt;&lt;img height="185" alt="More votings" src="http://farm4.static.flickr.com/3233/2432430256_6588627bca_m.jpg" width="268" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/alexhung/2432430256/"&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/25741152@N06/2426333242/"&gt;&lt;img alt="SaturdaySchedule" src="http://farm3.static.flickr.com/2247/2426333242_c08385ee3c_m.jpg" /&gt;&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This was followed by a fishbowl session on &lt;a href="http://en.wikipedia.org/wiki/Polyglot_%28computing%29"&gt;PolyGlot&lt;/a&gt; programming (means using multiple languages in the same program for those who didn&amp;#39;t know including me :) )&amp;#160; Below you can see Hanselman who has jumped in the bowl. One of the highlights of the session was Charlie Calvert from the language team at Microsoft joined the discussion to talk about mixed language support in future versions of the framework.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.flickr.com/photos/alexhung/2432438220/"&gt;&lt;img height="159" alt="Polygot Programmer discussion" src="http://farm3.static.flickr.com/2105/2432438220_54193c1daf_m.jpg" width="240" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Just as we had thought evening had ended, we all headed to a local restaurant for another round. I am not sure, but we may have violated a few fire-codes. The highlight of the dinner for me was a conversation I had with &lt;a class="" href="http://www.martinfowler.com/"&gt;Martin Fowler&lt;/a&gt; around UI Patterns, particularly Presentation Model and MVP. Yes I know, I am a geek but come on I mean how often do you have Fowler right at the next table?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.flickr.com/photos/25741152@N06/2426332980/"&gt;&lt;img height="180" alt="Dinner4-18" src="http://farm3.static.flickr.com/2349/2426332980_6b6f5110df_m.jpg" width="240" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The really impressive part of the whole evening was the way everyone immediately self-organized and the level of respect all the attendees showed one another. Also there was no anti-Microsoft vibe, instead it felt warm and welcoming.&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176872" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="ALT.NET" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/ALT.NET/default.aspx" /><category term="conference" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/conference/default.aspx" /></entry><entry><title>Dinner in Tel Aviv days before Tech-Ed 2008</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/04/06/dinner-in-tel-aviv-days-before-tech-ed-2008.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/04/06/dinner-in-tel-aviv-days-before-tech-ed-2008.aspx</id><published>2008-04-06T11:50:18Z</published><updated>2008-04-06T11:50:18Z</updated><content type="html">&lt;p&gt;I am writing this from the keynote for Tech-Ed Israel, with my co-presenter &lt;a href="http://blogs.microsoft.co.il/blogs/ohad/default.aspx"&gt;Ohad&lt;/a&gt; sitting on my left. So far the trip has been great. Upon arrival and after passing through customs, I was happily surprised to find Ohad waiting for me. He&amp;#39;s been a fantastic host, trekking me around Tell Aviv. We spent a lot of time together over the past few days as we prepped for our talks. Up until my arrival in Israel, we&amp;#39;ve been prepping remotely, as well as jointly developing our &amp;quot;Prism&amp;quot; demo. One of the key concepts behind &amp;quot;Prism&amp;quot; is to allow teams to develop separate portions of the system (modules) in isolation. As part of the writing of the demo, we actually did this, so I am happy to say it does work ;)&lt;/p&gt;  &lt;p&gt;Although I was extremely jet lagged upon arrival, Ohad had an exciting dinner planned.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/rosherove/"&gt;Roy Osherove&lt;/a&gt;, &lt;a href="http://udidahan.weblogs.us"&gt;Udi Dahan&lt;/a&gt;, &lt;a href="http://www.ayende.com/"&gt;Oren Eini&lt;/a&gt;, Ohad Israeli and my former CTO from &lt;a href="http://www.globalfactory.net"&gt;Global Factory&lt;/a&gt;, Itai Raz got together for a 3-hour pure geek out session (we ate as well)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/israelio/WindowsLiveWriter/TechEDEilatstartedformeonthursday_8EF1/IMG_4914.jpg"&gt;&lt;img height="354" alt="IMG_4914" src="http://weblogs.asp.net/blogs/israelio/WindowsLiveWriter/TechEDEilatstartedformeonthursday_8EF1/IMG_4914_thumb.jpg" width="530" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It was a memorable evening with several highlights. One was a discussion with Udi around &lt;a href="http://sourceforge.net/projects/nservicebus/"&gt;NServicebus&lt;/a&gt; and quick primer on why we need Sagas.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/ArrivinginTelAvivforTechEd2008_CCFD/Tel-Aviv%202008%20001_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="184" alt="Tel-Aviv 2008 001" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/ArrivinginTelAvivforTechEd2008_CCFD/Tel-Aviv%202008%20001_thumb_2.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The second was a bonding session between Oren and I. We started off by clearing our chests. As you can tell we both had some bent up aggression to let go of.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/ArrivinginTelAvivforTechEd2008_CCFD/Tel-Aviv%202008%20007.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="184" alt="Tel-Aviv 2008 007" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/ArrivinginTelAvivforTechEd2008_CCFD/Tel-Aviv%202008%20007_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://weblogs.asp.net/blogs/israelio/WindowsLiveWriter/TechEDEilatstartedformeonthursday_8EF1/IMG_4922.jpg"&gt;&lt;img height="188" alt="IMG_4922" src="http://weblogs.asp.net/blogs/israelio/WindowsLiveWriter/TechEDEilatstartedformeonthursday_8EF1/IMG_4922_thumb.jpg" width="256" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Finally we hugged and made up. :-)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/ArrivinginTelAvivforTechEd2008_CCFD/Tel-Aviv%202008%20008_1.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="184" alt="Tel-Aviv 2008 008" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/ArrivinginTelAvivforTechEd2008_CCFD/Tel-Aviv%202008%20008_thumb_1.jpg" width="244" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;A great way to kickoff what I am sure will be a fantastic event. Look for more posts in the upcoming days.&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176373" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="conference" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/conference/default.aspx" /><category term="talks" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/talks/default.aspx" /><category term="teched israel 2008" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/teched+israel+2008/default.aspx" /></entry><entry><title>Upcoming talks</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/04/01/upcoming-talks.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/04/01/upcoming-talks.aspx</id><published>2008-04-02T00:35:12Z</published><updated>2008-04-02T00:35:12Z</updated><content type="html">&lt;p&gt;This is one of the posts that I have been meaning to get to for several weeks, but it just keeps falling to the bottom of the backlog. Tomorrow I jump on an airplane so I guess now is as good as time as any. In the next few months, I have several talks at various events.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;Tech-Ed Israel (April 6th to 8th)&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/Upcomingtalks_F5E1/image_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="185" alt="image" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/Upcomingtalks_F5E1/image_thumb.png" width="613" border="0" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I am honored to be chosen out of about 160 speakers to fly across the country to geek out Israeli style. I&amp;#39;ll be speaking on the work we are doing on &amp;quot;Prism&amp;quot; and &amp;quot;Web Client Software Factory&amp;quot; along with my famed compadre &lt;a href="http://weblogs.asp.net/israelio/"&gt;Ohad Israeli&lt;/a&gt;, the CAB guru. We&amp;#39;re burning the midnight oil to put on a good show. If your in town, come check it out. One other highlight of this trip is I am bringing a mobile video-phone with me and will be streaming live highlights at &lt;a href="http://www.qik.com/codebetter"&gt;Qik.com&lt;/a&gt;. Keep checking that site for regular updates of completely ad-hoc style content.&lt;/p&gt;  &lt;h1&gt;ALT.NET Seattle (April 18th to 20th)&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/Upcomingtalks_F5E1/image_4.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="183" alt="image" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/Upcomingtalks_F5E1/image_thumb_1.png" width="615" border="0" /&gt;&lt;/a&gt;4&lt;/p&gt;  &lt;p&gt;Myself and a bunch of my team mates are raiding in on ALT.NET. My goal is to convert all the attendees to the &lt;a href="http://blogs.msdn.com/gblock/archive/2008/04/01/announcing-the-patterns-practices-patterns-factory.aspx"&gt;&amp;quot;drag first&amp;quot;, &amp;quot;design second&amp;quot;&lt;/a&gt; way of thinking :) (residual overused April fools joke). Actually this is a big deal, and I am really excited to be a part of it. I attended the ALT.NET Leadership summit in NYC and had a blast. Most of all I am happy since Open Space means not prepping for a talk. I am looking forward to meeting many of the folks whom I have to date only met virtually through the ALT.NET list.&lt;/p&gt;  &lt;h1&gt;Tech-ed US (June 3 to 6)&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/Upcomingtalks_F5E1/image_6.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="142" alt="image" src="http://codebetter.com/blogs/glenn.block/WindowsLiveWriter/Upcomingtalks_F5E1/image_thumb_2.png" width="624" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Heading down to Orlando and bringing the tribe. Like Tech-Ed Israel, I&amp;#39;ll be speaking on &amp;quot;Prism&amp;quot; and &amp;quot;WCSF&amp;quot;. I am planning to be in town for several weeks, so if there are any local user groups going on, I&amp;#39;m up for attending.&lt;/p&gt;  &lt;p&gt;Allright, well time to go pack!&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176178" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="ALT.NET" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/ALT.NET/default.aspx" /><category term="conference" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/conference/default.aspx" /><category term="patterns and practices" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/patterns+and+practices/default.aspx" /><category term="prism" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/prism/default.aspx" /><category term="wcsf" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/wcsf/default.aspx" /></entry><entry><title>Announcing the Patterns &amp; Practices Patterns Factory</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/04/01/announcing-the-patterns-amp-practices-patterns-factory.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/04/01/announcing-the-patterns-amp-practices-patterns-factory.aspx</id><published>2008-04-01T20:59:08Z</published><updated>2008-04-01T20:59:08Z</updated><content type="html">&lt;p&gt;For some time now I&amp;#39;ve been working on a project that I&amp;#39;ve not been able to talk about. Well today, I am finally able to let the cat out of the bag. One of the challenges we&amp;#39;ve been hearing about from customers is around patterns. We hear they are way too hard to grok, and to implement. &lt;/p&gt;  &lt;p&gt;What customers want is for us to help them with guidance on how to implement those patterns in the real world. In the past we&amp;#39;ve done this through several means starting with guidance, and moving toward code. Time and time again when we have delivered pure &amp;quot;guidance&amp;quot; we hear that is not enough, we need more, we need code, we need tools! We&amp;#39;ve done specific tooling for things like Service Factory, CAB, and WCSF, but we still hear this is not enough. We want general pattern guidance.&lt;/p&gt;  &lt;p&gt;Now this is just one segment of our audience, though a pretty big segment. &lt;/p&gt;  &lt;p&gt;At the same time technology has been constantly evolving which opens up new ways to tackle different challenges. In this case today, we believe we reached the point to solve what I&amp;#39;ll deem &amp;quot;The pattern problem&amp;quot;&lt;/p&gt;  &lt;p&gt;So this is were the Patterns Factory comes in. So what is it? The Patterns factory is planned to be an interactive tooling experience in Visual Studio that will generate artifacts that implement patterns. Want a factory, point the tool at an existing class and you can generate a factory that will create that class. Point at an interface and it will generate a factory for creating classes that implement that interface. Check the dynamic factory check box, and you get a factory that loads from config. You can even select your specific factory to be DI Enabled, and supply the type of container for it to use. OOTB we&amp;#39;ll support Unity (of course), Structure Map, Windsor, and NHibernate. We&amp;#39;re planning for even more containers to be supported.&amp;#160; I know your probably worrying at this point about all the oodles of codegen. Yes, there will be alot of code, but we&amp;#39;re using partial classes and partial methods so that you can regen at any time.&lt;/p&gt;  &lt;p&gt;OK, so that tells you what you can do with factories. But that&amp;#39;s not where it ends, we&amp;#39;ve actually built up a library of all GOF patterns that you can generate artifacts. That means you can create implementations of flyweight, visitor, state, and any other patterns you can think of. Yes we&amp;#39;ve also added MVP, MVC, and Presentation Model support. There&amp;#39;s an extensible XML repository where you can define your own patterns and their associated artifacts. I am planning a 10 part series to explain how you configure the repository, it&amp;#39;s pretty easy once you know all the rules.&lt;/p&gt;  &lt;p&gt;With all this talk about patterns, you may be thinking about the tooling aspect, i.e. what is the designer experience in Visual Studio? Well thanks to the work &lt;a href="http://blogs.msdn.com/donsmith" target="_blank"&gt;Don Smith&lt;/a&gt; and the service factory team have done, that answer has been provided for us. I am happy to say that the Patterns Factory, will leverage DSL designers both for defining the pattern repository, and for generating the patterns. Using the designers, you can model all the aspects of the system and what patterns are in play. You can save the pattern schema to allow you to create new apps leveraging all the same patterns. We also have Pattern detail collection screens. These screens use the DSL powertoy to allow you to collect specific information on each pattern similar to what i mentioned earlier. For example if I create a new State pattern instance, then I get a set of screens where i can define the list of states. They Flyweight screen is really cool which allows me to key in all my Flyweight instances statically if I want to, you can also link it up to a database through the Entity Framework and allow it to pull all the Flyweight instance metadata directly in. &lt;/p&gt;  &lt;p&gt;The other nice part in all of this is that it&amp;#39;s completely extensible. It&amp;#39;s all XML anyway :) Allright, so you can hear the enthusiasm on my part about this new work. I&amp;#39;ve not been able to talk about it before, because I didn&amp;#39;t know if it would actually get off the ground. It&amp;#39;s been my personal project that I&amp;#39;ve been writing on the side. Fortunately for all our execs in p&amp;amp;p this was a no-brainer.&lt;/p&gt;  &lt;p&gt;Within p&amp;amp;p we&amp;#39;re really excited about the new Patterns factory. We think with the factory, you&amp;#39;ll be dragging and dropping your way to a scaleable enterprise architecture. And because it&amp;#39;s April fools the factory is available today for download at &lt;a href="http://www.codeplex.com/aprilfools"&gt;http://www.codeplex.com/aprilfools&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;More to come on this in the future. &lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176170" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="Featured" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/Featured/default.aspx" /><category term="patterns and practices" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/patterns+and+practices/default.aspx" /></entry><entry><title>Prism talk at WPF Bootcamp</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/glenn.block/archive/2008/04/01/prism-talk-at-wpf-bootcamp.aspx" /><id>http://codebetter.com/blogs/glenn.block/archive/2008/04/01/prism-talk-at-wpf-bootcamp.aspx</id><published>2008-04-01T07:20:00Z</published><updated>2008-04-01T07:20:00Z</updated><content type="html">&lt;p&gt;Some months ago I delivered a &lt;a href="http://www.visitmix.com/university/wpf/bc08/" target="_blank"&gt;talk&lt;/a&gt; on &lt;a href="http://www.codeplex.com/prism" target="_blank"&gt;&amp;quot;Prism&amp;#39;&lt;/a&gt; at the WPF Bootcamp. The talk gives a good overview of why we are doing this work. At the time of this demo it was very early, before we even started on the RI work. It does give a good idea of where we are heading, and what is different about this work from what we&amp;#39;ve delivered in the past. &lt;/p&gt;
&lt;p&gt;I also get to do a bit of coverage of different design patterns including those that play out specifically around WPF, how we are pushing Composition vs Inheritance. Finally, I talk about what we are doing to support different OS alternatives like Castle Windsor, etc.&lt;/p&gt;
&lt;p&gt;I want to thank &lt;a href="http://rhizohm.net/irhetoric/" target="_blank"&gt;Karsten Januszewski&lt;/a&gt; for inviting me to the event. I got a chance to have some great customer interactions and talk to some tried and true CAB customers. At the same time, I think much of content was probably a bit heavy and I am known for erring on the side of MORE information not less.&lt;/p&gt;
&lt;p&gt;Get the video &lt;a href="http://www.visitmix.com/university/wpf/bc08/" target="_blank"&gt;here&lt;/a&gt;...if you have any issues viewing, you can download &lt;a class="" href="http://mschnlnine.vo.llnwd.net/d1/mix/6/2/5/Prism_2MB_mix.wmv"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=176139" width="1" height="1"&gt;</content><author><name>gblock</name><uri>http://codebetter.com/members/gblock.aspx</uri></author><category term="patterns and practices" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/patterns+and+practices/default.aspx" /><category term="prism" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/prism/default.aspx" /><category term="WPF" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/WPF/default.aspx" /><category term="Composite WPF" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/Composite+WPF/default.aspx" /><category term="Featured" scheme="http://codebetter.com/blogs/glenn.block/archive/tags/Featured/default.aspx" /></entry></feed>