MonoRail, MVC and ASP.Net
I run into this post, comparing MonoRail and ASP.Net 2.0, which I thought was interesting. I'll start by saying that I mostly disagree with the conclutions. Rodel is making a mistake by comparing the feature sets. The difference between ASP.Net & MonoRail is not something that you can break down by features. They are mostly comparable anyway. The issue are with the level of control, the amount of abstraction you have and the programming model you are working with.
The problem with ASP.Net is when you start to deal with complexity. For simple stuff, the tools are quite good, but they just don't scale when you get into complex enterprise applications. Then you either need to try to refactor the code that the tools left (which is often not easy) or writing it again. It's better if you shun the tools from the start, but then you also lose a lot of the things that make ASP.Net easy to work with.
All the good tools are located at the highest abstraction layer, and that is not a good place to be if your scenario is a complex one. MonoRail starts at (nearly) the lowest level that ASP.Net has, and builds from there, while not trying to constrain the developer for a certain way of building application. MVC is a much nicer model to work with than the more common two tiered approach of throwing datasets to a form and adding some binding code.
MonoRail has its own set of problems, lack of controls is something that a lot of people seems concerned with, as well as having to type the code by hand. The first issue can solved by view components easily, and the second one is a plus, as far as I'm concerned. The web is not a Windows application, and we shouldn't treat it as such, it's a totally different model and trying to abstract that away cause more harm than good.
How often did you need to check the ASP.Net lifecycle, for instance? Or had a problem because ViewState did something odd? The Law Of Leaking Abstractions really hits ASP.Net hard when you're trying to do anything sophisticated, mainly because it's trying to do so much for you that you need to really understand what it is doing, and then you need to understand how to make it want what you want. MonoRail doesn't attempt to hide complexity from you, and this mean that demo apps aren't as nice to build, but when you get into the realm of real applications, you'll feel the difference in the amount of work you need to do to change stuff around, and in your ability to respond to change.
Comments
Comment preview