RSS 2.0
Journal / Blog
Thursday, November 27, 2008
MVC is a Welcome Addition to ASP.NET, but.... MVC Frameworks, like Ruby on Rails are More Mature
The Model View Controller (MVC) pattern is a great addition to ASP.NET. The MVC pattern was first described in 1979 by the SmallTalk community - those crazy SmallTalk guys!

Today Wikipedia lists 80 different web frameworks that use MVC - with Java and PHP topping the list for the languages with the most MVC web frameworks. MVC enforces a separation of responsibilities: Markup / CSS / JavaScript, Domain Objects / Containers, and Actions / Controls are broken up into their respective directories. In addition MVC provides the ability to test most of your code and is more intuitive with how the web works (REST like, based on URIs, plays nicer with the browser, and not dependent on POST backs).

Finding good resources specifically for ASP.NET MVC is impossible at this time, but the books covering Ruby on Rails (RoR) are invaluable. RoR has been around since 2005, it uses the same basic MVC approach, similar routing, similar control structure, has a mature community, a large collection of plug-ins, and well established tools (anyone claiming that ASP.NET MVC can't do what WebForms can, should look to Rails as an example). Gasp! It's almost like ASP.NET MVC has copied Rails!! :)

Anyhow; the more I learn about Rails and Ruby, the more I realized that the communities like RoR (SmallTalk, and even some of the PHP world) are years ahead of my native .NET community. At this point I'm considering abandoning .NET in favour of Ruby / Rails / RSpec or at least Merb / Ruby / RSpec. In the future when ASP.NET MVC and IronRuby are more mature or when the corporate world starts using ASP.NET MVC (read never ever!) or when I'm approached to work on an ASP.NET MVC project I might move back into ASP.NET. In the mean time I'd like to contribute to IronRuby as I work towards jumping my current technology stack. I've armed myself with Textmate (the E Text Editor) and a MacBook Pro is in my future. I'll get back to you on how this goes. :)

Page rendered at Tuesday, January 06, 2009 6:20:00 AM (GMT Standard Time, UTC+00:00)