Pregunta

Saludos,

Pido disculpas de antemano por no haber investigado esto lo suficiente como para responder la pregunta por mí mismo, pero imagino que me tomaría algo de tiempo y preferiría saber ahora antes de invertir más tiempo en aprenderlo. No pude encontrar nada en mi investigación inicial ...

¿Por qué usar ASP.Net MVC si ya está usando una arquitectura de varios niveles (capa de datos, capa lógica, capa de presentación)? Aparte del hecho de que el controlador tiene más potencia que la capa lógica.

¿Estoy en lo cierto al pensar que puedo usar nHibernate y todas mis clases, entidades y asignaciones de acceso a datos en la parte Modelo del MVC?

Al usar controladores, ¿es mejor separar gran parte de la lógica en una clase separada para poder llamarla desde múltiples controladores? ¿O puedo llamarlos desde los propios controladores, teniendo en cuenta el hecho de que no quisiera que todos fueran Acciones, solo métodos normales?

Gracias

¿Fue útil?

Solución

MVC no es para reemplazar N-Tier, es una forma de organizar la capa de presentación.

No diría que el controlador es más poderoso que la capa lógica. En cambio, el controlador (como parte de la capa de presentación) aún debería llamar a la capa lógica.

Los controladores solo deben preparar datos para vistas y manejar acciones desde vistas. Aún debe usar su BLL.

Otros consejos

  

Sí, las entidades de NHibernate pueden (y deberían ser) pasar a las vistas.

Esto te meterá en problemas. Debería usar DTO aplanados y seguros para nulos, por ejemplo, ver modelos.

Damien, quizás quieras leer estas 2 publicaciones:

El controlador de grasa

Una vista arquitectónica del marco ASP.NET MVC

N-tier es un patrón archititectual , para permitir la reutilización, la separación de preocupaciones y la escalabilidad de las áreas clave de su aplicación. Las capas que no son de UI (Business, Data, Facade, etc.) deben someterse a pruebas unitarias y ser independientes de UI.

La capa de IU es solo una de estas capas, sea Silverlight, ASP.NET MVC, formularios web, etc.

MVC, como MVP es un patrón de diseño que permite una mejor capacidad de prueba de la capa de interfaz de usuario. ASP.Net MVC es un marco listo para usar que admite y aplica este patrón. El patrón estaba alrededor y en uso mucho antes de este marco.

Pero esto es simplemente una opción de capa de interfaz de usuario, no debe haber interacción con bases de datos, servicios, etc. en los controladores, controlan el estado de la vista utilizando el modelo, no deben controlar la lógica de negocios, la peresistencia, las transacciones, etc.

Para responder a su pregunta sobre por qué usarlo si ya va a utilizar varios niveles, es para crear URL más organizadas y amigables para los motores de búsqueda. Además, es más un patrón estándar que los otros patrones tienden a estar en ASP.Net. Eso lo hace más amigable para los desarrolladores para aquellos que ya están usando MVC en otras plataformas.

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