2009-06-10 13 views
19

Actualmente implementamos aplicaciones compiladas de ASP.Net publicando el sitio web localmente y enviando un archivo zip al administrador del sistema con un conjunto de instrucciones (por lo general) prolongado para la implementación. Esto se debe a que la primera vez que implementamos una aplicación ASP.Net para un cliente, la instancia de desarrollo y prueba de IIS era la misma y no pudimos implementar el sitio dos veces en la misma máquina. Esto estableció el tono para la implementación en todos los proyectos posteriores.¿Qué método usas para implementar aplicaciones ASP.Net en la naturaleza?

Ahora estoy evaluando nuestros métodos de implementación y estoy mirando específicamente las herramientas de implementación integradas; específicamente, estoy buscando tareas de instalación personalizadas y usando la mayor cantidad de funcionalidad de instalador estándar que puedo (principalmente la interfaz de usuario).

En segundo lugar, estoy buscando fusionar implementaciones y actualizaciones automáticas.

¿Cómo se puede implementar el software en su organización? ¿Qué herramientas usa y con qué problemas se encuentra con más frecuencia?

+1

Desde que publiqué esta pregunta original, descubrí WiX. Es de código abierto, y gratis. También es lo que Microsoft usó para desarrollar el paquete de implementación para Office 2007. Parece fácil de usar una vez que comprende los conceptos básicos, y la interfaz le permite seleccionar y elegir sus componentes en el momento de la instalación. – Hooloovoo

+0

Solo una actualización; La herramienta de automatización de publicación de aplicaciones está específicamente diseñada para este fin. Hay una gran cantidad de herramientas notables que hay que buscar en https://en.wikipedia.org/wiki/Application_release_automation –

Respuesta

-2

aplicaciones Web realizarla mediante la herramienta de copia de la tela
texto del Kit de formación Microsoft de desarrollo basados ​​en web de la libreta
Proyectos de instalación Web son útiles si usted está proporcionando una aplicación web para muchos usuarios (por ejemplo, permitiendo a los usuarios descargar la aplicación desde la web e instalarlo). Si es responsable de actualizar un sitio web específico para su organización, no es práctico iniciar sesión en el servidor web e instalar un paquete de Windows Installer cada vez que realice una actualización. Para aplicaciones internas, puede editar la aplicación web directamente en el servidor web. Sin embargo, los cambios que realice se implementan inmediatamente en su aplicación web de producción, y esto incluye cualquier error que pueda existir. Para permitirse probar una aplicación web, puede editar una copia local de la aplicación web en su computadora y publicar los cambios en el servidor web de producción utilizando la herramienta Copiar Web. También puede usar la herramienta Copiar Web para publicar cambios de un servidor intermedio en un servidor web de producción, o entre dos servidores Web cualquiera. La herramienta Copiar Web puede copiar archivos individuales o un sitio web completo desde o hacia un sitio web de origen y un sitio web remoto. También puede optar por sincronizar archivos, lo que implica copiar solo los archivos modificados y detectar posibles conflictos de versiones en los que se haya editado por separado el mismo archivo en el sitio de origen y remoto. La herramienta Copiar Web no puede combinar cambios dentro de un solo archivo; solo se pueden copiar los archivos completos.

+0

El entorno con el que trabajo con más frecuencia se divide en 5 sitios web dedicados. servidores. Estamos buscando una ruta de implementación repetible y fácil, especialmente porque no tenemos acceso a los entornos de producción o lanzamiento (entornos 4 y 5 en la ruta de implementación). Básicamente, estamos implementando para muchos usuarios. :-) – Hooloovoo

+0

http://msdn.microsoft.com/en-us/library/xay0wxbf(VS.80).aspx – MarkJ

0

Un par de cosas que he hecho es el siguiente:

1) Utilizar un proyecto de implementación de Web con el fin de recopilar y limpiar la acumulación, así como la sección de reemplazo de entrega web.config si los cambios de configuración entre los entornos. 2) Use NAnt para hacer todo el edificio, archivar y copiar de manera repetitiva.

El proyecto de implementación web termina creando un archivo MSBuild que se puede usar en lugar de NAnt; sin embargo, provengo de un fondo Java y usé Ant todo el tiempo, por lo que NAnt es mi preferencia en .Net. Si agrega las tareas de Contrs NAnt, podrá desplegar no solo los archivos, sino también manejar elementos como el control de origen (en caso de que no forme parte de las tareas predeterminadas) y la ejecución de scripts de SQL para realizar cambios.

Actualmente utilizo las dos opciones juntas. Tengo mi archivo de compilación NAnt llamado Proyecto de implementación web a través de MSBuild. Con la configuración del administrador de configuración para cada entorno, me permite administrar las sustituciones de la sección web.config automáticamente y todavía tengo un control bastante decente sobre mi copia y archivo de una versión.

Espero que esto ayude.

+0

Actualmente utilizamos TeamCity de JetBrains, y dejo que alguien más configure los scripts de compilación. Es bastante sencillo, y utilizamos MSBuild en el servidor de CI. También uso un proyecto de implementación web para que el sitio se construya correctamente, pero a veces puede ser un poco complicado configurarlo correctamente. – Hooloovoo

+0

Sé lo que quiere decir en términos de obtener la configuración de compilación correctamente. Terminé por defecto configurando un entorno de Configuration Manager para cada entorno desplegado que tengo y luego usamos el proyecto de implementación web para compilar debajo de cada uno (automatizado usando NAnt o el archivo de compilación de un servidor de CI). Si se necesita limpieza/manipulación adicional, editaré el archivo WDproj (msbuild) directamente o realizaré las actualizaciones en NAnt. Como no escribe los archivos de construcción de CI para TeamCity, el wdproj será su mejor opción. Aparte de eso, mira cuáles son los puntos de dolor en cada entorno y céntrate en ellos. – JamesEggers

0

Utilizamos proyectos de despliegue web, y los proyectos VS 2008 para crear un .msi a partir de la salida del webdeployment & otros proyectos. Una aplicación de Windows normal llamada 'configuración' se utiliza para hacer una gran parte de la creación de bases de datos y cosas preliminares, en lugar de tratar de personalizar los proyectos de configuración con pasos personalizados. Es mucho más fácil hacerlo usted mismo que tratar de personalizar el código MS. Esta aplicación de Windows llama a los archivos .msi correctos que el usuario necesita.

Team Foundation Build se ejecuta todas las tardes para reconstruir la solución y copiar todo en un directorio de 'Release CD' al que cualquier persona puede acceder y hacer pruebas en la última 'versión'. Para ser sincero, la creación de TFS está un poco pasada de la borda para un equipo pequeño como el nuestro, y solo lo uso porque es a lo que estoy acostumbrado.

En una compañía anterior, utilizamos este http://www.finalbuilder.com/ y puedo recomendarlo para facilitar el uso y para la cantidad de software compatible.

1

1) Construir proyecto con MSBUILD

2) archivos FTP al entorno de producción

3) Copiar/Pegar manualmente a cada servidor web

+0

El problema con esto es que no tenemos acceso después del tercer entorno, por lo que debemos automatizar tanto como sea posible. Desde el punto de vista corporativo de la marca, esto tampoco es muy fuerte. Habiendo dicho eso, es más o menos lo que hemos estado haciendo durante los últimos años. – Hooloovoo

0

Para los sitios de intranet, utilizamos CruiseControl conjuntamente con SVN tener el sitio reconstruido automágicamente.

Teóricamente, podría ampliar este modelo a través de una VPN si pudiera asignar una unidad de forma remota a la intranet de un cliente. O una solución más rápida y sucia podría ser utilizar una herramienta como SyncBack para sincronizar la carpeta remota que contiene las DLL compiladas para el sitio.

3

Tenemos servidores dedicados DEV, TEST, STAGE y PRODUCTION.

También tenemos una máquina de construcción dedicada que ejecuta el control de crucero.

Cruise Control está configurado para una construcción de Integración Continua, que se ejecuta después de que el código esté registrado. También está configurado para tareas de Desarrollo, QA, Etapa y Producción por separado.

Para implementar en desarrollo, el código primero se recupera de SVN y se genera, luego la carpeta "Precompilado Web" se copia al sitio web de desarrollo y el proyecto de servicio web se copia al servidor de aplicaciones de desarrollo. Cruise Control también está configurado para "etiquetar" el código fuente antes de que se inicie la compilación para que podamos reproducir la compilación en un momento posterior, o rama de la etiqueta si tenemos que hacer una corrección urgente.

Para implementar en QA, los archivos se copian de las máquinas de desarrollo a las máquinas de QA.

Del mismo modo, para implementar en el escenario los archivos se copian de las máquinas de QA a las máquinas de escenario.

Finalmente, para implementar en producción, los archivos se copian de nuevo desde las máquinas de escenario a las máquinas de producción.

Para configurar cada entorno, tenemos una herramienta personalizada que forma parte de la tarea Cruise Control de cada entorno que modifica las cadenas de conexión, "debug = true | false", "customErrors = Off | RemoteOnly" y otras configuraciones específicas del entorno .

Para que cada entorno se pueda desplegar con un botón pulsado desde el tablero Cruise Control.

Una advertencia es que actualmente tenemos la contraseña de la base de datos de producción configurada en el archivo de configuración de Cruise Control ... ¡sería bueno moverla a otro lugar!

Por último, permítanme agregar que, aunque nuestras máquinas de producción se encuentran en una instalación de alojamiento dedicada, los servidores son accesibles desde nuestra máquina de control de cruceros, lo que hace que sea muy fácil hacer una implementación de producción. El único paso manual es cifrar los archivos web.config y eliminar el archivo "AppOffline.html" que presenta Cruise Control.

Avísame si esto te puede ayudar o si tienes alguna pregunta.

Gracias!

+0

¿Cómo accedes desde las máquinas de producción en las instalaciones de hosting desde la máquina CC? (UNC, FTP, etc.)? – RyanW

+0

De alguna manera, las máquinas de producción estaban disponibles en la red local, aunque solo desde ciertas máquinas (la máquina de control de crucero es una de ellas). Ya no estoy en esa compañía, por lo que ya no tengo acceso directo a la sysadmin para preguntar. De modo que la implementación actuó como si simplemente copiara archivos a otra máquina en la red. Creo que se usaron las rutas UNC. –

Cuestiones relacionadas