de dentro a fuera, estas son nuestras capas de aplicaciones MVC:ASP.NET MVC: ¿Dónde ensambla el modelo de vista para una vista?
- MS SQL/Tablas/Vistas/procedimientos almacenados
- Entity Framework 4.1 (ORM) con la generación POCO
- Repositorio
- servicio (recuperar) y Funciones de control (Guardar)
- Routing -> controlador -> Razor Ver
- (cliente) jQuery Ajax con Knockout.js (MVVM)
Todo está bien hasta que necesito para crear un único modelo de vista para el paso 5 para alimentar tanto a la vista de la maquinilla de afeitar, así como el JSON/Knockout ViewModel:
- cabecera que incluye Desplegar opciones de la lista y las opciones para los campos siguientes
- artículos - una serie de lo que enviamos al cliente que se convierte en el modelo de vista
Puesto que el controlador no tendrá acceso al repositorio directamente, Qué significa esto creo un servicio para cada un ¿Alguna vista que permita editar contenido? Necesitaré obtener el POCO del repositorio más todas las opciones para cada tipo de campo, según sea necesario.
Parece redundante crear servicios separados para cada vista. Por ejemplo, un modelo de vista para editar una dirección y un modelo de vista separado para editar una propiedad de bienes raíces que también tiene una dirección. Podríamos tener una docena de formularios que editen la misma dirección POCO.
Para hacer que esta pregunta sea más fácil de responder, ¿está permitiendo al controlador acceso directo a los repositorios una abstracción con fugas?
¿Estás disfrutando de un golpe de gracia? Siempre he querido encontrar una razón para usarlo, y nunca lo hice. –
@nathan Debes consultar este video http://channel9.msdn.com/events/mix/mix11/frm08. Ayudará a encontrar razones para usarlo. Reduce el código a aproximadamente la mitad. –