<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://devlicio.us/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>.NET &amp; Funky Fresh : RIA, Flash</title><link>http://devlicio.us/blogs/rob_eisenberg/archive/tags/RIA/Flash/default.aspx</link><description>Tags: RIA, Flash</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>MVVM Study - Interlude</title><link>http://devlicio.us/blogs/rob_eisenberg/archive/2010/05/01/mvvm-study-interlude.aspx</link><pubDate>Sat, 01 May 2010 16:34:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:58045</guid><dc:creator>Rob Eisenberg</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicio.us/blogs/rob_eisenberg/rsscomments.aspx?PostID=58045</wfw:commentRss><comments>http://devlicio.us/blogs/rob_eisenberg/archive/2010/05/01/mvvm-study-interlude.aspx#comments</comments><description>&lt;p&gt;There&amp;rsquo;s a whole lot of talk these days about MVVM. It&amp;rsquo;s the &amp;ldquo;hep&amp;rdquo; thing and everyone wants in. There isn&amp;rsquo;t a single day lately where someone doesn&amp;rsquo;t post about this topic (and I read their post..I&amp;rsquo;ve tried really hard to read everything I find). I&amp;rsquo;ve tweeted that all these posts have caused a great deal of noise, distracting developers from the interesting and really useful information. But, I&amp;rsquo;m going to relent on that. It&amp;rsquo;s important that developers try MVVM, succeed or fail, and blog about it. Writing and communicating is an important part of the learning process. What I do ask is that you are open to criticism and interested in learning new things. I expect that of myself and I&amp;rsquo;ve tried really hard to receive criticism on &lt;a href="http://www.caliburnproject.com/"&gt;Caliburn&lt;/a&gt; and taken seriously the criticism and comments of others on this series of posts. In fact the entire &lt;a href="http://devlicio.us/blogs/rob_eisenberg/archive/2009/08/02/mvvm-study-part-2-view-of-the-model-or-model-of-the-view.aspx"&gt;second post in this series&lt;/a&gt; was the result of me struggling with a very evocative comment that someone made on my first post.&amp;nbsp; In the end, I felt I learned something about MVVM because of that. I don&amp;rsquo;t want to toot my own horn though. Taking criticism is hard and I&amp;rsquo;ve failed to receive it amicably many times in the past. I really liked &lt;a href="http://www.davesquared.net/2010/02/attempt-at-simple-mvvm-with-wpf.html"&gt;this MVVM blog post&lt;/a&gt; though. The author begins by inviting criticism and states where he is in his process of learning. He then proceeds to a pretty well-rounded explanation. I think that&amp;rsquo;s a great attitude and I want to learn to proceed better after that fashion.&lt;/p&gt;
&lt;p&gt;One of the best things we can do in our understanding of MVVM, is to explore other presentation patterns as well. MVVM is not a silver bullet. If you are interested in creating maintainable, extensible, testable&amp;hellip;and simple UI, you owe it to yourself to spend some time studying. I&amp;rsquo;m warning you ahead of time, you are going to struggle through some of this stuff.&amp;nbsp; I lost count of the number of conversations Christopher and I have had over the last few years, just trudging through this stuff trying to understand the nuances. But let me encourage you, the benefits are worth the invested time and they will outlive any one stylish pattern, framework or programming language. The investment will continue to repay you as long as you write software.&lt;/p&gt;
&lt;p&gt;If you are interested in moving beyond simple MVVM or just want to understand other solutions to similar problems, let me provide you with a few readily available resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://codebetter.com/blogs/jeremy.miller/archive/2007/07/25/the-build-your-own-cab-series-table-of-contents.aspx"&gt;Jeremy Miller&amp;rsquo;s Build Your Own Cab&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.jeremydmiller.com/ppatterns/Default.aspx"&gt;Presentation Patterns Wiki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.martinfowler.com/bliki/"&gt;Martin Fowlers Bliki&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://martinfowler.com/eaaDev/OrganizingPresentations.html"&gt;Organizing Presentations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://martinfowler.com/eaaDev/SeparatedPresentation.html"&gt;Separated Presentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://martinfowler.com/eaaDev/PresentationModel.html"&gt;Presentation Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://martinfowler.com/eaaDev/SupervisingPresenter.html"&gt;Supervising Controller&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://martinfowler.com/eaaDev/PassiveScreen.html"&gt;Passive View&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://martinfowler.com/eaaDev/AutonomousView.html"&gt;Autonomous View&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://martinfowler.com/eaaDev/MediatedSynchronization.html"&gt;Observer Synchronization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://martinfowler.com/eaaDev/FlowSynchronization.html"&gt;Flow Synchronization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.martinfowler.com/eaaCatalog/modelViewController.html"&gt;MVC&lt;/a&gt;, &lt;a href="http://www.martinfowler.com/eaaCatalog/frontController.html"&gt;Front Controller&lt;/a&gt; and &lt;a href="http://www.martinfowler.com/eaaCatalog/pageController.html"&gt;Page Controller&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;John Gossman&amp;rsquo;s TWO original articles on MVVM
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/johngossman/archive/2005/10/08/478683.aspx"&gt;Introduction to Model/View/ViewModel pattern for building WPF apps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/johngossman/archive/2005/10/09/478894.aspx"&gt;100 Model/View/ViewModels of Mt. Fuji&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.msdn.com/dancre/archive/2006/10/11/datamodel-view-viewmodel-pattern-series.aspx"&gt;Dan Crevier&amp;#39;s Series of Posts On DataModel-View-ViewModel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/dd419663.aspx"&gt;Josh Smith&amp;rsquo;s article on MVVM&lt;/a&gt;&amp;nbsp;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://joshsmithonwpf.wordpress.com/advanced-mvvm/"&gt;His book&lt;/a&gt; along with the &lt;a href="http://codebetter.com/blogs/wardbell/archive/2010/03/19/mvvm-josh-smith-s-way.aspx"&gt;positive &lt;/a&gt;and &lt;a href="http://justinangel.net/AdvancedMvvmBookReview"&gt;negative &lt;/a&gt;criticism.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx"&gt;Simplifying the WPF TreeView by Using the ViewModel Pattern&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://caliburnproject.org/"&gt;My Own MVVM Series (of which there are five previous parts) along with info about Caliburn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.bjoernrochel.de/?s=storyteller"&gt;Diving Into the StoryTeller Trunk&lt;/a&gt; along with the &lt;a href="http://storyteller.tigris.org/"&gt;StoryTeller source code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The &lt;a href="http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1272730633&amp;amp;sr=8-1"&gt;Original GoF Design Patterns Book&lt;/a&gt; &amp;ndash; You may be surprised how many examples relate to UI.&lt;/li&gt;
&lt;li&gt;Study the Source of Several Different Frameworks
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://caliburn.codeplex.com/"&gt;Caliburn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://compositewpf.codeplex.com/"&gt;Prism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://magellan.codeplex.com/"&gt;Magellan&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nroute.codeplex.com/"&gt;nRoute&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://micromodels.codeplex.com/"&gt;MicroModels&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cinch.codeplex.com/"&gt;Cinch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mvvmlight.codeplex.com/"&gt;MVVM Light Toolkit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/site/search?query=mvvm&amp;amp;ac=8"&gt;many, many more&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Look At How Other Platforms Handle Things
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaDesignPatterns/CocoaDesignPatterns.html"&gt;Cocoa Design Patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://doc.trolltech.com/qq/qq10-mvc.html"&gt;QT&amp;rsquo;s MVC and Signal/Slot Mechanism&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://st-www.cs.illinois.edu/users/smarch/st-docs/mvc.html"&gt;Smalltalk MVC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.adobe.com/devnet/flash/articles/mv_controller.html"&gt;Flash and MVC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=58045" width="1" height="1"&gt;</description><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/WPF/default.aspx">WPF</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/.NET+3.0/default.aspx">.NET 3.0</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/databinding/default.aspx">databinding</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/WPF_2F00_e/default.aspx">WPF/e</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/Caliburn/default.aspx">Caliburn</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/Featured/default.aspx">Featured</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/Flash/default.aspx">Flash</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/RIA/default.aspx">RIA</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/Tutorial/default.aspx">Tutorial</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/MVVM/default.aspx">MVVM</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/UI+Architecture/default.aspx">UI Architecture</category></item><item><title>Flash takes it up a notch! (or two...maybe three...)</title><link>http://devlicio.us/blogs/rob_eisenberg/archive/2008/05/15/flash-takes-it-up-a-notch-or-two-maybe-three.aspx</link><pubDate>Thu, 15 May 2008 17:13:00 GMT</pubDate><guid isPermaLink="false">40756a8b-6212-4073-9d98-6c26781577de:40588</guid><dc:creator>Rob Eisenberg</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devlicio.us/blogs/rob_eisenberg/rsscomments.aspx?PostID=40588</wfw:commentRss><comments>http://devlicio.us/blogs/rob_eisenberg/archive/2008/05/15/flash-takes-it-up-a-notch-or-two-maybe-three.aspx#comments</comments><description>&lt;p&gt;I have high hopes for Silverlight, but I just can&amp;#39;t ignore the amazing stuff that is happening with Flash!&amp;nbsp; Adobe just released the Beta 1 of Flash 10 which supports hardware accelerated 3D, shader effects and an advanced&amp;nbsp; drawing api.&amp;nbsp; Basically, all the stuff that is in the recent WPF SP1 Beta.&amp;nbsp; Except Adobe&amp;#39;s implementation is cross browser, cross platform, of course.&amp;nbsp; You can see some demos and learn more &lt;a href="http://labs.adobe.com/technologies/flashplayer10/demos/index.html"&gt;here&lt;/a&gt;.&amp;nbsp; Does Silverlight have any tricks up its sleeve?&amp;nbsp; I hope so, for its sake.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devlicio.us/aggbug.aspx?PostID=40588" width="1" height="1"&gt;</description><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/WPF/default.aspx">WPF</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/Flash/default.aspx">Flash</category><category domain="http://devlicio.us/blogs/rob_eisenberg/archive/tags/RIA/default.aspx">RIA</category></item></channel></rss>