2009-07-29 35 views
16

Queremos dividir nuestra gran aplicación web asp.net mvc en múltiples proyectos de Visual Studio para que cada equipo pueda independientemente en su proyecto de estudio visual.Múltiples proyectos de ASP.NET MVC que se crean como aplicación ASP.NET MVC única

estructura deseada es:

  1. aplicación ASP.NET MVC que se encarga de la interfaz de usuario de base
  2. Módulo 1 - Proyecto de VS (¿Esta necesidad de ser un MVC aplicación ASP.net o .dll?)
  3. módulo 2 - Proyecto de VS (¿esta necesidad de ser un MVC aplicación ASP.net o .dll)
  4. así sucesivamente ....

Cada módulo debe contenerlo'? s controlador propio & vistas que son responsables del funcionamiento del módulo. T

Cómo dividir la aplicación ASP.NET en varios proyectos y luego combinarlos como un único sitio web durante el proceso de compilación?

Respuesta

8

ASP.NET MVC V2 tiene una característica llamada Las áreas que le permite tener proyectos separados referenciados por la aplicación principal. Echa un vistazo a ScottGu's post.

+1

Por lo que yo puedo decir, esto ya no es compatible en MVC3. –

+1

Las áreas son difíciles de gestionar si tenemos cientos de vistas en el sitio. Básicamente, cuando tenemos 1000 archivos cargados en Visual Studio, el proceso de compilación apesta. Toma demasiado tiempo para construir. Así que dividimos nuestro sitio en varios proyectos asp.net y los fusionamos en el proceso de compilación como mencioné en el comentario a continuación: http://stackoverflow.com/questions/1200424/multiple-asp-net-mvc-projects-that-builds -as-single-asp-net-mvc-application/1362621 # 1362621 – Gopinath

2

Una herramienta que puede estar interesado en ver que se llama ILMerge

Esta es una herramienta que le permitirá unir varios NET en un solo archivo DLL. Se podría usar para combinar el resultado de sus varios proyectos en una sola DLL para la implementación.

No lo he probado nunca con Asp.Net MVC y no estoy lo suficientemente familiarizado con la arquitectura MVC para decir si funcionará o no para su situación. Pero es probable que valga la pena intentarlo.

0

Si su aplicación no requiere áreas, y su objetivo es solo permitir la independencia del equipo, ¿por qué no simplemente usar un mejor sistema de control de código fuente? A menos que tengas módulos realmente independientes, es apropiado administrar sucursales a través de subversión.

3

El problema se solucionó con sólo la creación de múltiples proyectos de MVC y la fusión de la salida al final por simple copiar y pegar & :)

aquí es la estructura que seguimos:

  • MyApp.Web. Shell (solo contiene temas, CSS, JS & imágenes necesarias para la aplicación web)
  • MyApp.Web.Home
  • MyApp.Web.UserManagement
  • MyApp.Web.DeviceManagement
  • MyApp.Web.ContentManagement
  • ..... etc ...

Al final estamos utilizando scripts de creación para combinar la salida de todos los proyectos y generar el archivos necesarios para que se ejecute la aplicación web total.

Si necesita ayuda en la implementación de solución similar, ponerse en contacto conmigo en link text

0

Una forma en que manejamos esto en mi trabajo anterior era construir una aplicación maestra 'controlador'. Esta aplicación se implementó y se hizo pública. Su trabajo consistía en leer la URL entrante y, en función de un conjunto de reglas de asignación en archivos de configuración, mapear esa URL a otras aplicaciones MVC que se ejecutan en el mismo servidor. Esto nos dio muchas opciones, como la posibilidad de ejecutar las aplicaciones de respaldo en diferentes servidores de la granja si queríamos realizar un balance de carga crudo. Debe administrar cosas como la autenticación en las múltiples aplicaciones (si está usando la autenticación).

Básicamente, esto le da la capacidad de tener tantos diferentes aplicaciones MVC como sea necesario que se ejecuta en los servidores de todos con el mismo controlador frontal (esencialmente)

0

Puede usar un buen control de fuente y hacer que los equipos respectivos verifiquen en qué necesitan trabajar.

esta manera usted tiene sólo una DLL en tiempo de compilación ...

Cuestiones relacionadas