<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx</link><description>Today is a historic occasion for the &amp;quot;Prism&amp;quot; team as our first drop of our Reference Implementation (RI) hits codeplex. In this post I will describe to you what the RI is, and what you can expect to see when you download it. Disclaimer: This</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>&amp;#8216;Prism&amp;#8217; Early Release Available &amp;laquo; Tales from a Trading Desk</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8174869</link><pubDate>Thu, 13 Mar 2008 01:15:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8174869</guid><dc:creator>‘Prism’ Early Release Available « Tales from a Trading Desk</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://mdavey.wordpress.com/2008/03/12/prism-early-release-available/"&gt;http://mdavey.wordpress.com/2008/03/12/prism-early-release-available/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8174873</link><pubDate>Thu, 13 Mar 2008 01:17:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8174873</guid><dc:creator>Rob</dc:creator><description>&lt;p&gt;Well, I haven't looked at the code yet because codeplex seems to be having some maintenance fixes, but I'm going to go ahead and give you my gut feeling. &amp;nbsp;You've got a fairly simple application that already has 15 projects. &amp;nbsp;You may be missing your first two goals already: Simplicity and Usability. &amp;nbsp;I'll have more feedback after I drill through the code.&lt;/p&gt;
</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8175074</link><pubDate>Thu, 13 Mar 2008 01:37:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8175074</guid><dc:creator>edjez</dc:creator><description>&lt;p&gt;Congrats on starting to get something out and initiating the feedback cycle. &lt;/p&gt;
&lt;p&gt;Under what licensing will this be released? will we be able to run the source in Mono (maybe with some tweaks)?&lt;/p&gt;
&lt;p&gt;And what subset of this do you think would apply if one wanted to cover similar scenarios in Silverlight?&lt;/p&gt;
</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8176847</link><pubDate>Thu, 13 Mar 2008 04:23:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8176847</guid><dc:creator>Glenn Block</dc:creator><description>&lt;P&gt;@Rob yes there are 15 projects, but more than half are for unit-tests. The rest are mostly the actual modules for the application which have been put in separate modules in order to illustrate the composition.&lt;/P&gt;
&lt;P&gt;@edjez Prism is licensed under MS-PL, so I don't think there are any issues preventing it's use on Mono. I will check though. As to SL, we just don't know. My guess is a lot of the "framework" functionality will port to SL. The one issue will be around DI and whether or not any will work on SL. We have an adapter for the container, so you can supply your own. Even if it means writing one in Silverlight :)&lt;/P&gt;</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8178608</link><pubDate>Thu, 13 Mar 2008 07:31:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8178608</guid><dc:creator>Ayende Rahien</dc:creator><description>&lt;p&gt;Glenn,&lt;/p&gt;
&lt;p&gt;People are porting Windsor to Silverlight, actually.&lt;/p&gt;
</description></item><item><title>Prism First Drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8179191</link><pubDate>Thu, 13 Mar 2008 09:23:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8179191</guid><dc:creator>Ohad's Blog</dc:creator><description>&lt;p&gt;Glenn Block &amp;amp;amp; the Guys from Patterns &amp;amp;amp; Practices just released to the public Prism First Drop&lt;/p&gt;
</description></item><item><title>Prism RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8179492</link><pubDate>Thu, 13 Mar 2008 10:42:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8179492</guid><dc:creator>Ward Bell</dc:creator><description>&lt;p&gt;Looking forward to digging in and trying some of it out on an RI for my own company.&lt;/p&gt;
&lt;p&gt;@Ayende - Great news that Windsor will show up on Silverlight.&lt;/p&gt;
&lt;p&gt;Re:@Rob - He expresses a widely shared feeling that project prolixity is a menace and sure sign of undue complexity. When a simple RI seems to require 15 projects, the whole enterprise risks derision.&lt;/p&gt;
&lt;p&gt;I agree that it is a smell. But not all smells are rotten and here the profusion of projects could be perfume if we understood the intent.&lt;/p&gt;
&lt;p&gt;I don't agree that a &amp;quot;compositional&amp;quot; approach necessitates distinct projects. Not in the least.&lt;/p&gt;
&lt;p&gt;But an appropriate backstory could justify this solution structure. Perhaps five different teams developed the application infrastructure and the four modules independently. It is customary(although certainly not necessary) for teams to segregate their efforts by project.&lt;/p&gt;
&lt;p&gt;The backstory might have told of a requirement that the modules be independently deployable; user roles determine who gets which module. In which case the modules must be divided into separate projects (assemblies).&lt;/p&gt;
&lt;p&gt;That said, the burden remains for PnP to articulate the principles and practices guiding the structuring of VS Solutions and Projects. We should resist the temptation to factor into projects merely because we imagine a need for it down the road.&lt;/p&gt;
&lt;p&gt;Example #1. Jim Newkirk recently opined that it would be best if the tests were part of the project whose code they tested. Such a practice would eliminate five projects on the spot. Is there something wrong with that suggestion?&lt;/p&gt;
&lt;p&gt;Example #2: The startup project, StockTraderRI could be combined with StockTraderRI.Infrastructure until there was a compelling reason to break it out. The same might be said of the ChartControls which could have been in their own folder within Infrastructure.&lt;/p&gt;
&lt;p&gt;I can hear someone countering that there would be unnecessary dependencies (e.g., Infrastructure would gain a dependency upon PresentationCore and the ReachFramework).&lt;/p&gt;
&lt;p&gt;If so, explain why this is so terrible, given that the shell and ChartControls will be loaded under all circumstances anyway.&lt;/p&gt;
&lt;p&gt;There may be good architectural reasons ... in which case we owe our audience an explanation.&lt;/p&gt;
&lt;p&gt;Net: I think Rob is off-base for this RI but his provocation is worth attention.&lt;/p&gt;
&lt;p&gt;All of which makes me very happy to see Prism out and about. Great job of communication!&lt;/p&gt;
</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8179715</link><pubDate>Thu, 13 Mar 2008 12:09:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8179715</guid><dc:creator>Guillem</dc:creator><description>&lt;p&gt;Making it work on computers with culture not set to en-US or en-UK (everything under en I guess), more specifally in cultures that use the ',' separator for floats instead of '.':&lt;/p&gt;
&lt;p&gt;- modify line 54 of MarketHistoryService.cs in the StockTraderRI.MarketModule project from&lt;/p&gt;
&lt;p&gt;decimal price = Convert.ToDecimal(xmlReader.Value,CultureInfo.CurrentCulture);&lt;/p&gt;
&lt;p&gt;to&lt;/p&gt;
&lt;p&gt;decimal price = Decimal.Parse(xmlReader.Value, NumberStyles.Float, CultureInfo.InvariantCulture);&lt;/p&gt;
&lt;p&gt;- modify line 46 from MarketFeedService.cs in StockTraderRI.MarketModule project from&lt;/p&gt;
&lt;p&gt;decimal lastPrice = Convert.ToDecimal(xmlReader.GetAttribute(&amp;quot;LastPrice&amp;quot;));&lt;/p&gt;
&lt;p&gt;to&lt;/p&gt;
&lt;p&gt;decimal lastPrice = decimal.Parse(xmlReader.GetAttribute(&amp;quot;LastPrice&amp;quot;), NumberStyles.Float, CultureInfo.InvariantCulture);&lt;/p&gt;
</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8180433</link><pubDate>Thu, 13 Mar 2008 16:15:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8180433</guid><dc:creator>Rob</dc:creator><description>&lt;p&gt;I have to agree with Ward, especially after the cursory look at the code. &amp;nbsp;If you publish some sort of back story that details the hypothetical business reasons for the architecture, that would help people to understand better; and to better determine if this approach meets the needs of their situation. &amp;nbsp;I don't think that the tests should be combined with the code they test, however. &amp;nbsp;In any case, I'm going to have a lot more feedback, particularly on the code itself; some specifics, some generalities. &amp;nbsp;I think its too much to post here. &amp;nbsp;Do we have an established mechanism for this feedback yet? &amp;nbsp;Should I just post it on the codeplex site?&lt;/p&gt;
</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8182596</link><pubDate>Thu, 13 Mar 2008 20:46:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8182596</guid><dc:creator>David Platt</dc:creator><description>&lt;p&gt;My piece of feedback is to disagree with the RI's lack of a dynamic module loader service, and to hope that this represents only the early state of the project and not a firm decision to eliminate such a thing. IMHO, one of the main distinguishing features of a composite app is the lack of such compiled-in dependencies. I would request that the P&amp;amp;P team state whether a dynamic loader service this is currently planned or not. &lt;/p&gt;
</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8186721</link><pubDate>Fri, 14 Mar 2008 00:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8186721</guid><dc:creator>Glenn Block</dc:creator><description>&lt;p&gt;@Rob, @Ward&lt;/p&gt;
&lt;p&gt;There are specific business reasons for each of the separate modules. I will do a follow up post to explain this. The infrastructure module cannot be conslidated as it contains types that are shared across modules. It will create a cirular reference if the modules reference it, as the shell references them.&lt;/p&gt;
&lt;p&gt;@David&lt;/p&gt;
&lt;p&gt;It is planned.&lt;/p&gt;
&lt;p&gt;Our initial focus is around UI Composition, and not dynamic module loading. We still have modules only they are statically referenced. Over time we will add dynamic loading functionality, but we want customers to have the option of using static loading if it is sufficent. &lt;/p&gt;
&lt;p&gt;The plan is to have 2 RIs, one that does UI Composition with static module loading and a second that demonstrates UI Composition with dynamic loading.&lt;/p&gt;
&lt;p&gt;When we get to working on dynamic loading we will look at the configuration story, and also explore the loading on demand story. Loading on demand may be something we demonstrate in a quickstart instead of the RI itself.&lt;/p&gt;
</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8186834</link><pubDate>Fri, 14 Mar 2008 00:14:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8186834</guid><dc:creator>Glenn Block</dc:creator><description>&lt;p&gt;@Rob, you can use the forums.&lt;/p&gt;
</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8186897</link><pubDate>Fri, 14 Mar 2008 00:17:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8186897</guid><dc:creator>Glenn Block</dc:creator><description>&lt;p&gt;@Guillem &lt;/p&gt;
&lt;p&gt;Thanks for the feedback, I have passed your suggestion on to the team.&lt;/p&gt;
</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8205427</link><pubDate>Fri, 14 Mar 2008 18:55:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8205427</guid><dc:creator>saurabhd</dc:creator><description>&lt;p&gt;Do we have any design document or block diagram that helps me better understand how Prism works under the hood? I did not find any document in the .ZIP file downloaded from &lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.codeplex.com/prism/Release/ProjectReleases.aspx?ReleaseId=11615"&gt;http://www.codeplex.com/prism/Release/ProjectReleases.aspx?ReleaseId=11615&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>Prism: First drop published</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8207013</link><pubDate>Fri, 14 Mar 2008 20:24:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8207013</guid><dc:creator>Ezequiel Jadib</dc:creator><description>&lt;p&gt;A few days ago we have published the first drop of our Reference Implementation on Codeplex . For more&lt;/p&gt;
</description></item><item><title>Prism: First drop published</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8207093</link><pubDate>Fri, 14 Mar 2008 20:29:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8207093</guid><dc:creator>Ezequiel Jadib </dc:creator><description>&lt;p&gt;A few days ago we have published the first drop of our Reference Implementation on Codeplex . For more&lt;/p&gt;
</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8325285</link><pubDate>Wed, 19 Mar 2008 12:14:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8325285</guid><dc:creator>Glenn Block</dc:creator><description>&lt;p&gt;@saurabhd no not yet, we will have docs coming soon. We will start having background info materializing on codeplex.&lt;/p&gt;
</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8331233</link><pubDate>Sat, 22 Mar 2008 18:25:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8331233</guid><dc:creator>Acer</dc:creator><description>&lt;p&gt;Congratulations!&lt;/p&gt;
&lt;p&gt;I think one of the interesting subjects to address is an MVP adoption to WPF and specifically to the benefits of data binding. Tried going over view-presenter couples in the drop but didn't find a clear pattern. What's the latest on that?&lt;/p&gt;
&lt;p&gt;Acer&lt;/p&gt;
</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8331338</link><pubDate>Sat, 22 Mar 2008 19:45:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8331338</guid><dc:creator>Glenn Block</dc:creator><description>&lt;p&gt;@Acer, &lt;/p&gt;
&lt;p&gt;Thanks. We are addressing this. Essentially you'll see three core patterns coming into play around testability of the UI. Model View Presenter, Presentation Model and Command. Command is pretty clear when to use due to the inherent platform support in WPF, however we are doing some exploration on how to best wire up WPF commands across modules.&lt;/p&gt;
&lt;p&gt; Because of the premier status binding has in WPF, Presentation Model plays very well. In most cases you will see we are doing a hybrid of the two, with the Presenter being responsible for populating the Presentation Model so it can be bound. The Presenter will also handle other UI gestures as appropriate. &lt;/p&gt;
&lt;p&gt;For example if you look in the Postions module &lt;/p&gt;
&lt;p&gt;at the PositionSummaryPresenter, you will see the PopulatePresentationModel method which will populate the positions. This model is already is then bound to the UI by the Presenter which sets the Model property on the view. The view then sets the DataContext to this Model.&lt;/p&gt;
&lt;p&gt;I'll most likely do some posts on this in the future, and we will have documentation around the RI that explains what we are doing and why.&lt;/p&gt;
</description></item><item><title>re: 'Prism' RI first drop</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8332501</link><pubDate>Sun, 23 Mar 2008 21:46:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8332501</guid><dc:creator>Amit (AKA Acer)</dc:creator><description>&lt;p&gt;Glenn,&lt;/p&gt;
&lt;p&gt;It would be great to see your output on MVP and binding.&lt;/p&gt;
&lt;p&gt;The code has a major change vs SCSF where in SCSF the view refrences the presenter and here it does not. Guess you wanted to eliminate the dependency but with that you took the ability to bind UI to presenter properties - which we found to be extremly usefull. &lt;/p&gt;
&lt;p&gt;Also &amp;quot;manually&amp;quot; setting properties on the view which then fills an internal model which is bound to the UI seems to me somewhat non-WPF, probably can do better by leveraging binding more (again, bind to data which comes from outside the view) &lt;/p&gt;
&lt;p&gt;Amit&lt;/p&gt;
</description></item><item><title>Smart Client Software Factory for Visual Studio 2008 close to shipping</title><link>http://blogs.msdn.com/gblock/archive/2008/03/12/prism-ri-first-drop.aspx#8340325</link><pubDate>Thu, 27 Mar 2008 23:14:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8340325</guid><dc:creator>Blaine Wastell - patterns &amp; practices client architecture guidance</dc:creator><description>&lt;p&gt;Now that Web Client Software Factory Shipped and the team is focusing on Prism (the composite scenario&lt;/p&gt;
</description></item></channel></rss>