8

Me he estado preguntando cuál es la mejor manera de hacer esto durante un par de días y me pregunté qué pensaban los demás.ASP.NET MVC 3 - Manejo de varios dominios y uso compartido de un único código base

Queremos reconstruir y mejorar todas nuestras empresas sitios web para ASP.NET MVC 3 y el uso de una plantilla común en todos ellos (en su mayoría); ya tenemos un sitio en MVC 3 que será el sitio donante para los demás.

Al principio solo iba a copiar/pegar el proyecto, reemplazar todo el contenido con contenido relevante para cada sitio y terminarlo, pero esto haría más difícil actualizar las plantillas/hojas de estilo/ayudantes en el futuro - solo tener un puñado de sitios web, por lo que no es un gran problema.

Idea 1

Lo que creo que me gustaría hacer sería tener un solo proyecto que contiene todos los sitios web, posiblemente escindido por áreas mantenerlos separados y utilizar el enrutamiento para enviar las solicitudes a varios dominios en el lugar correcto y para construir enlaces que apuntan al dominio correcto.

Esto concuerda con la forma en que planeamos vincular todos los sitios web, esencialmente con un menú común a todos los sitios web que enumeran las distintas compañías, estos se vincularían al dominio de las empresas que contiene submenús de elementos relacionados con ese empresa.

Esto es donde se vuelve complicado, en el que iba a necesitar para encaminar a nivel de dominio - por lo que en lugar de encaminar al controlador Company2 en el dominio actual (por ejemplo http://www.groupcompany.ex/company2) Quiero solicitudes propio dominio de Company2 ruta - http://www.company2.ex/{controller}/{action}/{id}.

Idea 2

alternativa que podría crear proyectos para cada sitio en una única solución y tener un proyecto común que alberga cualquier ayudantes, CSS y JavaScript, etc.

alguna idea sobre qué camino debo estar haciendo esto, y si mis sugerencias están completamente locas? (que probablemente sea el caso).

+1

Hemos este trabajo para nuestra determinado conjunto de restricciones aquí: http://stackoverflow.com/questions/490963/can-have-part-of-the-domain-name-as-a-parameter-in-my -routing-rules/499688 # 499688 – schmidty

Respuesta

7

Esta es una solicitud común. Lo que está preguntando se llama Multi-tenancy. Hasta la fecha, no conozco ningún consenso sobre cómo lograr Multi-tenancy en MVC. Probablemente haya tantas soluciones como preguntas al respecto.

No he resuelto este problema a mi satisfacción tampoco. Sin embargo, hay una serie de entradas de blog que cubre esto. Los ejemplos incluyen:

http://weblogs.asp.net/zowens/archive/2010/05/26/multi-tenant-asp-net-mvc-introduction.aspx

http://codeofrob.com/archive/2010/02/01/multi-tenancy-in-asp.net-mvc-why-do-we-want-to.aspx

Esto es algo que creo que tiene que ser construido en el marco en algún momento. Con suerte, eso sucede, o al menos a alguien se le ocurre una solución elegante.

+0

Gracias por su respuesta - el multi inquilinato aparece mucho cuando he estado buscando esto.Al leer su segundo enlace, parece que casi resuelve nuestro problema, pero no estoy seguro de si lo hace del todo; parece que se centra principalmente en la personalización de un único producto para varios usuarios, mientras que en su mayoría queremos un sitio completamente separado, con diferentes vistas y controladores para todos ellos (barra de funciones comunes como formularios de contacto, etc.). Veo muchas preguntas sobre enrutamiento en un nivel de subdominio pero no tanto en un nivel de dominio completo ... la búsqueda continúa. – akiller

+0

@akiller ¿Su búsqueda ha resultado buena? El primer enlace es algo viejo (y se centró en MVC1/MVC2, aunque sospecho que no es difícil convertirlo a MVC3). El segundo enlace que el autor del blog parece haber abandonado para otro marco (lo que me lleva a sospechar que su solución y/o sus necesidades no funcionan). – REMESQ

+0

@REMESQ Al final me rendí y acabo de agregar un proyecto de ayuda de MVC común para las funciones de utilidad y agregué archivos compartidos de CSS/imagen en nuestro dominio principal y los vinculé desde cada una de las páginas de diseño de nuestros sitios. Todavía hay bastante repetición con los archivos de diseño y demás, pero se necesita una gran cantidad de mantenimiento. ¿Tal vez echar un vistazo al comentario de Schmidty en mi pregunta original? – akiller

Cuestiones relacionadas