Pregunta

Sé lo suficiente como para saber que necesitamos que nuestra aplicación se despliegue con una sola acción del usuario. Sin embargo, no lo sé:

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

¿Puede alguien indicarme algunos buenos recursos para una integración continua? Me gustaría ver una teoría, así como una guía práctica paso a paso.

Editar:
Estoy en necesidad de automatizar un despliegue web ahora mismo; sin embargo, también me gustaría aprender a hacer esto para las aplicaciones de escritorio.

¿Fue útil?

Solución

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. Sonaban realmente prometedores y parecía que eran ideales para apuntar a múltiples configuraciones de compilación, sincronizar múltiples servidores en una granja y más control sobre la salida real de la implementación de su sitio web.

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

Otros consejos

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

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 se haya implementado la aplicación. 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.

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 hay NAnt, que no he usado mucho.

En cuanto a la gestión de los cambios de configuración, administro varios archivos de configuración con extensiones que indican el entorno de implementación, y luego simplemente cambio el nombre como un paso dentro de mi script de compilación.

Por ejemplo, si me estoy implementando en Test, podría tener un archivo de configuración llamado Web.test.config, que se renombra automáticamente a Web.config por el script de compilación.

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

Luego he agregado a 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:

  • Uso de un servidor de compilación teamcity que descargo de mi repositorio SVN
  • Construyo e implemento el sitio en una carpeta local en el servidor de compilación
  • Desbloqueo un cliente FTP de línea de comandos que admite secuencias de comandos llamado
  • WinSCP usando el MSBUILD Task EXEC (http://winscp.net/)
  • Subir todo el contenido de mis sitios
  • Tienen [insertar bebida] de su elección

Luego me aseguro de que solo despliegue el Tronco de mi repositorio SVN, y que desarrolle y pruebe todo en una rama antes de fusionar, de esta manera solo se implementan las cosas probadas. Agregue pruebas automatizadas a su ciclo de construcción y obtendrá una combinación perfecta en el cielo.

Algunas excelentes herramientas gratuitas para comenzar son:

Veo dos preguntas diferentes:

  • Para la implementación: la implementación de ClickOnce debería hacerlo. Simplemente publique su aplicación de escritorio yendo a VS.net en el menú Generar > 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 ejecutan de inmediato. ClickOnce también maneja las actualizaciones por usted y hay una amplia API para desarrollar.
  • La integración continua es una cosa muy diferente. Le sugiero que busque en Google 'CruiseControl.net' y descargue y pruebe tantos recursos como pueda. Básicamente es un servidor de compilación, pero puede conectarlo con SVN, NUnit para realizar pruebas, etc. No sugeriría comprar un libro para un producto tan volátil. Es mejor descargarlo y probar cosas.

CruiseControl.NET para su solución de Integración Continua. Para la implementación, uso un archivo de proyecto MSBuild. Además, guardo todos los archivos de configuración de los servidores. Le paso a MSBuild a través de los parámetros 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 directamente desde CruiseControl es la de nuestros servidores en vivo. Dejamos esa línea de comandos MSBuild solo para que no presionemos un botón accidentalmente, o para que alguien con acceso al panel de control web de CC.NET lo haga simplemente jugando.

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