Pregunta

Estoy en el proceso de diseño de una aplicación web que tendrá varios módulos instalables que proporcionan una funcionalidad diferente. Hay un montón de cosas comunes pasando aquí y tengo bibliotecas de clase # 3 C que sé que van a ser fáciles de usar en diferentes proyectos.

El bit estoy atascado en el sitio web es en sí. Idealmente me gustaría hacer un ASP.NET Biblioteca de la página que puede ser reutilizada en múltiples proyectos pero entiendo que esto no es posible.

¿Cómo ustedes estructurar sus proyectos de páginas web para que las páginas pueden ser reutilizada en múltiples proyectos? Hasta ahora, la única solución que he llegado con es crear un repositorio en el SVN y haga que sea referenciada en las propiedades svn:externals del proyecto principal. Esto me permite agregar páginas a ese directorio que son comunes a todos los sitios web, y sé que voy a ser capaz de utilizar esto para comprobar a cabo a otros proyectos. Sin embargo, siento que este es un poco torpe y causará problemas al crear nuevos proyectos (que habría una serie de pasos para crear la nueva solución, asegurándose de que las cosas externas correctas están en su lugar).

¿Hay una solución mejor? ¿Cuál es la mejor manera cuando se quiere compartir archivos ASPX comunes a través de múltiples proyectos de los clientes? ¿Cómo administrar los cambios en contra de ellos?

Gracias de antemano!

EDIT:

Muchas gracias a David por su respuesta. He tenido una mayor reflexión sobre esto y pensé que enumerar algunas de mis ideas más concretas / preocupaciones. En primer lugar, un poco más sobre el proyecto (s). En primer lugar, se trata de un CMS. Sin embargo, también tenemos clientes que querrán CRM, y también hay clientes que desean ni quieren y todo un sistema de medida desde el suelo hacia arriba.

En mi anterior post original, me habló acerca de tener subdirectorios de la raíz principal (por ejemplo, cms), utilizando svn:externals para permitir una fácil re-puesta en común de las páginas web a través de múltiples proyectos. Estoy empezando a pensar que esta es la única manera de hacer esto. Una cosa que me molestó fue si la URL del cliente era:

http://www.shotgunanddribble.com/cms/content.aspx

Sin embargo, creo que puedo utilizar el Application_BeginRequest para mitigar las direcciones URL horribles reescribiendo de acuerdo a la configuración del sitio del cliente. Por ejemplo, si un cliente era sólo un CMS que pude volver a escribir su nivel superior de dominio a /cms/. Lo mismo con si fueran un CRM. Si ambos eran:

http://www.shotgunanddribble.com/ -> /cms/

http://crm.shotgunanddribble.com/ -> /crm/

¿Hay alguna desventaja de usar este tipo de reescrituras? Creo que, a menos que alguien más tiene alguna idea mágicas, svn:externals es mi única esperanza.

¿Fue útil?

Solución

El código real es bastante fácil de poner en otras asambleas y hereda de, pero los archivos ASPX son definitivamente una historia diferente. ¿Qué tal una biblioteca común de controles de usuario para contener la mayor parte del contenido de la pantalla, y cada proyecto tendría sus propias páginas, que en su mayoría sólo enmarcan los controles de usuario? Nunca lo he probado, así que puede haber algo de "Gotcha" que simplemente no estoy imaginando en este momento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top