5

Im Nachgang zu einem meiner früheren Beiträge ‚Using Version Control for Home Development‘, das bitte ich um Meinungen in Bezug auf einen Build-Server für ein Haustier-Projekt mit.Mit einem Continuous Integration Server für Home Entwicklung

In letzter Zeit habe ich über diesen ‚Build Server‘ -Konzept zu lesen, und ich habe bei Anwendungen wie Maven und CruiseControl.Net aussieht.

Und so frage ich, wie durchführbar ist es, etwas wie CruiseControl.Net für meine Heimtierprojekte zu verwenden?

Grund Ich frage ist, dass ich denke, dass diese Build-Server vor allem für Team-Projekte ausgerichtet sind ... aber andererseits, ich bin immer noch sehr neu in diesem automatisierten Build-Prozess.

Beachten Sie, dass die meiste Zeit, diese PET-Projekte nur von einem Mann behandelt werden, kein Team.

Also sollte ich mehr auf dieses Konzept für die Verwendung zu Hause schauen, oder sollte ich nur ein wenig Übung auf Erfahrung machen?

[EDIT]

Obwohl ich Ihnen allen für Ihre Antworten danken als Alternativen zu CC.Net und solche anbelangt, so hat noch niemand wirklich das Thema in Angriff genommen, ob es möglich ist oder nicht zu realisieren ist ein Build-System für die Entwicklung zu Hause?

Antwort

5

Es ist vollständig möglich, einen Build-Server für Ihr Zuhause Projekte zu realisieren. Ich habe CC.Net für meine Heimprojekte selbst implementiert und es ist ziemlich einfach, dies auch zum ersten Mal zu tun. Ich würde sagen, die Lernkurve (je nach Erfahrung) ist weniger als ein Tag Ihr erstes Projekt und Gebäude zu bekommen, obwohl es auf dieser Kurve immer längerer Schwanz ist, wie Sie in einige der interessantesten Details graben.

Die Frage an mich ist mehr eine der Motivation für die kontinuierliche Integration in diese Projekte. Wenn Sie "Home Project" synonym zu "Throw-away Project" verwenden, ist es wahrscheinlich nicht sinnvoll, sich mit CI auseinanderzusetzen, es sei denn, Sie verwenden es speziell als CI-Lernübung.

Wenn Sie jedoch davon ausgehen, dass es sich nicht um wegwerfbare Projekte handelt, habe ich (zusätzlich zu den offensichtlichen Vorteilen der Automatisierung) festgestellt, dass die Implementierung von CI dazu beiträgt, den Aufwand für die Rückkehr zu einem Projekt zu reduzieren. Ich ging für einige Zeit weg. Natürlich sind Komponententests in dieser Hinsicht das wertvollste Gut, aber die Kombination von Komponententests mit einem automatisierten Build/Deployment-Prozess ermöglicht es Ihnen, sich auf die neuen und geänderten Anforderungen zu konzentrieren, wenn Sie nach der Festlegung auf ein Projekt zurückkommen für eine Weile.

Zusätzlich, wie mghie in den Kommentaren zu dieser Antwort betont, "wird CI für Heimprojekte einen noch größeren Nutzen bringen, wenn sie aufeinander aufbauen, so dass Änderungen in einem Projekt dazu führen können, dass der Build in anderen bricht."

Mein Rat, tun Sie es einfach einmal, damit Sie ein klareres Bild davon haben, was beteiligt ist und welche Vorteile Sie ernten könnten und welche Nachteile Sie erleiden könnten. Entscheiden Sie dann selbst, ob es sich lohnt weiter zu machen. Wie ich schon sagte, die Lernkurve ist ziemlich niedrig, so dass die Investition, die Sie machen müssen, um es auszuprobieren, nicht der Grund dafür sein sollte.

Nutshell: Machbar - Ja, Wünschenswert für zu Hause Projekte - Durchaus möglich, Worth weitere Untersuchung - Auf jeden Fall, Investition - Relativ niedrige

+0

+1, eine sehr nette Antwort, insofern man die Frage für das OP beantworten kann. Ich würde wahrscheinlich hinzufügen, dass CI einen größeren Nutzen für Home-Projekte bietet, wenn sie aufeinander aufbauen, so dass Änderungen in einem Projekt dazu führen können, dass der Build in anderen bricht. – mghie

1

ich installierte CC.net Monaten dauerte es eine ganze Nacht, um es zu konfigurieren und erstellen Sie die XML-Konfigurationen, und ich habe es nicht bereuen, es reibungslos integriert mit SVN, Nunit, Nant oder Msbuild. Sie sollten es nur versuchen, wenn es Erfahrung

+0

+1 für den Versuch, Erfahrungen zu sammeln. Sie wissen nie, wann Sie ccnet in einem zukünftigen Arbeitsprojekt verwenden müssen. – Pedro

1

einen Blick auf Hudson Nehmen Sie seine sehr einfach zu gewinnen ist. Sie müssen nur in Tomcat oder einem anderen Servlet, das Sie verwenden, Container bereitstellen. Nach dem Start kann jede Konfiguration mit dem Browser durchgeführt werden. Hudson unterstützt Maven, Ant usw. und unterstützt alle wichtigen SCMs. Ich benutze Hudson seit einem Jahr und habe keine Probleme.

0

CC.NET ist sehr machbar, in der Tat mit den frei Kosten und weitreich unterstützte Aktionen. Ganz zu schweigen von der Tatsache, dass, da Sie den Quellcode bekommen können, Sie ihn an Ihre Bedürfnisse anpassen können, konnte ich mir nichts Besseres vorstellen. Ich las die anderen Entschuldigungen darüber, wie schwierig es ist, sich einzurichten, aber um ehrlich zu sein, hatte ich innerhalb einer Stunde mein erstes einfaches TFS/VS2005-Projekt. Denken Sie nur daran, wenn Sie Probleme oder Probleme haben. CC.NET hat eine ziemlich aktive Google-Gruppe für Benutzer und Entwickler, die bereit sind, Ihnen durch irgendwelche Probleme zu helfen.

0

Ich liebe CC.NET und ich bin ein großer Fan von CI, aber ich habe Fragen: Mit nur einem Entwickler des Projekts, welche Integrationsszenarien gibt es? Würden Sie nicht einfach das gesamte Projekt in Visual Studio erstellen, was die Notwendigkeit von CI überflüssig macht?

+0

CI bedeutet nicht nur kompilieren. Sie könnten auch 1. Löschen Quellverzeichnis und erstellen neu erstellt einige Abhängigkeit und Verknüpfungsprobleme. 2. Komponententests, Statische Analyse, Code Metriken 3. Automatisierte UI-Test auf Multi-Plattformen 4. Dinge wie D'Sauerstoff 5. Veröffentlichen oder Installer auf Anfrage – Alex

+0

Das ist, was ich NAnt für verwenden würde. –

+0

OK, nun, das ist CI, egal, was Sie verwenden, also sehe ich nicht, wie das Erstellen in Visual Studio CI überflüssig macht. – Alex

0

Ich würde zustimmen, dass CC.NET eine gute Option für lokale/Home-Entwicklung ist. Ich wollte hinzufügen, dass es kein SCM-Tool benötigt, damit es funktioniert. Es gibt einen Dateisystemüberwacher plugin, der nur für einen Dateiwechsel überwachen wird. Auf diese Weise müssen Sie nicht einchecken, um es auszuführen. Außerdem müssen Sie nicht warten, bis der CI-Zyklus abgeschlossen ist. Es ist so, als würde F6 jedes Mal ausgeführt werden, außer wenn die IDE nicht alle ihre Ressourcen verwendet, können Sie die Programmierung fortführen. Wenn es bricht, können Sie wählen, ob Sie es untersuchen oder ignorieren möchten. Es gibt keinen Weg, CI zu machen.

Wenn Sie Komponententests erstellen, hat das ständige Ausführen gegen Ihren Code bei jedem Speichern sicherlich einige Vorteile in frühen Problemen. Mit CCTray können Sie es sehen, aber nicht intrudiert werden. Meine 2 Cent.

Schließlich kann es ein wenig schwierig sein, es beim ersten Mal einzurichten, aber Sie können eine Visual Studio C# Vorlage oder was auch immer Sie wollen, automatisch Ihre CI-Konfiguration mit der geringsten Menge an Informationen für den Benutzer konfigurieren.

Verwandte Themen