Setup

Model View Presenter links

Some of you may be wondering why I went MIA for for about 8 weeks. Obviously, I got busy. There were two forces sucking up all my time over the last couple months.

The largest one was a complete rewrite of the some of the functionality in the digital locker. The existing code base in the digital locker (and pretty much all of Windows Marketplace) is extremely monolithic. As a monolithic block of code it is extremely difficult to fully comprehend, enhance both tactically and strategically and it is completely impossible to unit test.

Since I was tasked with this very large feature modification for the digital locker, I took the opportunity to go out and learn the latest in web application design especially as it relates to UI. This was vital since I’ve never really drilled down into UI design and how it should interact with data. You can actually see me starting the learning process back here on August 26th. It was pretty clear (at that point in time) that Model View Presenter (MVP) was the predominant leader in UI design for ASP.NET based web applications.

Yesterday, I presented my two months of learning about the “best way to design web applications” to my team in an hour+ meeting. The functionality for the digital locker is basically complete and we are into integration testing so I had plenty of code to reference throughout the presentation. Unfortunately, I don’t feel comfortable sharing the code with the outside world so instead, I’m going to share the links that I found most useful to learn about MVP and how to use it in ASP.NET based web applications.

Phil Haack had two great blog posts that where at exactly the right level of complexity when I first started.

At the same time I was reading through Phil’s comments, I was looking for more detailed information. Billy McCafferty showed up a number of times and these two links where referenced much as I tried to be understand the minutiae of MVP.

While I was creating my presentation for yesterday I found the following blog entry. I so wish I had found this earlier.

Those top four links made up the bulk of my reading and re-reading over and over. The following links were stuff I kept being looped back to so reading them is encouraged but I liked the way the information was presented above far better.

Now, on October 14th Scott Guthrie announced a new MVC framework for AS.NET. I am extremely excited about what they are doing here because when I first started reading about UI design in ASP.NET it was clear that the “state of the art” was being kinda’ kludged into the ASP.NET Page/PostBack system. There were moments when I wondered what it would take to move the digital locker to Ruby on Rails. <smile/> MVP ended up working out just fine but it is great to see ASP.NET adapting to support MVC and TDD more natively.

Anyway, we have a decent infrastructure in place now. When the ASP.NET MVC Framework is finally released I’ll have a hard decision to make about what to do with our existing architecture. In the meantime, there is plenty of work to do and I’m now in position to pursue 95% code coverage with my unit tests (something that was completely impossible before).