<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.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>vcsjones : MVC</title><link>http://msmvps.com/blogs/vcsjones/archive/tags/MVC/default.aspx</link><description>Tags: MVC</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>MVC Framework</title><link>http://msmvps.com/blogs/vcsjones/archive/2008/04/07/mvc-framework.aspx</link><pubDate>Tue, 08 Apr 2008 04:33:11 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1577800</guid><dc:creator>vcsjones</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/vcsjones/rsscomments.aspx?PostID=1577800</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/vcsjones/commentapi.aspx?PostID=1577800</wfw:comment><comments>http://msmvps.com/blogs/vcsjones/archive/2008/04/07/mvc-framework.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://msmvps.com/blogs/vcsjones/WindowsLiveWriter/MVCFramework_7CA/mvc_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px 10px 0px 0px;border-right-width:0px;" border="0" alt="MVC Pattern" align="left" src="http://msmvps.com/blogs/vcsjones/WindowsLiveWriter/MVCFramework_7CA/mvc_thumb.png" width="240" height="141" /&gt;&lt;/a&gt; The MVC framework is the new &amp;quot;hot&amp;quot; thing in the ASP.NET world for developers. As such, everyone has at least one blog entry about it. So, I think it&amp;#39;s time I jumped on that ship. Though, I wanted to voice a few concerns with the MVC Framework, or at least how people perceive it.&lt;/p&gt; &lt;p&gt;The MVC design pattern is by no means new. It&amp;#39;s been around since around 1979, and .NET is certainly not the first framework that supports the MVC Pattern, and nor is Microsoft&amp;#39;s MVC Project the first for .NET. Spring is a very popular MVC solution for Java developers, and there is a .NET port of it as well. Though, I&amp;#39;m not here to give a history lesson either.&lt;/p&gt; &lt;p&gt;I often hang out at the &lt;a href="http://forums.asp.net/" target="_blank"&gt;ASP.NET Forums&lt;/a&gt; as a moderator and contributor. The MVC Framework is a pretty hot forum over there at the moment. Though after reading several posts, I can&amp;#39;t help but get the feeling that several people aren&amp;#39;t certain as to what the MVC design pattern is trying to solve.&lt;/p&gt; &lt;p&gt;So, at it&amp;#39;s core, MVC is a design pattern that was originally used in SmallTalk-80. The original paper is up for interpretation, but at it&amp;#39;s core theory, MVC&amp;#39;s original goal was clean separation between layers of your application.&lt;/p&gt; &lt;p&gt;Yes, MVC gives you cool features like Routing, and a big&amp;nbsp; bonus of Unit Testing. Anyone that has been using unit testing before knows that good separation of your code is important to achieve practical unit tests, especially those who also practice Test Driven Development; but the true goal of MVC (or MVP for that matter) is decoupling logic.&lt;/p&gt; &lt;p&gt;Some people originally made the claim that the current ASP.NET model (before the MVC project) &lt;em&gt;was &lt;/em&gt;an MVC model. Well... mmmnnn...ooo. Not quite. It could be argued that it was, but the &amp;quot;not quite&amp;quot; was the event processing in .NET. The initial argument was that the event handles on controls coupled the code behind too tightly. A better solution would be to have the event handles work with a presentation model.&lt;/p&gt; &lt;p&gt;OK, I&amp;#39;ve been rambling on a little bit. What&amp;#39;s my point (if any)? I suppose that Microsoft&amp;#39;s MVC is pretty cool. I am a little perplexed as to why everyone got so excited about MVC since Microsoft announced they were providing a Framework when there are frankly, better and more mature MVC Frameworks around, and I&amp;#39;ll circle back around to Spring for that one. Spring has been around since .NET 1.1, and since it is a Java port, they have a lot of experience from there, too. I get concerned that some people really aren&amp;#39;t using MVC for the purpose of decoupling and improving their code; rather for some of its specialized features, such as Routing.&lt;/p&gt; &lt;p&gt;Though, in all honestly I tend to lean towards the MVP pattern myself. Not quite as popular, I still prefer it because the view is not as coupled with the model. A good MVP project is &lt;a title="Stormwind NMVP" href="http://www.stormwindproject.org/index.php/NMVP/Home.html" target="_blank"&gt;Stormwind NMVP&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1577800" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/vcsjones/archive/tags/MVC/default.aspx">MVC</category><category domain="http://msmvps.com/blogs/vcsjones/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item></channel></rss>