Domanda

Sono uno sviluppatore newbie che vogliono imparare meglio il processo di sviluppo del software. Le mie domande sono:

  1. ciò che è quotidiano-build in generale?
  2. qual è la differenza se io costruisco il mio progetto in VS?
  3. come lo facciamo nel modo migliore per il progetto NET (preferibilmente utilizzando TFS)?
  4. di più le cose che avrei dovuto / avere a conoscere?

Ogni riferimento ad un articolo / libri / altre domande sono i benvenuti.

Grazie

È stato utile?

Soluzione

1) Dal Wikipedia :

  

Una build giornaliera o nightly build è la pratica di ogni giorno facendo una build del software della versione più recente di un programma. Questo è così si può prima essere compilato per garantire che tutte le dipendenze richieste siano presenti, e possibilmente testato per mostrare sono stati introdotti senza insetti. La build giornaliera è spesso a disposizione del pubblico anche per avere accesso alle ultime funzionalità per il feedback.

2) non ci dovrebbe essere differenza tra una nightly build e una generazione da VS, tuttavia l'idea alla base di una build giornaliera è che si è automatizzato. In questo modo è possibile pianificare l'esecuzione alle 03:00 :)

Sarebbe anche una buona idea eseguire verifiche fasi (ad esempio, unità o test funzionali) per verificare nulla è stato rotto nella ultima build. In questo modo è possibile garantire che le compilazioni di compilazione ed è in buone condizioni. In questo modo è possibile distribuire una build fresca a volontà.

Senza tale processo un posto, se qualcuno ha bisogno di una build non sai mai quanto tempo potrebbe prendere per consegnarlo a loro. Si può essere in grado di costruire solo in VS, senza alcuna difficoltà, o potrebbe essere dovuto sistemare parti del codice solo per arrivare a costruire. Questo diventa un problema più grande quando la build è grande e si compone di molteplici soluzioni che ogni bisogno di essere costruita separatamente.

3) Si potrebbe creare uno script batch che esegue la build per voi, di è possibile utilizzare uno strumento per questo scopo. Per maggiori informazioni consultare: cosa-strumento da usare-per-automatica -nightly-costruisce . Alcuni di loro suggerimenti includono:

Altri suggerimenti

articolo da Joel. Bene leggere.

Una build giornaliera è per lo più una compilazione automatica, costruito da un server centrale. La differenza di costruire il proprio progetto è che si ottiene a conoscenza di tutte le DLL confezionato nell'applicazione, il codice non controllato in in controllo del codice sorgente, le dipendenze locali, ecc .. L'applicazione compilata finale e di DLL sono la stessa di quella di costruire a livello locale.

Hudson per il pernottamento costruisce, ma si può anche utilizzare Crociera control.Net. Perché noi facciamo Java e .NET Hudson è la soluzione migliore. Se si dispone di server di Team Foundation da MS si potrebbe anche usare questo.

Si prega di guardare questo per l'integrazione di Hudson e C #.

Considera anche integrando StyleCop, FxCop e Unità test nel server di build.

C'è un ottimo articolo di Martin Fowler su questo argomento

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

Io personalmente non sono d'accordo che la costruzione di codice sorgente da voi ENV di sviluppo è lo stesso come facendo un nightly build o build giornaliera. Ambiente di sviluppo è invaso da componenti, SDK, biblioteche e le risorse che si nascondono a volte sospeso. Facendo un nightly build su una macchina build è il modo migliore per andare.

Anche facendo una generazione da propria macchina impedisce check-in al giorno per il codice mainstream. Anche in questo caso una cattiva pratica.

Un nightly build dovrebbe lavorare con strumenti e librerie di compilazione minime richieste. Usando tutta dev ENV sul sistema di compilazione è una cattiva idea. Una build completa avrebbe anche qualche rapido e sporco - test poco profonde automatizzato da eseguire sul codice dopo che è stato compilato, costruire, e distribuito in test / pre-prod ENV. NUnit, selenio, e FxCop sono i tuoi amici.

  1. Una compilazione automatica ogni giorno (o notte) del sistema completo. Gli errori di generazione di report sistema di compilazione mia posta, ecc.
  2. Esso si basa su una macchina separata, si assicura di non aver dimenticato di controllare in qualsiasi file, o che hanno installato le dipendenze senza documenti solo sulla vostra macchina. E si segnala gli errori.
  3. non si fermano alle build giornaliere, andare per l'integrazione continua che costruisce dopo ogni check-in. Dai un'occhiata alla Cruisecontrol.net .
  1. Daily generazioni sono destinate a garantire che almeno una volta al giorno la vostra applicazione è in stato edificabile. Essi hanno generalmente un processo automatizzato. Molte squadre preferiscono avere l'integrazione continua generazioni sono preparati dopo ogni check-in al repository.

  2. Automated processo quotidiano ha il vantaggio di essere automatizzato :) È anche possibile impostare fino a svolgere vari compiti ausiliari: l'esecuzione di test di unità per i componenti server che implementano automaticamente. Quando si sta costruendo sulla propria macchina dev, si sta assicurando che il locale copia è valida e compilabile, mentre server di CI afferma la stessa cosa per il tuo repository .

  3. CruiseControl.NET è una soluzione popolare. Si può anche considerare utilizzando Rake .

1) Una build giornaliera è una zuppa completa per dadi costruzione della base di codice e processi che l'installatore sarebbe passare attraverso compresi i test, installazione, e potenzialmente la rimozione.

2) Si tratta di una costruzione locale, ci dovrebbe essere alcuna differenza, tranne sarete compilare e testare il codice non necessariamente il processo di applicazione unica.

3) E 'in aria, dipende dal budget, squadra, tra le altre cose.

4) L'articolo di Joel come è stato scritto in precedenza.

  

ciò che è quotidiano-build in generale?

"build giornaliera" è una parte di "integrazione continua", e significa che un progetto completo è costruito regolarmente e automaticamente. In genere questo accade almeno giornalmente, o anche più frequentemente, se possibile, forse anche dopo ogni modifica.

L'obiettivo principale è quello di assicurarsi che il progetto può sempre essere costruito; Inoltre, vari test possono essere eseguiti come parte della compilazione, è possibile distribuire automaticamente ad un ambiente di test, generare programmi di installazione per ulteriori test, ecc.

  

qual è la differenza se io costruisco il mio progetto in VS?

E 'avviene automaticamente, e utilizzando la configurazione di default. Questo assicura che il progetto si basa sempre in modo corretto, e non solo sul sistema (ad esempio, perché avete un config speciale che si è dimenticato di controllare in controllo di versione, o avete una particolare IDE installato).

  

Come lo facciamo nel modo migliore per il progetto NET?

Utilizza un server CI (integrazione continua), ad esempio, CruiseControl.NET . Ci sono diversi a disposizione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top