Estoy aprendiendo ASP.NET MVC y descargué un par de aplicaciones de muestra. MusicStore, etc ...Confundido con Model vs ViewModel
Vengo de un fondo wpf donde teníamos el Patrón MVVM. Me di cuenta de que usaban el concepto de modelo y ViewModel.
En MVVM es bastante claro que vincula la vista al ViewModel que inyecta el modelo en viewModel. En MVC tiene un controlador, pero no estoy seguro y confuso cómo los une a todos, ya que no puedo ver el modelo se inyecta en el modelo de vista
que tienen la siguiente estructura
- MyCompany.Entities.dll (Todos los modelos en este espacio) EG Producto
- MyCompany.Dal.dll (Todos los repositorios en este espacio)
- MyCompany.Services.dll (llamado por MyCompany.WebUI.Controller llama MyCompany.Dal)
- MyCompany. WebUI.MyApp
- MyCompany.Tests
De algunos de los ejemplos que he visto sus actos como un modelo ViewModel.Am en lo correcto?
Tomemos un controlador que tengo algo así como
public class ProductController
{
public ProductController(IProductRepository productRepository)
{
//omitted as not relevant
}
}
public class ProductVM
{
public ProductVM()
{
// Shouldn't we inject the model here RG Product
}
}
¿Hay algunos ejemplos de N-Capas por ahí que pueda referirse a? ¿El concepto de ViewModel es válido en MVC? ¿Cuál es el estándar?
Gracias por cualquier sugerencia.
Hola, gracias por su respuesta, ¿está diciendo: no tenemos modelos dentro de nuestra aplicación web. Tenemos ViewModels a los que se refieren los controladores y luego inyectamos el "Modelo" de dominio en el modelo de vista, para que podamos agregar anotaciones y validación para nuestros modelos de vista. ¿Tiene un ejemplo rápido en alguna parte o un enlace nuestro está estructurado? Le estaría muy agradecido. Gracias – user9969
Eso es ** exactamente ** lo que estoy diciendo, bien hecho resumiéndolo en una sola oración. Ahora, por supuesto, su aplicación web aún deberá ** hacer referencia ** al ensamblaje del modelo de dominio, ya que necesita mapear entre ellos. Pero el truco es que sus puntos de vista no tienen idea de sus modelos de dominio, se unen a ViewModels. Ejemplo decente aquí: http://weblogs.asp.net/shijuvarghese/archive/2010/02/01/view-model-pattern-and-automapper-in-asp-net-mvc-applications.aspx. Solo busca en Google "asp.net mvc view model pattern" – RPM1984
También agregué un ejemplo muy simple con AutoMapper. – RPM1984