Alex Mueller on Software and Technology 
Friday, December 16, 2005

I am looking for a framework to drive development for a new site to be written in ASP.NET 2.0. In my search, I have been reading up on implementing MVC in ASP.NET. It seems that the consensus is that the current MVC implemented in ASP.NET is page based using a front page controller pattern, not application based, making the need for integrating a true MVC pattern a necessity. The implemented Java version of the MVC, known as MVC2, uses Java Beans for the model, JSP's for the view, and a Servlet for the controller. Java’s version is widely accepted, while one solution for ASP.NET has yet to emerge.

I am looking for a framework for ASP.NET that compares to STRUTS, Expresso, and Maverick for J2EE. I have seen a few mentioned, and read further on others. There is a Maverick.NET, but I have not seen much development on it since 2003. Microsoft has introduced the User Interface Process (UIP) Application Block , which is based on MVC, where the model's independency allows for it to be built and tested separately from the view. Natty Gur has a project leveraging MVC2 and ASP.NET, known as NWAF, but this does not appear to be availible at this time. Finally, the last option I found is Castle's MonoRail, which is an MVC web framework inspired by Ruby on Rails.

MVC to me is basically an N-Tier architecture. Three divisions, model, view and controller, where the system can replace any piece with a new one, and remain functional. The controller is a contract, and both the view and model must abide by it. If this is implemented properly, the ability to swap an html view for a smart client view should be available. At the same time, the model should also be interchangeable.

A few observations up to this point. One can argue that ASP.NET uses MVC, and the page-codebehind relationship is an example of it. Decoupling the presentation layer and domain logic becomes more of a task in ASP.NET. One can also argue that ASP.NET does not use MVC, and in order to do so, three distinct layers need to be created representing the model, view, and controller, where the page-codebehind is the view that accesses the controller. Implementing MVC in ASP.NET will require detailed attention to the three divisions, specifically, following the rules of the MVC paradigm. Whereas, if using a pre-built, MVC framework, breaking the rules of the MVC becomes more difficult. Depending on the nature of the project, using MVC may or may not be the most desirable solution.

At this point, I am most interested in MonoRail and Microsoft's UIP Application Block. Are there any other frameworks out there for ASP.NET that implement the MVC pattern?

Friday, December 16, 2005 4:56:21 PM (Mountain Standard Time, UTC-07:00) | Comments [0] | Technology#
MuellerDesigns.net
Search
On This Page
PowerShell Documentation
Automate Daily Tasks with PowerShell
SketchPath XPath Editor
Software Testing - Revisited
Architecting Buildings and Software
NBCOlympics.com with Silverlight
Marker Interfaces and C# Attributes
The Phone Screen
Working with ASP.NET MVC and MvcContrib
Thanks to BDD
Twitter
The Opposite of a Singleton?
Removing Duplicate Code in Functions
Add Vista Themes to Longhorn
Changing File Ownership In Vista and Longhorn
Most Popular
JavaScript ReplaceAll Functionality
What is polymorphism?
What is composition?
Sorting with IComparable and IComparer
Applying the Observer Pattern in ASP.NET
MVP in ASP.NET
What is abstraction?
What is encapsulation?
What is a class?
What is inheritance?
Authentication in ASP.NET
Calendar Controls
XPathNavigator.CheckValidity new for 2.0
SQL Server 2005 Connection Issues
Auto-attach to process '[####] aspnet_wp.exe' on m...
What is an object?
FreeTextBox
VMWare and VPC
An Example of Reflection using C#
Caring for the Team
Archive
Links
Categories
My Local Blog Map
Blogroll
About
Powered by:

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2009
MuellerDesigns.net

Sign In

Help Those In Need
The Hunger Site
Ronald McDonald House Charities (RMHC) of Western Washington & Alaska