Using Microsoft ASP.NET MVC with DooDads
I have been using DooDads,
a free, open source ORM architecture for a while now. I like that I can easily use
it with any database structure, not matter how bad it is.
When I come across such designs DooDads is the tool that allows me to create a layer
of abstraction pretty fast into the application, that will later on allow me to make
changes and refactor the database with minimal impact in the upper layers.
I’m also a sucker for the MVC pattern and I downloaded as soon as was avalable, I
have been playing around with it and one of the things I wanted to do was test it’s
extensibility using my favorite ORM tool.
h3 Setting things up.
So I fired up VS and create a new MVC application.
I create a db with one table and I call it Movies.
I open MyGeneration and
generate the code for the business entity for the table and the Stored Procedures
that the object will use.


h3 The Model.
Then I added the code into the Model folder in the solution opened in Visual Studio
2008 and create the concrete class for the Movie object, Doodads generated code use
abstract classes.

I like to separated the generated code from my implementation using two different
folders but you don’t need to do so if you don’t want. I think that is easier to maintain
this way.
My next step was to modify the menu to create a Movies item, so I opened the master
page and added the following line.
You will need to add the connection string as and appSetting in the web.config
for Doodads to pick it up. The key should be dbConnection.
h3 The Controller.
Them I added a reference to MyGeneration.Doodads.dll and them create a new Controller
class named MovieController

The code for this class is very simple. I added the using statement for the namespace
of my Model classes and I create a custom ViewData object using the new simpler properties.
Declaring the type of the property will give me a strongly typed ViewData in the View.
h3 The View.
I created a folder called Movie under View and inside a Movie page (I made this page
of the MVC Content page type to use the same master page).


I added a using for the controllers namespace and set the type of the ViewPage
object to my custom viewdata object.
I them opened the aspx page and added the following.
And that is all you need.
