Nunca usar modelos, solo modelos de vista


8

Estoy comenzando un nuevo proyecto MVC 5 desde cero. Estoy usando EF 6 (Base de datos primero) e Identity 2.0.

Mi solución consta de 3 proyectos diferentes: Datos (donde tengo un .edmx y mi contexto de base de datos), Recursos (para fines de localización) y Web (el proyecto web en sí).

Estoy usando ViewModels para todas mis vistas, por defecto. Cada vez que creo una nueva vista, lo primero que hago es agregar el ViewModel (si los ViewModels están conectados entre ellos, los guardo en el mismo archivo; por ejemplo, todos los ViewModels relacionados con las cuentas de usuario que mantengo en AccountViewModels) . Hasta ahora, esto ha hecho las cosas muy simples y ha resuelto varios problemas que tenía antes.

Pero me pregunto, ¿tiene sentido para mí usar Modelos? El único que estoy usando en este momento es el de Identity, que se crea de manera predeterminada y contiene ApplicationUser y ApplicationDbContext, tanto específicos como necesarios para Identity. Fuera de eso, es todo ViewModels.

  • ¿Mi proyecto de Datos se consideraría el "Modelo" para mi aplicación? Por lo tanto, de hecho estoy usando un Modelo, solo que en lugar de ser un grupo de clases que mantengo en Web \ Modelos, es un proyecto separado donde se almacenan los "Modelos" (objetos BL creados por la Entidad). Creo que sí, pero no estoy seguro.
  • ¿Es este un enfoque correcto, o podría haber problemas potenciales en el futuro? Es mi primera versión de la programación web, por lo que agradecería cualquier consejo.

Respuestas:


9

¿Mi proyecto de Datos se consideraría el "Modelo" para mi aplicación?

Sí, eso es exactamente lo que se supone que es Model.

¿Es este un enfoque correcto?

Yo creo que si.

o podría haber problemas potenciales en el futuro?

Definitivamente lo habrá. Pero la descripción de su arquitectura es tan vaga que solo podemos adivinar qué tipo de problemas encontrará.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.