users unit true tools the that tests released not necessarily focuses false executed ensure end encourages during deployed delivery code are all deployment continuous-integration build-automation automated-deploy

deployment - unit - Recursos de implementación automática



during the continuous integration process unit tests are executed during the build. (6)

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, no

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

¿Puede alguien señalarme algunos buenos recursos para una integración continua? Me gustaría ver algunas teorías y una guía práctica paso a paso.

Editar:
Necesito automatizar una implementación web en este momento; Sin embargo, también me gustaría aprender cómo hacer esto para aplicaciones de escritorio.


He escrito una publicación de blog bastante detallada usando TeamCity y proyectos de implementación web para automatizar la compilación y la implementación como iniciador aquí:

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

A continuación, agregué esto para mostrar la adición de 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:

  • Utilizando un servidor de generación de teamcity lo descargo de mi repositorio de SVN
  • Construyo e implemento el sitio en una carpeta local en el servidor de compilación
  • Disparo un cliente FTP de línea de comandos que admite secuencias de comandos llamado
  • WinSCP utilizando MSBUILD Task EXEC (http://winscp.net/)
  • Cargar todo el contenido de mi sitio
  • Tener [insertar bebida] de elección

Luego me aseguro de que solo despliegue el tronco de mi repositorio SVN, y desarrolle y pruebe 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.

Algunas excelentes herramientas gratuitas para ponerse en marcha son:


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 panel web CC.NET simplemente lo juega.


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 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.


Veo dos preguntas diferentes:

  • Para la 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.

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 construcción renombra automáticamente a Web.config.


Escribí una publicación de blog que puede ser útil:

Proyectos de implementación web de Visual Studio

Tiene un año y medio de antigüedad, pero habló sobre algunas plantillas de proyecto nuevas (en ese momento) para VS y también una utilidad de línea de comandos 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.

Tal vez por ahora las tecnologías también han madurado.