ASP.NET MVC: what mechanic returns ViewModel objects?

Posted by Dr. Zim on Stack Overflow See other posts from Stack Overflow or by Dr. Zim
Published on 2010-04-08T05:59:26Z Indexed on 2010/04/08 6:03 UTC
Read the original article Hit count: 468

As I understand it, Domain Models are classes that only describe the data (aggregate roots). They are POCOs and do not reference outside libraries (nothing special).

View models on the other hand are classes that contain domain model objects as well as all the interface specific objects like SelectList. A ViewModel includes using System.Web.Mvc;.

A repository pulls data out of a database and feeds them to us through domain model objects. What mechanic or device creates the view model objects, populating them from a database? Would it be a factory that has database access? Would you bleed the view specific classes like System.Web.Mvc in to the Repository? Something else?

For example, if you have a drop down list of cities, you would reference a SelectList object in the root of your View Model object, right next to your DomainModel reference:

public class CustomerForm {
    public CustomerAddress address {get;set;}
    public SelectList cities {get;set;}
}

The cities should come from a database and be in the form of a select list object. The hope is that you don't create a special Repository method to extract out just the distinct cities, then create a redundant second SelectList object only so you have the right data types.

© Stack Overflow or respective owner

Related posts about asp.net-mvc

Related posts about ddd-repositories