Frage

Ich bin ein newbie-Entwickler, die wollen eine bessere Software-Entwicklungsprozess lernen. Meine Fragen sind:

  1. was ist täglich-build im Allgemeinen?
  2. was ist der Unterschied, wenn ich mein eigenes Projekt in VS bauen?
  3. , wie wir es tun, den besten Weg für .net-Projekt (vorzugsweise unter Verwendung von TFS)?
  4. mehr Dinge, dass ich / haben zu kennen?

Jeder Verweis auf einen Artikel / Bücher / andere Fragen sind willkommen.

Danke

War es hilfreich?

Lösung

1) Vom Wikipedia-Eintrag :

  

Eine tägliche Build oder Nightly Build ist die Praxis eines jeden Tages einen Software-Build der neuesten Version eines Programms zu tun. Dies ist so, es kann zuerst, um sicherzustellen, kompiliert werden, dass alle erforderlichen Abhängigkeiten vorhanden sind, und möglicherweise keine Fehler zu zeigen, getestet wurden eingeführt. Die tägliche Build ist oft auch öffentlich für den Zugang zu den neuesten Funktionen für Feedback.

2) Es soll kein Unterschied zwischen einem Nightly Build und einem Build von VS, aber die Idee hinter einem täglichen Build ist, dass es automatisiert ist. Auf diese Weise können sie planen können um 3 Uhr :)

laufen

Es wäre auch eine gute Idee, Prüfschritte laufen (zum Beispiel Einheit oder Funktionstests) nichts zu überprüfen, ob in der neuesten gebrochen. Dadurch können Sie garantieren, dass die Build compiliert und ist in einem guten Zustand. So können Sie eine neue Build-at-will bereitstellen können.

Ohne ein solches Verfahren an Ort und Stelle, wenn jemand einen Build braucht man wirklich nie wissen, wie lange es könnte es ihnen um Wirkung zu entfalten. Sie können in der Lage sein, nur es ohne Probleme in VS zu bauen, oder Sie haben müssen nur Teile des Codes zu beheben, um es zu bauen. Dies wird ein größeres Problem, wenn Ihr Build ist groß und besteht aus mehreren Lösungen, dass jeder Bedarf separat gebaut werden.

3) Sie können eine Batch-Skript erstellen, das den Build für Sie läuft, von Ihnen ein Werkzeug für diesen Zweck verwenden können. Weitere Informationen finden Sie unter: Was-Tool-to-use-for-Automatik -nightly-Builds . Einige ihrer Vorschläge sind:

Andere Tipps

Artikel von Joel. Gut zu lesen.

Eine tägliche Build ist meist ein automatisiertes Build, Build von einem zentralen Server. Der Unterschied in Ihr eigenes Projekt Aufbau ist, dass Sie von allen DLL in der Anwendung verpackt bewusst erhalten, Code nicht in in der Quellcodeverwaltung, lokale Abhängigkeiten geprüft, etc .. Die letzte kompilierte Anwendung und DLL sind die gleiche wie die ist, Sie vor Ort bauen.

Wir verwenden Hudson über Nacht baut aber Sie können auch ein href verwenden <= "http: // confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET“rel = "nofollow noreferrer"> Cruise control.Net. Weil wir tun Java & .NET Hudson die beste Lösung ist. Wenn Sie den Team Foundation Server von MS haben könnten Sie auch diese verwenden.

Bitte schauen Sie unter dieser für die Integration von Hudson und C #.

Sehen Sie sich auch StyleCop, FXCop und Unit-Tests in Ihren Build-Server zu integrieren.

Es ist ein ausgezeichneter Artikel von Martin Fowler zu diesem Thema

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

Ich bin nicht einverstanden, dass persönlich Quelle Bauordnung von Ihnen Entwicklung env ist das gleiche wie ein Nightly Build oder täglichen Build zu tun. Entwicklungsumgebung mit Komponenten, SDK, Bibliotheken und Ressourcen überflutet, die irgendwann lose Ende zu verstecken. Doing ein Nightly Build auf einem Build-Rechner ist der beste Weg zu gehen.

Auch ein Build von den eigenen Maschine verhindert zu Mainstream-Code tägliche Check-In zu tun. Wieder eine schlechte Praxis.

Ein Nightly Build sollte mit mindestens erforderlichen Build-Tools und Bibliotheken arbeiten. Mit ganzem dev env auf Build-Rechner ist eine schlechte Idee. Eine komplette Build hätte auch ein paar schnelle und schmutzig - seichte automatisierte Tests auf Code auszuführen, nachdem es kompiliert, zu bauen, und in Test / pre-prod env eingesetzt. NUnit, Selen und FxCop sind deine Freunde.

  1. Ein automatisiertes Build jeden Tag (oder Nacht) des gesamten Systems. Die Build-System Bericht Buildfehler der Post, etc.
  2. Sie baut auf einer separaten Maschine, macht es sicher, dass Sie nicht in irgendwelchen Dateien zu überprüfen vergessen haben oder nicht dokumentierte Abhängigkeiten auf Ihrem Rechner nur installiert. Und es meldet Fehler.
  3. Do not Stop bei täglichen Builds, für die kontinuierliche Integration gehen, die in nach jeder Prüfung aufbaut. Werfen Sie einen Blick auf Cruisecontrol.net .
  1. Täglich baut bestimmt sind, dass einmal täglich zumindest sicherzustellen, dass Ihre Anwendung in bebaubarem Zustand befindet. Sie werden in der Regel durch einen automatisierten Prozess laufen. Viele Teams bevorzugen kontinuierliche Integration haben Builds, dass vorbereitet werden nach jedem Check-in in das Repository.

  2. Automatische tägliche Verfahren haben den Vorteil, automatisierte :) Sie können auch eingerichtet, um verschiedene Hilfs Aufgaben: Ausführung von Unit-Tests zur automatischen Bereitstellung von Serverkomponenten. Wenn Sie das Gebäude auf der Dev-Maschine, sorgen Sie dafür, dass Ihre local Kopie gültig ist und übersetzbar, während CI-Server das gleiche über Ihre Repository .

    behauptet
  3. CruiseControl.NET ist eine beliebte Lösung. Sie können sich auch Rake verwenden.

1) Eine tägliche Build ist eine Suppe zu Muttern Build Ihrer Code-Basis und die Prozesse, die das Installationsprogramm durch einschließlich der Tests gehen würde, Installation und möglicherweise Entfernung.

2) Das ist eine lokale bauen, sollte es keinen wirklichen Unterschied, außer Sie kompilieren werden und die Prüfung der Code nicht unbedingt den Bewerbungsprozess.

3) Es ist in der Luft, abhängig von Budget, Team, unter anderem.

4) Der Artikel von Joel, wie zuvor geschrieben wurde.

  

Was ist täglich-build im Allgemeinen?

„Daily Build“ ist Teil von „Continuous Integration“ und bedeutet, dass ein komplettes Projekt regelmäßig gebaut wird und automatisch. Typischerweise geschieht dies mindestens einmal pro Tag, oder sogar noch häufiger, wenn möglich, vielleicht sogar nach jeder Änderung.

Das Hauptziel ist es sicher, dass das Projekt machen kann immer gebaut werden; Auch können verschiedene Tests als Teil des Build ausgeführt werden, können Sie automatisch zu einer Testumgebung bereitstellen, erzeugen Installateure für weitere Tests usw..

  

Was ist der Unterschied, wenn ich mein eigenes Projekt in VS bauen?

Es geschieht automatisch, und mit der Standardkonfiguration. Dies stellt sicher, das Projekt baut immer richtig, und nicht nur auf Ihrem System (z weil Sie eine spezielle Konfiguration, die Sie in der Versionskontrolle vergessen zu überprüfen, oder Sie haben eine bestimmte IDE installiert ist).

  

Wie können wir es tun der beste Weg für .net-Projekt?

Mit einem CI (Kontinuierliche Integration) -Server, z.B. CruiseControl.NET . Es gibt mehr zur Verfügung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top