7

Sé lo suficiente como para saber que tenemos que hacer que nuestra aplicación se implemente con una sola acción de usuario. Sin embargo, yo no saben:Recursos de implementación automática

  1. ¿Cuáles son algunas buenas herramientas para usar en una tienda de .NET?
  2. ¿Cómo gestionas los cambios de configuración para cada uno de tus entornos?

¿Alguien me puede indicar algunos buenos recursos para la integración continua. Me gustaría ver algunas teorías y una guía práctica paso a paso.

Editar:
Estoy en necesidad de un despliegue automatizado web ahora mismo; Sin embargo, también me gustaría aprender cómo hacer esto para aplicaciones de escritorio.

+0

Qué tipo de ambiente - web o de escritorio? –

Respuesta

5

me escribió una entrada de blog que puede ser útil:

Visual Studio Web Deployment Projects

Es un año y medio de edad, pero habló de algunos de los nuevos (en ese momento) plantillas de proyecto para VS y también un comando utilidad de línea del equipo de IIS llamada MSDeploy. Parecían realmente prometedores y parecía que eran ideales para orientar a múltiples configuraciones de compilación, sincronizar múltiples servidores en una granja y tener más control sobre el resultado real de la implementación de su sitio web.

Quizás por ahora las tecnologías hayan madurado también.

1

Visual Build Pro de Kinook es una herramienta bastante buena para la implementación con un solo clic. Es fácil de usar y tiene muchas capacidades. Lo he estado usando por años. Por supuesto, también está NAnt, que no he usado mucho.

En cuanto a la gestión de cambios de configuración, administro múltiples archivos de configuración con extensiones que indican el entorno de despliegue, y luego simplemente renombre como un paso dentro de mi script de compilación.

Por ejemplo, si estoy implementando en Test, es posible que tenga un archivo de configuración llamado Web.test.config, que el script de compilación cambia automáticamente de nombre a Web.config.

2

Hemos tenido un gran éxito con Windows Installer XML. Básicamente, usted define los componentes que componen su aplicación en XML y WiX los convierte en un paquete MSI. La documentación es relativamente escasa, pero el archivo CHM provisto combinado con la búsqueda de fu le llevará un largo camino hasta allí.

Los paquetes MSI pueden tomar los parámetros de entrada para los valores de configuración y realizar acciones para manipular los archivos de configuración después de que la aplicación se haya desplegado. Por ejemplo, "msiexec/i MyCustomPackage.msi SqlServer = SomeSQLBox" podría implementar la aplicación web y modificar la entrada de configuración para un cuadro SQL dependiente.

+1

Los paquetes de MSI son buenos para las aplicaciones de Windows, pero para las aplicaciones web, creo que un proceso de actualización más incremental es mejor. Por ejemplo, VBP (como se menciona en mi respuesta) puede detectar que solo una sola página ASPX ha cambiado y * solo * implementar eso, lo que ahorra tiempo de inactividad potencial, tiempos de espera de sesión, etc. – jeremcc

0

veo dos cuestiones diferentes:

  • para la cosa implementación: La implementación de ClickOnce debería hacerlo. Usted acaba de publicar su aplicación de escritorio yendo en VS.net en el menú Compilar> Publicar. VS.net luego compila una página web y un setup.exe. Cuando los usuarios con IE o Firefox y .net 3.5 SP1 hacen clic en el enlace, se ejecuta de inmediato. ClickOnce también maneja las actualizaciones y hay una extensa API para desarrollar.
  • La integración continua es algo muy diferente. Sugiero que busques en Google 'CruiseControl.net' y descargues y pruebes todos los recursos que puedas. Básicamente es un servidor de compilación pero puede conectarlo con SVN, NUnit para pruebas, etc. No recomendaría comprar un libro para un producto tan volátil. Lo mejor es descargarlo y probar cosas.
0

CruiseControl.NET para su solución ContinuousIntegration. Para la implementación, uso un archivo de proyecto MSBuild. En la parte superior de eso guardo todos los archivos de configuración de los servidores. Paso a MSBuild a través de los parámetros de una propiedad del servidor que le dice a MSbuild qué valores de configuración usar y luego completa la implementación. La única implementación que no se puede hacer desde CruiseControl es la de nuestros servidores en vivo. Dejamos esa línea de comando MSBuild solo para que no presionemos accidentalmente un botón, o al menos alguien con acceso al CC.NET web dashboard lo hace simplemente jugando.

1

he escrito un post bastante detallada blog a través de TeamCity, y los proyectos de implementación Web para automatizar la acumulación y despliegue como abridor aquí:

http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

entonces he añadido a esto para mostrar además FTP

http://www.diaryofaninja.com/blog/2010/09/21/continuous-integration-tip-1-ndash-ftp-deployment

Un flujo de proceso básico es bastante simple:

  • uso de un servidor TeamCity acumulación i descargo de mi repositorio SVN
  • que construir e implementar el sitio a una carpeta local en el servidor de compilación
  • yo fuego un cliente FTP de línea de comandos que soporta programación llamado
  • WinSCP usando EXEC MSBUILD de tareas (http://winscp.net/)
  • Sube todos mis sitios de contenido
  • Tienes [bebida inserción] de elección

entonces me aseguro tha Solo despliego el tronco de mi repositorio SVN, y desarrollo y pruebo todo en una rama antes de fusionarme; de ​​esta forma solo se implementan las cosas probadas. Agregue pruebas automatizadas a su ciclo de construcción y obtendrá una coincidencia en el cielo.

Algunos grandes herramientas libres para ponerse en marcha son:

Cuestiones relacionadas