2012-01-30 26 views
14

Dentro de una única solución de proyecto, la introducción de Áreas cuando tiene muchos controladores mejora la separación y permite que los módulos se copien fácilmente dentro o fuera de la solución. Sin embargo, en una gran solución empresarial, preferiría dividir la lógica en proyectos separados.MVC Áreas para empresas, ¿buenas o malas?

Por lo tanto, tiene proyectos separados de UI, Controller, SOA, Model y Repository. En este escenario, las áreas ya no tienen sentido, y además agregan un nivel superior extra a la URL, que a menudo no es necesario, aunque creo que puede omitir el área en la URL si mantiene sus controladores únicos, pero no lo es. eso un poco apestoso?

Quizás Las áreas son buenas para sitios de complejidad media o cuando el código del módulo se conserva mejor en una ubicación para que pueda ser copiado a otros sitios o eliminado.

+1

Quizás esto pueda ser de su interés: http://stackoverflow.com/questions/6656843/how-to-reuse-areas-controllers-views-models-routes-in-multiple-apps-or-websi. Te permitiría separar tu código en múltiples proyectos. –

+0

Creo que lo que está buscando son áreas portátiles, no áreas normales. –

Respuesta

13

No estoy seguro de si esa es la pregunta correcta. Las áreas pueden ser excesivas para proyectos pequeños, pero es difícil imaginar un proyecto no trivialmente grande que no use áreas para ayudar a mantener organizadas las clases.

que utilizar las áreas de MVC para la empresa y el amor varias cosas al respecto:

  1. Por lo general las personas están trabajando en una función dentro de un dominio dado (por ejemplo, búsqueda, pago y envío, etc). Si los nombres de área corresponden con los dominios de su empresa, Las áreas MVC ayudan a reducir el tiempo que lleva implementar una función, porque las clases relacionadas son fáciles de encontrar.
  2. El enrutamiento MVC le ofrece un montón de flexibilidad sobre cómo estructurar las direcciones URL. Solía ​​usar el Action Controller "pattern", pero para las URL que no son públicas, acabo de aceptar por completo la ruta predeterminada del Área para facilitar las cosas.
  3. Las áreas le dan la ventaja distintiva de estilo y, más importante aún, el comportamiento de encapsulado en un nivel de sección de sitio. Cada área tiene su propia configuración web donde puede controlar la página de vista base o agregar manejadores administrados.

Tienes toda la razón que los servicios deben estar en proyectos separados/soluciones en conjunto, que abstraen el acceso a datos a través de repositorios, en un entorno donde varios clientes pueden acceder a la funcionalidad de negocio común.

Pero las áreas de MVC son excelentes para proporcionar algún orden al caos de UI/enrutamiento a medida que crece un proyecto web, lo cual, para mí, es invaluable, independientemente del contexto.

+0

+1, excelente descripción de por qué las áreas son útiles. – kprobst

1

Primero, antes de responder, tenga en cuenta que esta es solo mi opinión y se trata principalmente de modelos.

De la forma en que lo veo, las áreas pueden ser tan malvadas ... Si tiene muchas áreas, su explorador de soluciones se convierte en un laberinto, y puede ser tan difícil encontrar algo.

Sugiero crear un nuevo proyecto de biblioteca dentro de su solución y poner la lógica ahí.

El mejor beneficio (y no es que pueda encontrar lo que busca con mayor facilidad) es que su aplicación se vuelve mucho más modular. Si crea una biblioteca y especifica una referencia para ella en su aplicación ASP.NET MVC, no puede cometer fácilmente un error e involucrar a la IU en la lógica.

Cuestiones relacionadas