MVC Storefront Part 26: Finis

This is the last episode in the MVC Storefront series and this might seem a bit odd. It's definitely not the last screencast I'll do with respect to ASP.

This is the last episode in the MVC Storefront series and this might seem a bit odd. It’s definitely not the last screencast I’ll do with respect to ASP.NET MVC, but I think I’ve gone about as far as I can go with this series.

Shift In Perspective
The goal of the series has been to explore ASP.NET MVC and the various disciplines that compliment it. We’ve covered all kinds of developer goodness, including Test-driven Development, Dependency Injection, and (lightly) Domain Driven Design. You’ve seen me build, break, store learn, and refactor – all the cycles that most applications go through in their early lifetime.

At this point the Storefront is changing shape. I talk a bit about this in the video – but I’d like to add to it a bit. I’ve tried to make this as real-world as possible, which is hard when I didn’t really have a client (especially when it came to trying to use DDD). This is has worked for the most part, but I’ve reached a point where it’s no longer viable to keep developing in this way.

We’re altering the Storefront right now to be more of a “platform” and this is a lot different from building out a dedicated client application. We have to build in extensibility, theming, and other things that might be of interest, but in the end don’t really apply to “real world” development.

I’ll have a lot more to say about this at MIX 09 (details in the future) so hopefully you’re coming!

Source Code
Many people have been asking for a drop of the source – and I’m hoping to have it soon. There’s a lot more to do – including Code Analysis and documentation (which I hope to capture in a screencast). I want to get you the source but it’s goin to be a week or two before I can.

The Presentation Model
The first part of the video I spend about 8 minutes or so “wrapping up” the series and offer some final thoughts on the journey so far, but I wanted to tell you there is a fair bit of code in this last video as well.

One question I get asked a lot with respect to ASP.NET MVC is “how do you handle a page with a lot of different data on it” – like the front page of a Blog for instance. I give a possible solution to this with something I’ve just implemented with the Storefront: The Presentation Model.

The Presentation Model is something Fowler talks about as a way of basically segregating your UI decision “stuff” into a central location so that when you branch/change you UI, your don’t need to reproduce all your view logic. This may initially seem like “dude how often would I do that” but if you think about the advent of ASP.NET MVC and how much code you’d need to replace – well you know where I’m going. Centralizing this stuff is a pretty nice design choice, and it also allows you to “go thick” if you want to leverage Silverlight in the future.

Final Thoughts on DDD
In the beginning I finish up my overall thoughts on DDD and where it’s taken me and the MVC Storefront in general. I had wanted to do a bit more with respect to DDD, but in the end thought it would be a bit redundant. I’ve been lucky enough to do a couple of podcasts on the subject:

Hanselminutes Podcast #140: I talk with Scott about learning DDD

Alt.NET Podcast #15: Domain Driven Design

In the first podcast (with Scott) I talk a bit more about the learning of DDD – not really DDD itself so it’s sort of a "summary” if you will. In the Alt.Net podcast I go a bit deeper into what I’ve learned and the philosophy behind it all.

I had intended on talking a bit more about it with the Storefront series, but to be honest I just don’t think I know enough about it to go any further. For now I know enough to understand that there are some things that will work well (and I covered those last time) and some things that I just don’t need since I’m not building rockets.

To me that’s the goal – knowing enough to know when you don’t need it.

That’s where I’ll leave off with this series: the importance of learning and always trying to improve what you know. Knowledge isn’t a weapon – it’s a gift and one that you should share and seek.

Download Here (35Mb ~ 27 minutes)