Ever since I started programming with ASP.NET, I've been using Web Forms. The Web Forms framework wraps the whole web page in a single form and handles everything via post backs and events from there. Wiring the navigation between pages can become a mess quite quickly. It also provides a code-behind file which handles the displaying logic for the page... in theory. In practice, the code-behind files are just a gateway for putting business logic in them, they are evil.
The new technology
I've been looking at the ASP.NET MVC framework and I'm really interested to try it out. We're about to start a big project so since we're probably going the MVC route in the future, now could be a good time to start working with MVC. Although, there are a few things to consider before switching to a new technology:
- Why do we need to use a different technology?
- Will we be able to do what we were doing before with the new technology?
I partially answered the first question in the first part of this post, Web Forms has drawbacks. However, MVC has drawbacks too, we just don't know them yet. Learning a new technology is fun, but the client doesn't care how much fun we have while doing their project, they only care about the result. The good news is that MVC performs really well, especially because it makes it harder to do bad things (although code-behind files are back in the latest development builds).
Now, we only need to be able to do what we used to be doing, that is making web pages. The first thing we wanted to replicate was building templated user controls (like a repeater or grid view). Fortunately, someone (Telerik) has been there already and managed to solve that little issue for us. You can even download the source code for the Telerik extensions for ASP.NET MVC.
ASP.NET looks promising, we only have to watch ours backs and not start programming in MVC instead of into MVC.
Programmers who program "in" a language limit their thoughts to constructs that the language directly supports. If the language tools are primitive, the programmer's thoughts will also be primitive.
Programmers who program "into" a language first decide what thoughts they want to express, and then they determine how to express those thoughts using the tools provided by their specific language.
Source: Code Complete