Pregunta

Estoy escribiendo un documento de diseño y de las personas en mi equipo están dispuestos a hacer el movimiento de ASP.NET WebForm de ASP.NET MVC. Esto es muy bueno, pero tienen un tiempo difícil entender cómo MVC workswith en una de 3 capas (capa de datos, capa de negocio y la capa de presentación) de la arquitectura. ¿Podemos decir que el Modelo, Vista y Controlador son parte de la capa de presentación? Es la parte del modelo de la capa de negocio?

En pocas palabras, ¿cómo MVC y la arquitectura de 3 niveles pueden trabajar juntos? Gracias por la ayuda!

¿Fue útil?

Solución

Considero ASP.Net MVC para estar en la capa de presentación. El "modelo" que utiliza clases son realmente Visualización de modelos, que describen las estructuras de datos que necesitan sus puntos de vista. Toda la lógica de negocio y acceso a datos deberán mantenerse separados de sus modelos MVC y controladores.

Además, el general "Mejor Práctica" para MVC es mantener el código del controlador tan simple como sea posible, lo que normalmente significa la introducción de algunos para el servicio de la aplicación en la capa de negocio que maneja el trabajo pesado.

Otros consejos

La capa de presentación es su opinión.

La capa de datos es el modelo (se recomienda mirar el patrón Repositorio).

Los restos de la capa de negocios lo que es.

El controlador puede llamar a la capa de negocio para la funcionalidad cuando se carga el objeto, o el modelo se puede llamar a la capa de negocio para la funcionalidad cuando se solicita una específica ViewModel, pero por lo demás sigue siendo el mismo.

El controlador no debe tener la lógica de negocio expansivo en que - puesto que en su propia auto-contenida DLL

.

Esto es bastante subjetiva. Haz lo que tiene sentido para su equipo.

MVC puede ser bastante flexible y casi ningún marco MVC, en todos los idiomas, hace las cosas de la misma manera. Incluso en el espacio .net. FubuMVC, Spring.net, y MS MVC todo hacer las cosas de manera ligeramente diferente.

En primer lugar, usted no tiene que cambiar para MVC sólo porque ... Si tienes algo que está trabajando no creo que lo necesite.

Sin embargo, para que se trate, el modelo en el patrón MVC es cualquier tipo de clase que representa el problema de negocio, cosa que puede ser cualquier tipo de cálculo, las reglas de negocio o clases de acceso a datos. En el marco MVC hay una carpeta como una manera de proponer una solución para usted, para que pueda dejar las clases del modelo de allí, pero usted no tiene que hacerlo, se pueden crear diferentes proyectos para resolver sus problemas de negocio y que es su modelo. Así que aquí, se puede definir cualquier otro golpeteo que para el instante, se puede utilizar el modelo de repositorio y implemente que el uso de NHibernate o Entity Framework.

Las vistas son páginas web sólo para mostrar y recibir información desde y hacia el usuario.

Y el controlador se encuentra la entrada de su aplicación, las clases que van a recibir las solicitudes, llame a los modelos y redirección necesarias para la vista especificada.

Espero que podría ayudado.

n niveles con MVC funciona bien. Sólo tiene que seguir principio sólidos y varios otros y usted será capaz de mantener su aplicación débilmente acoplados y cohesionada.

Yo diría que leen los libros en MVC 3 y ver vídeos pluralsight.com son sus mayores recursos. No se puede ir a "hacer lo que funciona para su equipo." Si los compañeros de trabajo digamos llamado Johnny y Tim quieren poner un montón de lógica en un controlador, sólo porque con las prisas plazo corto plazo que "funciona para su equipo" que no hacen las cosas bien / bueno / inteligente.

he encontrado tantos artículos malas en Internet que da miedo cuántas personas se están condujo por un camino oscuro de la miseria. Sigue el camino feliz. Uso stackoverflow de opinión como el arte, pero consulte con artículos de MSDN, libros mvc, y pluralsight.com

Sé que es sólo un enlace de Wikipedia, pero hay algo de información aquí respecto n-tier vs. arquitectura MVC.

A "Tier" es una unidad de despliegue, mientras que una "capa" en MVC es una separación lógica de la responsabilidad en el código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top