2010-04-26 16 views

Respuesta

3

Estoy probándolos en un CMS usando las áreas para desgloses del contenido por tipo. Así que tengo áreas para Calendario, Noticias/Blog, Navegación y Páginas (todo se cae).

En mi breve experiencia hasta ahora, el beneficio de las zonas son:

  • hace obvio cuando se llama a algo de una parte separada de la aplicación (es decir, en un RenderAction).
  • Hace que sea más fácil ver la conexión entre Modelos, Vistas y Controladores para esa parte de la aplicación, ya que ya no están todos mezclados.
  • El registro de las rutas para el área está justo allí, ya no todas juntas.

Creo que el reconocimiento del primer punto es importante. Para algunos, el trabajo adicional para hacer RenderAction y llamadas similares a otras áreas pueden ser un factor decisivo. También he notado que el enrutamiento con áreas puede ser sutilmente diferente: confié en un controlador registrado en web.config pero la ruta ya no funcionaba después de mover mi ruta general a un área. Tuve que agregar un ignorar explícito para el controlador de imagen.

3

Este es el top hit cuando googling para "Áreas MVC2":

zonas proporcionan un medio de agrupar controladores y vistas para permitir construir subsecciones de una gran aplicación en relativo aislamiento a otras secciones. Cada área puede ser implementada como un proyecto separado ASP.NET MVC que puede ser referenciada por la aplicación principal . Esto ayuda a a administrar la complejidad al construir una aplicación grande y facilita a múltiples equipos trabajando juntos en una sola aplicación juntas.

5

Para un ejemplo concreto de cuándo usar áreas, considere un sitio de comercio electrónico. Puede tener sus controladores normales para la parte orientada al público del sitio web, así como un área de "administrador" para administrar productos, categorías, etc. De esta forma, puede tener dos clases de productos completamente diferentes que tengan distintos métodos de Detalles(). (uno para poblar una vista pública con detalles del producto, y otro para usuarios administrativos, que pueden tener estadísticas sobre ventas, etc.).

+0

Esto es exactamente cómo mi implementación de Áreas trabaja en el comercio electrónico CMS construí para mi empleador. Tengo un ProductsController tanto en el área predeterminada como en mi área de administración. Una ventaja adicional de esta técnica es que ProductsController frontal contiene cero acciones de manipulación de entidades y eso significa que tengo un control muy firme sobre cuándo y dónde se pueden editar los datos (solo en el área de protección protegida). –

+0

buena explicación – raklos