<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://bloggingabout.net/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>Obiwan Jacobi - All Comments</title><link>http://bloggingabout.net/blogs/marc/default.aspx</link><description>Do not underestimate the bandwidth of a truck!</description><dc:language>en</dc:language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><item><title>re: Why do we not design a class like this?</title><link>http://bloggingabout.net/blogs/marc/archive/2007/08/24/why-do-we-not-design-a-class-like-this.aspx#470578</link><pubDate>Wed, 06 Aug 2008 14:27:47 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:470578</guid><dc:creator>Marc Jacobi</dc:creator><description>&lt;p&gt;The nested classes or structs are versioned whenever the main class is versioned. I dont see why they should be versioned independently. I would expect that because they are nested, they version with the root class that contains them...&lt;/p&gt;
&lt;p&gt;Unless you have a property group (struct) that is reused over different (root) classes, but then its just like any other class depenedency.&lt;/p&gt;
&lt;p&gt;I would not expect to see interfaces for each property group. These groups are merely for organizing a large number of individual properties.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=470578" width="1" height="1"&gt;</description></item><item><title>re: Why do we not design a class like this?</title><link>http://bloggingabout.net/blogs/marc/archive/2007/08/24/why-do-we-not-design-a-class-like-this.aspx#470493</link><pubDate>Tue, 05 Aug 2008 16:45:39 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:470493</guid><dc:creator>orcmid</dc:creator><description>&lt;p&gt;I think there is more to it than that. &amp;nbsp;If you consider versioning of classes over time, there are some issues that come up when we use nested objects (including structures) as independently-versionable entities.&lt;/p&gt;
&lt;p&gt;This could be handled by using versioned interfaces to carry the particular contract in an explicit way. &amp;nbsp;That doesn&amp;#39;t, of course, deal with the accomodation of WinForms and XAML.&lt;/p&gt;
&lt;p&gt;Redoing your nested example using interfaces and their implementations is challenging. &amp;nbsp;But I think the extra indirection is the key, just the same.&lt;/p&gt;
&lt;p&gt;[My RSS feed just coughed-up these older posts of yours, so I am a late-comer to this discussion.]&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=470493" width="1" height="1"&gt;</description></item><item><title>re: [WPF] Data Model - View Model - View</title><link>http://bloggingabout.net/blogs/marc/archive/2008/06/29/wpf-data-model-view-model-view.aspx#464506</link><pubDate>Thu, 10 Jul 2008 08:06:18 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:464506</guid><dc:creator>Martijn van Asseldonk</dc:creator><description>&lt;p&gt;Thanks for clearing this up and confirming my presumptions.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=464506" width="1" height="1"&gt;</description></item><item><title>re: [WPF] Data Model - View Model - View</title><link>http://bloggingabout.net/blogs/marc/archive/2008/06/29/wpf-data-model-view-model-view.aspx#463954</link><pubDate>Tue, 08 Jul 2008 12:34:32 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:463954</guid><dc:creator>Marc Jacobi</dc:creator><description>&lt;p&gt;In fact, I see that CAL also suggest the pattern.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://msdn.microsoft.com/en-us/library/cc707885.aspx"&gt;msdn.microsoft.com/.../cc707885.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Only they call it Presentation Model.&lt;/p&gt;
&lt;p&gt;Whatever...&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=463954" width="1" height="1"&gt;</description></item><item><title>re: [WPF] Data Model - View Model - View</title><link>http://bloggingabout.net/blogs/marc/archive/2008/06/29/wpf-data-model-view-model-view.aspx#463944</link><pubDate>Tue, 08 Jul 2008 11:16:04 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:463944</guid><dc:creator>Marc Jacobi</dc:creator><description>&lt;p&gt;I was not aware of CAL when I wrote this. CAL (WPF) is more a next version of CAB (WinForms). A lot of concepts seem to re-appear in CAL that were in CAB. Also CAL uses a Document-Presenter-View pattern (in the docs). I have no idea if that can be changed because I have no hands-on experience with CAL yet. It all depends on what the CAL framework assumes of a module. If its only a view (a quick look at the architecture overview seems to suggest that) than you can use DM-VM-V with CAL.&lt;/p&gt;
&lt;p&gt;The Data Model - View Model - View pattern is way lighter than CAL. Its just a (very short ;-) description of how you could structure your code to make use of the powerful databinding features of WPF.&lt;/p&gt;
&lt;p&gt;CAL is a framework, a library. It contains IoC/DI containers and event aggregators and the lot. All services you&amp;#39;ll need when you want to build composite applications. The DM-VM-V pattern says nothing about composition of modules into an application.&lt;/p&gt;
&lt;p&gt;CAB, Acropolis, CAL.... whats next!? ;-)&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=463944" width="1" height="1"&gt;</description></item><item><title>Composite Application Guidance for WPF</title><link>http://bloggingabout.net/blogs/marc/archive/2008/06/29/wpf-data-model-view-model-view.aspx#463897</link><pubDate>Tue, 08 Jul 2008 08:13:11 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:463897</guid><dc:creator>Martijn van Asseldonk</dc:creator><description>&lt;p&gt;Hi Marc,&lt;/p&gt;
&lt;p&gt;Can you tell me how this relates or differs from the patterns used in the just released Composite Application Guidance for WPF? Are the two mutually exclusive or is DataModel/View/ViewModel a (good) option to use in an app using CAL? I noticed CAL also uses the Command pattern to handle interface actions.&lt;/p&gt;
&lt;p&gt;Could it be your described pattern is lighter and easier to use than CAL? CAL contains a lot of functionality and might be overkill for smaller apps.&lt;/p&gt;
&lt;p&gt;Like to hear your thoughts...&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=463897" width="1" height="1"&gt;</description></item><item><title>re: Trace Context Aspects with PostSharp</title><link>http://bloggingabout.net/blogs/marc/archive/2008/04/15/trace-context-aspects-with-postsharp.aspx#458253</link><pubDate>Sun, 20 Apr 2008 19:18:15 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:458253</guid><dc:creator>Marc Jacobi</dc:creator><description>&lt;p&gt;Yes, in a sense that I would advice them to the project team that is working for that customer ;-)&lt;/p&gt;
&lt;p&gt;I mean, I would not burdon the customer with these details unless they are very technical and can understand what the hell I&amp;#39;m talking about.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=458253" width="1" height="1"&gt;</description></item><item><title>re: Trace Context Aspects with PostSharp</title><link>http://bloggingabout.net/blogs/marc/archive/2008/04/15/trace-context-aspects-with-postsharp.aspx#458229</link><pubDate>Thu, 17 Apr 2008 11:05:12 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:458229</guid><dc:creator>Remco</dc:creator><description>&lt;p&gt;Then, would you advise using them to a customer?&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=458229" width="1" height="1"&gt;</description></item><item><title>re: Trace Context Aspects with PostSharp</title><link>http://bloggingabout.net/blogs/marc/archive/2008/04/15/trace-context-aspects-with-postsharp.aspx#458228</link><pubDate>Thu, 17 Apr 2008 09:46:50 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:458228</guid><dc:creator>Marc Jacobi</dc:creator><description>&lt;p&gt;Remco,&lt;/p&gt;
&lt;p&gt;First of all my *experience* is very limited because I just started using static aspects. &lt;/p&gt;
&lt;p&gt;But I think it is safe to say that static aspects are no less-robust or stable than ordanary custom code. This means it is up to the aspect writer to make it stable and robust. If you now use, say, a static helper class to do your tracing, that would be no different. That static helper class would need to be just as stable and robust as the aspect should be.&lt;/p&gt;
&lt;p&gt;The nice thing about static aspects is that you can debug them just as you would 'normal' code. Also, static aspects will not change once compiled into your code (as is possible with dynamic aspect weavers). That means you can make unit-test to verify the aspect's behavior, although in some cases -depending on the aspect behavior- this could be a little difficult. &lt;/p&gt;
&lt;p&gt;In my opinion static aspects are the most relyable and predictable type of aspects to use and they are completly transparent to the calling code.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=458228" width="1" height="1"&gt;</description></item><item><title>re: Trace Context Aspects with PostSharp</title><link>http://bloggingabout.net/blogs/marc/archive/2008/04/15/trace-context-aspects-with-postsharp.aspx#458224</link><pubDate>Wed, 16 Apr 2008 16:10:33 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:458224</guid><dc:creator>Remco</dc:creator><description>&lt;p&gt;Marc,&lt;/p&gt;
&lt;p&gt;What is your experience in regards to stabillity and robustness of this solution? what happens when an aspect is buggy? this is critical behavior, when you sprinkle all these aspects accross your classes ...&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=458224" width="1" height="1"&gt;</description></item><item><title>A Method Context Information Gathering Framework</title><link>http://bloggingabout.net/blogs/marc/archive/2008/04/04/basic-system-diagnostics.aspx#458218</link><pubDate>Tue, 15 Apr 2008 14:13:55 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:458218</guid><dc:creator>Obiwan Jacobi</dc:creator><description>&lt;p&gt;Do you also have that feeling when you type in your tracing code that it is too cumbersome and too much&lt;/p&gt;
&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=458218" width="1" height="1"&gt;</description></item><item><title>re: Why I think Merging Source Code sucks</title><link>http://bloggingabout.net/blogs/marc/archive/2008/03/19/why-i-think-merging-source-code-sucks.aspx#458060</link><pubDate>Thu, 20 Mar 2008 21:39:38 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:458060</guid><dc:creator>Nathan Pledger</dc:creator><description>&lt;p&gt;I've never had the luxury of using Team Foundation Server, but I can appreciate your frustration with source control. We use SVN having &amp;quot;upgraded&amp;quot; from CVS, and the whole concept is brilliant but intrisically flawed. I end up creating milestone backups of repositories &amp;quot;Just in case&amp;quot;, because I couldn't trust it at all.&lt;/p&gt;
&lt;p&gt;I'm glad I'm not on my own, as it feels at the moment!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=458060" width="1" height="1"&gt;</description></item><item><title>re: Singleton Generics [updated]</title><link>http://bloggingabout.net/blogs/marc/archive/2006/02/13/11034.aspx#442878</link><pubDate>Tue, 04 Dec 2007 10:25:52 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:442878</guid><dc:creator>mezhaka</dc:creator><description>&lt;p&gt;the parameter type of the generic needs public default constructor, so the type you're using as a parameter is not singleton object itself. don't you think there maybe problems, when some other member of your team will use this parameter type instead of the using it singletoned with this generic?&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=442878" width="1" height="1"&gt;</description></item><item><title>re: Ploggle Desktop Application</title><link>http://bloggingabout.net/blogs/marc/archive/2007/11/30/ploggle-desktop-application.aspx#442165</link><pubDate>Fri, 30 Nov 2007 10:52:45 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:442165</guid><dc:creator>Dennis van der Stelt</dc:creator><description>&lt;p&gt;Leuk, dat Ploggle : &lt;a rel="nofollow" target="_new" href="http://manuel.ploggle.com/"&gt;http://manuel.ploggle.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;:)&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=442165" width="1" height="1"&gt;</description></item><item><title>re: Why do we not design a class like this?</title><link>http://bloggingabout.net/blogs/marc/archive/2007/08/24/why-do-we-not-design-a-class-like-this.aspx#351440</link><pubDate>Thu, 30 Aug 2007 07:47:37 GMT</pubDate><guid isPermaLink="false">813b6dfd-644e-4573-a816-eebab56ba0d0:351440</guid><dc:creator>Marc Jacobi</dc:creator><description>&lt;p&gt;Taking thing to the extreme is never a good thing (unless its money? ;-).&lt;/p&gt;
&lt;p&gt;I would think that you would only need one level in most cases (as my example). Multiple levels of property containers reeks of bad design and might justify actual classes instead of just property structs.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://bloggingabout.net/aggbug.aspx?PostID=351440" width="1" height="1"&gt;</description></item></channel></rss>