Using MVC in ASP.NET
The last couple of weeks at the client have been trying for many reasons. We released our code to production, which was a cool thing, but what I didn't realize coming into the project was that the 3 sections of the site that was being rewritten in ASP.NET needed to integrate with the current ASP pages that the rest of the site was still coded in. Needless to say, that was a nightmare, and I felt a bit helpless at times because the ASP code was fairly typical of ASP-based projects - very twisted at times and if you changed one thing it could have a really bad ripple effect across the rest of the pages. So I felt like I couldn't help out as much as I wanted to because I didn't have as much historical context as the rest of the developers did.
One thing I did notice, though, is that our ASP.NET code is dangerously close to looking like old ASP code. It's hard to debug, and it's hard to maintain. One change can cause all sorts of problems, and that's not a good thing. During the next sprint we're going to start using an MVC approach to our new code. We really have to do this. The current duct-tape approach won't sustain itself for longer, and having a better separation of concerns will be a good thing.
The problem is that there's a number of frameworks out there to facilitate this, but I've never used any of them. Like MonoRail, or the UI Application Block...I'm sure others can list even more. Fortunately, the next set of tasks revolve around making an internal administration app so we can pick one (I'm leaning towards MonoRail right now) and if it falls flat on its face we don't impact millions of users (the client's site is a big web site so they get tons of traffic).
If you have other suggestions for MVC in ASP.NET I'm open for suggestions. A client I was at a couple of years ago used a MVC-like approach for a WinForms application and it made things vastly better to debug and maintain, so I'm hoping we can make things better here in the ASP.NET world.
* Posted at 07.06.2005 11:24:08 AM CST | Link *