2009-07-29 11 views
5

Diseñaré un par de aplicaciones web en breve. Probablemente se harán en asp.net mvc.¿Deben las aplicaciones web mvc tener 3 niveles?

En mis aplicaciones web existentes, hechas en delphi, la capa de acceso a datos está separada en una aplicación completamente separada, a veces ejecutándose en un servidor diferente. Esto se hace más por la reutilización del código que por razones arquitectónicas. Esto no será un factor en la próxima aplicación, ya que será todo nuevo.

¿Está teniendo una sobrecarga de aplicación de acceso a datos por separado en una aplicación de mvc? Ya separaré las clases de negocios en virtud del uso de MVC, y usaré un ORM para hacer la persistencia de DB.

Editar: Solo para aclarar; Utilizo el término nivel para referirme a aplicaciones físicas separadas, algo más que solo una separación o capa lógica.

+2

Si separa clases de negocios y DB para persistencia, ya tiene al menos 3 niveles. GUI/Logic/DB: este es de 3 niveles, por lo que no obtendrá n <3. Introduzca un nivel adicional si necesita más modularización, pero eso depende completamente de su aplicación. –

Respuesta

6

El término "Nivel" en mi experiencia generalmente se refería a seperations aplicaciones físicas, por ejemplo, Nivel de cliente & Nivel de servidor.

MVC - 3 se refiere a "Capas " con la preocupación es la separación alrededor de las 3 preocupaciones detalla Modelo (Datos), Vista (IU), Controlador (Aplicación Lógica).

Ahora que he hecho esta distinción con respecto mi terminología ..

está teniendo un exceso de aplicaciones de acceso de datos por separado en una aplicación MVC?

diría Sin (de nuevo dependiendo de lo que entendemos por la aplicación), no es una exageración, como puede suceder en realidad resultado real en un sistema más fácil de mantener. Su ORM posiblemente permitirá que se conecten las nuevas opciones de acceso a datos, pero ¿qué sucede si desea agregar un nuevo ORM? Tener una capa de acceso a datos (DAL) claramente separada permitirá una mayor flexibilidad futura en este aspecto de su aplicación.

Por otro lado, dependiendo de la escala y la visión de la aplicación que crea una opción de acceso a datos completamente independiente puede ser exagerada, pero en pocas palabras, la separación del DAL en diferentes ensamblajes es una práctica recomendada en la composición de una aplicación que implementa el patrón MVC.

Espero que esto ayude, si necesita más profundidad hacer comentarios.

0

Gran comentario Tobias.

Digo agregar capas suficientes para que tenga sentido para usted y lo haga más fácil de mantener. También para mantener una separación de preocupaciones.

2

Bueno, yo Gués que depende un poco de si se está hablando de niveles (Físico) o capas (lógicas)/proyectos.

En cuanto a la estratificación, puede ver algo como la arquitectura s # arp (code.google.com/p/sharp-architecture/) para ver un ejemplo de cómo lo hacen (han adoptado un enfoque bastante amplio para la estratificación).

Para un ejemplo de puntos de vista más minimalistas aquí, echar un vistazo a el blog de Ayende: ayende.com/Blog/

En cuanto a los niveles - Creo añadiendo innecesariamente niveles adicionales y poner Everthing sobre el alambre se acaba de golpear el rendimiento de su , a menos que necesite hacer esto por razones de capacidad. Obtenga las capas correctas y sepárelas en teirs a medida que necesite ajustar su capacidad (no debería tomar demasiada refactorización si ha separado bien sus preocupaciones).

Cuestiones relacionadas