Wie erstellt man täglich ein .net Projekt von A - Z?

8

Ich bin ein Anfänger Entwickler, der Software Entwicklungsprozess besser lernen will. Meine Fragen sind:

  1. Was ist der tägliche Build im Allgemeinen?
  2. Was ist der Unterschied, wenn ich mein eigenes Projekt in VS erstelle?
  3. Wie machen wir das am besten für .net project (vorzugsweise mit TFS)?
  4. mehr Dinge, die ich wissen sollte / sollte?

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

Danke

    
Arief 08.11.2010, 16:07
quelle

8 Antworten

5

1) Aus dem Wikipedia-Eintrag :

  

Ein täglicher Build oder ein nächtlicher Build ist die tägliche Praxis eines Software Builds der neuesten Version eines Programms. Dies ist so, dass es zuerst kompiliert werden kann, um sicherzustellen, dass alle erforderlichen Abhängigkeiten vorhanden sind, und möglicherweise getestet wurde, um anzuzeigen, dass keine Fehler eingeführt wurden. Das tägliche Build ist oft auch öffentlich verfügbar und erlaubt den Zugriff auf die neuesten Funktionen für Feedback.

2) Es sollte keinen Unterschied zwischen einem nächtlichen Build und einem Build von VS geben, aber die Idee hinter einem täglichen Build ist, dass es automatisiert ist. Auf diese Weise können Sie planen, dass es um 3 Uhr morgens läuft.

Es wäre auch eine gute Idee, Verifikationsschritte (z. B. Unit- oder Funktionstests) durchzuführen, um zu überprüfen, ob im letzten Build nichts passiert ist. Dadurch können Sie garantieren, dass der Build kompiliert und in einem guten Zustand ist. Auf diese Weise können Sie nach Belieben einen neuen Build bereitstellen.

Ohne einen solchen Prozess, wenn jemand einen Build benötigt, wissen Sie nie wirklich, wie lange es dauern könnte, um ihn an Sie zu liefern. Möglicherweise können Sie es einfach in VS ohne Probleme erstellen, oder Sie müssen möglicherweise Teile des Codes reparieren, nur um es zu erstellen. Dies wird zu einem größeren Problem, wenn Ihr Build groß ist und aus mehreren Lösungen besteht, die jeweils separat erstellt werden müssen.

3) Sie könnten ein Batch-Skript erstellen, das den Build für Sie ausführt, von dem Sie ein Tool für diesen Zweck verwenden könnten. Weitere Informationen finden Sie unter: what-tool-to-use-for-automatic -nächste-bauten . Einige ihrer Vorschläge beinhalten:

Justin Ethier 08.11.2010, 16:12
quelle
3

Artikel von Joel. Gut zu lesen.

    
Liviu M. 08.11.2010 16:10
quelle
3

Ein täglicher Build ist meist ein automatisierter Build, der von einem zentralen Server erstellt wird. Der Unterschied beim Erstellen eines eigenen Projekts besteht darin, dass Sie auf alle in Ihrer Anwendung gepackten DLLs, nicht in der Quellcodeverwaltung eingecheckten Code, lokale Abhängigkeiten usw., achten. Die endgültige kompilierte Anwendung und DLLs sind identisch mit denen, die Sie lokal erstellen.

Wir verwenden Hudson für Builds über Nacht, aber Sie können auch Cruise control.Net. Weil wir Java & amp; .NET Hudson ist die beste Lösung. Wenn Sie den Team Foundation-Server von MS haben, können Sie dies auch verwenden.

Sehen Sie sich dies an, um Hudson und C # zu integrieren.

Ziehen Sie auch die Integration von Stylecop-, FXCop- und Unit-Tests in Ihren Build-Server in Betracht.

    
Bas Danen 08.11.2010 16:15
quelle
3

Es gibt einen ausgezeichneten Artikel von Martin Fowler zu diesem Thema

Ссылка

Ich persönlich bin nicht der Ansicht, dass das Erstellen von Quellcode aus Ihrer Entwicklungsumgebung dasselbe ist wie das Erstellen einer nächtlichen Version oder eines täglichen Builds. Die Entwicklungsumgebung ist mit Komponenten, SDKs, Bibliotheken und Ressourcen überflutet, die manchmal losen Enden verbergen. Machen Sie einen nächtlichen Build auf einer Build-Maschine ist der beste Weg zu gehen.

Auch das Erstellen eines Builds von Ihrem eigenen Computer verhindert tägliche Check-ins für Mainstream-Code. Wieder eine schlechte Übung.

Ein nächtlicher Build sollte mit den minimal erforderlichen Build-Tools und -Bibliotheken funktionieren. Es ist eine schlechte Idee, das gesamte dev env auf der Build-Maschine zu verwenden. Ein vollständiger Build hätte auch einige schnelle und schmutzige - flache automatisierte Tests, die auf Code ausgeführt werden, nachdem er kompiliert, erstellt und in test / pre-prod env implementiert wurde. NUnit, Selenium und FxCop sind deine Freunde.

    
Faheem 08.11.2010 17:21
quelle
2
  1. Ein automatisierter Build jeden Tag (oder jede Nacht) des gesamten Systems. Der Build System Report Build Fehler meine Mail, etc.
  2. Es baut auf einer separaten Maschine auf, es stellt sicher, dass Sie nicht vergessen haben, irgendwelche Dateien einzuchecken oder nur undokumentierte Abhängigkeiten auf Ihrem Rechner installiert haben. Und es meldet Fehler.
  3. Hören Sie nicht bei täglichen Builds auf, sondern gehen Sie nach jedem Check-in für eine kontinuierliche Integration vor. Sehen Sie sich Cruisecontrol.net .
Albin Sunnanbo 08.11.2010 16:12
quelle
2
  1. Mit täglichen Builds soll sichergestellt werden, dass sich Ihre Anwendung mindestens einmal pro Tag im Buildable-Status befindet. Sie werden normalerweise in einem automatisierten Prozess ausgeführt. Viele Teams bevorzugen kontinuierliche Integrations-Builds, die nach jedem Check-in im Repository erstellt werden.

  2. Automatisierter täglicher Prozess hat den Vorteil, automatisiert zu werden. Sie können ihn auch so einrichten, dass er verschiedene zusätzliche Aufgaben ausführt: vom Ausführen von Komponententests bis zum automatischen Bereitstellen von Serverkomponenten. Wenn Sie auf Ihrem Dev-Computer aufbauen, stellen Sie sicher, dass Ihre lokale Kopie gültig und kompilierbar ist, während der CI-Server dasselbe über Ihr Repository behauptet.

  3. CruiseControl.NET ist eine beliebte Lösung. Sie können auch Rake verwenden .
Dmitry Ornatsky 08.11.2010 16:22
quelle
1

1) Ein täglicher Build ist eine vollständige Zusammenfassung Ihrer Code-Basis und der Prozesse, die der Installer durchlaufen würde, einschließlich Tests, Installation und möglicherweise Entfernung.

2) Das ist ein lokaler Build, es sollte keinen wirklichen Unterschied geben, außer dass Sie nur den Code kompilieren und testen, nicht unbedingt den Anwendungsprozess.

3) Es liegt in der Luft, hängt vom Budget, Team, unter anderem ab.

4) Der Artikel von Joel wie zuvor gepostet wurde.

    
Woot4Moo 08.11.2010 16:11
quelle
1
  

Was ist der tägliche Build im Allgemeinen?

"Daily build" ist ein Teil der "Continuous Integration" und bedeutet, dass ein komplettes Projekt regelmäßig und automatisch erstellt wird. In der Regel geschieht dies mindestens einmal täglich oder noch häufiger, wenn möglich, vielleicht sogar nach jeder Änderung.

Das Hauptziel ist es, sicherzustellen, dass das Projekt immer gebaut werden kann; Außerdem können verschiedene Tests als Teil des Builds ausgeführt werden, Sie können sie automatisch in einer Testumgebung bereitstellen, Installationsprogramme für weitere Tests generieren usw.

  

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

Dies geschieht automatisch und unter Verwendung der Standardkonfiguration. Dadurch wird sichergestellt, dass das Projekt immer korrekt erstellt wird und nicht nur auf Ihrem System (z. B. weil Sie eine spezielle Konfiguration haben, die Sie vergessen haben, in die Versionskontrolle einzuchecken, oder Sie haben eine bestimmte IDE installiert).

  

Wie machen wir das am besten für .net project?

Verwenden Sie einen CI-Server (Continuous Integration), z. CruiseControl.NET . Es sind mehrere verfügbar.

    
sleske 08.11.2010 16:12
quelle

Tags und Links