2012-06-22 15 views
5

Tengo la siguiente configuración del proyectoASP.NET MVC 3 Estructura - Ir a ver en otro proyecto

Proyecto A (principal)

  1. negocios
  2. datos
  3. Ver (asp .NET MVC 3 proyecto)

proyecto N

  1. negocios
  2. datos
  3. Ver (MVC 3 proyecto asp.net)

¿Cómo puedo llamar de Proyecto A la vista de Proyecto N y N de regreso a A. En esencia lo que estoy intentar hacer es empaquetar cada Proyecto N para tener su propio MVC individual, ya que proviene de diferentes fuentes y conectarlo al proyecto principal y luego simplemente hacer que navegue a la vista correcta.

¿Se puede hacer esto? ¿O hay una mejor manera de hacer esto?

Respuesta

0

Debo aplicar otro enfoque si es posible. si entendí correctamente, esos proyectos son de alguna manera ike plugins pero no son aplicaciones independientes. También ahora están sobre otros para que estén acoplados. Es, digamos complicado, pero usaría solo 1 proyecto asp.net mvc (la interfaz web). Todos los bits de la interfaz de usuario que pertenecen a otros proyectos los convertiría en ayudantes (prácticamente widgets). Esto significa que cada proyecto contiene solo los ayudantes que se usarán para construir una vista.

Creo que es un problema arquitectónico si solo quiere mantener las vistas en cada proyecto solo para alojarlas en un ensamblaje diferente. Yendo por el camino de los widgets, puede parecer que mkore funciona, pero creo que obtienes el mayor control y el nivel de separación que deseas. Lo único es que no tiene definidas las vistas completas, pero ¿por qué querría tener vistas completas (parciales, diseños) en lugares separados si se usarán en un solo lugar?

Ahora, si cada proyecto es de hecho un complemento, independiente de otros complementos, ir con vistas compiladas es la mejor manera. Pero si el Proyecto B conoce la visión del Proyecto N, entonces creo que la solución anterior es más adecuada. Esa o toda la aplicación está demasiado sobrediseñada. La separación es buena cuando no crea una jungla completamente nueva para navegarla.

+0

Hola Mike, creo que has entendido mi idea. Creo que es casi como el enfoque de Widget que estoy tomando y, aunque está un poco más acoplado, aún puedo cambiar la fuente de datos y simplemente actualizar los ensamblajes sin volver a compilar todo el sitio web. – fes

3

Puede escribir un virtual path provider personalizado. Aquí hay un nice blog post que muestra un ejemplo de dicho proveedor de ruta virtual que le permite incrustar vistas Razor en ensamblajes como recursos y reutilizarlos en múltiples aplicaciones.

Desafortunadamente, sin un proveedor de ruta virtual personalizado, no puede cruzar vistas de referencia entre múltiples aplicaciones ASP.NET MVC. Esto simplemente no está permitido por el proveedor predeterminado que busca vistas solo dentro de la aplicación actual.

+0

Gracias Darin, estoy echando un vistazo a los artículos ahora. La primera impresión es que parece bastante complicado, así que veré si es factible. – fes

+0

También puede consultar el generador Razor http://razorgenerator.codeplex.com/ para obtener una forma fácil de compilar vistas en ensamblajes. – MikeSW