Pregunta

Soy un desarrollador novato que quieran aprender el proceso de desarrollo de software mejor. Mis preguntas son:

  1. ¿qué es diaria y construcción en general?
  2. ¿cuál es la diferencia si construyo mi propio proyecto en VS?
  3. ¿cómo lo hacemos de la mejor manera para el proyecto de .NET (preferiblemente usando TFS)?
  4. más cosas que yo / tener a conocer?

Cualquier referencia a un artículo / libros / otras preguntas son bienvenidos.

Gracias

¿Fue útil?

Solución

1) Desde el Wikipedia entrada :

  

Una acumulación diaria o nightly build es la práctica de cada día haciendo una compilación de software de la versión más reciente de un programa. Esto es por lo que en primer lugar se puede compilar para asegurar que todas las dependencias requeridas están presentes, y posiblemente a prueba para mostrar no se han introducido errores. La acumulación diaria es también a menudo a disposición del público que permite el acceso a las últimas características para la retroalimentación.

2) No debe haber ninguna diferencia entre una acumulación de todas las noches y una acumulación de VS, sin embargo, la idea detrás de una acumulación diaria es que es automático. De esa manera se puede programar para que se ejecute a las 3 am :)

También sería una buena idea para ejecutar los pasos de verificación (por ejemplo, unidad o pruebas funcionales) para verificar nada se ha roto en la versión más reciente. De esta manera usted puede garantizar que las compilaciones de construcción y se encuentra en buen estado de funcionamiento. De esa manera se puede implementar una acumulación fresca a voluntad.

Sin un proceso de este tipo en su lugar, si alguien necesita una acumulación nunca se sabe cuánto tiempo podría tomar para entregarlo a ellos. Usted puede ser capaz de simplemente construir en VS sin ningún problema, o puede que tenga que arreglar hasta partes del código sólo para llegar a construir. Esto se convierte en un problema mayor cuando su construcción es grande y consta de varias soluciones que cada necesidad que se construirá por separado.

3) Se puede crear un archivo por lotes que se ejecuta la acumulación de usted, de usted podría utilizar una herramienta para este fin. Para obtener más información, véase: lo-herramienta para el uso-de-automática -nightly-construye . Algunas de sus sugerencias son:

Otros consejos

artículo de Joel. Bueno para leer.

Una acumulación diaria es en su mayoría una construcción automatizado, de construcción por un servidor central. La diferencia en la construcción de su propio proyecto es que se obtiene tanto de todo DLL empaquetado en su aplicación, el código no se registró en el control de código fuente, las dependencias locales, etc .. La aplicación compilada final y de DLL son los mismos que el que está usted construye localmente.

Hudson para pasar la noche construye pero también se puede utilizar Crucero control.Net. Debido a que Java y .NET Hudson es la mejor solución. Si tiene el servidor Team Foundation desde MS también se podría utilizar esto.

Por favor, busque en este para la integración de Hudson y C #.

También considerar la integración de StyleCop, FXCop y unidad de prueba en su servidor de compilación.

Hay un excelente artículo de Martin Fowler sobre este tema

http://martinfowler.com/articles/continuousIntegration.html

Yo personalmente no está de acuerdo que la construcción de código fuente de la que env es el desarrollo mismo que hacer una acumulación noche o acumulación diaria. entorno de desarrollo está inundado de componentes, SDK, bibliotecas y de los recursos que en algún momento se esconden los cabos sueltos. Hacer una acumulación noche en una máquina de construcción es el mejor camino a seguir.

También haciendo una acumulación de su propia máquina impide diarias check-ins de código de la corriente principal. Una vez más una mala práctica.

A nightly build debe trabajar con los mínimos requeridos herramientas de construcción y bibliotecas. Usando toda env dev en la máquina de construcción es una mala idea. Una acumulación completa también tendría algunas rápidos y sucios - pruebas superficiales automatizado para ejecutar en código después de que se compila, acumulación, y desplegado en env prueba / pre-prod. NUnit, selenio, y FxCop son sus amigos.

  1. Una construcción automática cada día (o la noche) del sistema completo. Los errores de generación de informes sistema de acumulación mi correo, etc.
  2. Se basa en una máquina separada, se asegura de que no ha olvidado a desproteger los archivos, o de haber instalado las dependencias indocumentados en su máquina solamente. Y se informa de errores.
  3. No parar en las construcciones diarias, vaya para la integración continua que se acumula después de cada registro de entrada. Echa un vistazo a Cruisecontrol.net .
  1. construcciones diarias tienen por objeto garantizar que por lo menos una vez al día en que su aplicación está en estado edificable. Por lo general están a cargo de un proceso automatizado. Muchos equipos prefieren tener la integración continua de generaciones que se preparan después de cada registro de entrada en el repositorio.

  2. Automated proceso diario tiene la ventaja de ser automatizado :) También puede configurar para realizar varias tareas auxiliares: la ejecución de pruebas de unidad a componentes de servidor que despliegan automáticamente. Cuando usted está construyendo en su máquina dev, que se aseguran de que su locales copia es válida y compilables, mientras que el servidor CI exige lo mismo de su repositorio .

  3. CruiseControl.NET es una solución popular. También puede considerar el uso de Rake .

1) La acumulación diaria es una sopa completa para construir las tuercas de su base de código y los procesos que el instalador pasaría por incluyendo las pruebas, instalación, y potencialmente la eliminación.

2) Esa es una acumulación local, no debería haber ninguna diferencia real, salvo que sólo se le compilar y probar el código no necesariamente el proceso de solicitud.

3) Es en el aire, depende del presupuesto, equipo, entre otras cosas.

4) El artículo de Joel como se ha escrito anteriormente.

  

¿qué es diaria y construcción en general?

"acumulación diaria" es una parte de la "integración continua", y significa que un proyecto completo está construido con regularidad y de forma automática. Normalmente esto sucede por lo menos diariamente, o incluso con más frecuencia, si es posible, tal vez incluso después de cada cambio.

El objetivo principal es asegurarse de que el proyecto siempre se puede construir; También, varias pruebas se pueden ejecutar como parte de los preparativos, se puede implementar de forma automática a un entorno de pruebas, generar instaladores para realizar más pruebas, etc.

  

¿cuál es la diferencia si construyo mi propio proyecto en VS?

Sucede de forma automática, y el uso de la configuración predeterminada. Esto hace que el proyecto siempre se construye correctamente, y no sólo en su sistema (por ejemplo, porque tiene una configuración especial que se le olvidó comprobar en el control de versiones, o si tiene instalado un IDE en particular).

  

¿cómo lo hacemos de la mejor manera para el proyecto de .net?

Usar un servidor CI (integración continua), por ejemplo CruiseControl.NET . Hay varios disponibles.

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