Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Continuous Integration / Continuous Deployment: Welches Produkt verwenden?
Kantiran
myCSharp.de - Member



Dabei seit:
Beiträge: 71
Herkunft: CH

Themenstarter:

Continuous Integration / Continuous Deployment: Welches Produkt verwenden?

beantworten | zitieren | melden

Hallo zusammen

Ich möchte mich in nächster Zeit intensiv mit den Themen Continuous Integration / Continuous Deployment beschäftigen.
Dazu gehören natürlich auch Unit Tests und Code Analysis.

Meine Fragen an euch:
Welche Produkte setzt ihr in eurer Firma ein? In welcher Kombination?
Welche Erfahrungen habt ihr mit den verwendeten Produkten gemacht?

Speziell interessieren würden mich auch Erfahrungen mit nicht-Microsoft Software. Ich kenne bisher nur TFS (allerdings nicht als CI-System).
Es gibt ja diverse erhältliche Tools:
  • CruiseControl.NET
  • Draco.NET
  • TeamCity
  • Hudson
  • Usw.


Wir sind noch unschlüssig welche Tools wir intern als Standard definieren wollen.

Gruss Kantiran
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10084

beantworten | zitieren | melden

Da wir im Haus Jira als Bugtracker einsetzen, und Subversion für uns mit entfernten Entwicklern deutlich einfacher als TFS war, war auch bei uns ein nicht MS Tool für CI die erste Wahl.

Und da hat nach längerem Test dann Teamcity das Rennen gemacht.
Einer der ausschlaggebenden Punkt war die Admin UI.
Die ist per WebInterface auch einfach über die VPN zu erreichen.

Das die kostenlose Version dann auch noch 20 Projekte und auch 3 Buildagents unterstützt hat es noch einfacher gemacht.
private Nachricht | Beiträge des Benutzers
BhaaL
myCSharp.de - Member

Avatar #erP6yAFiewXrJTqrvg6R.jpg


Dabei seit:
Beiträge: 656

beantworten | zitieren | melden

Ich benutze schon seit längerer Zeit CruiseControl.Net und bin damit auch recht zufrieden.
XML-Basierte Konfiguration mit Präprozessor, durch Plugins und XSLT erweiterbar, unterstützt viele Sourcecontrol Systeme und das beste: it's free!
private Nachricht | Beiträge des Benutzers
haarrrgh
myCSharp.de - Member



Dabei seit:
Beiträge: 208
Herkunft: Raum Köln

beantworten | zitieren | melden

Wir benutzen Mercurial als Versionsverwaltung und TeamCity (die kostenlose Edition) als CI-Server.

Wir haben gar keinen anderen CI-Server ausprobiert - am meisten liest man über TeamCity und CruiseControl.net, und als ich gelesen habe daß CC.net per XML konfiguriert wird und TeamCity eine richtige UI hat, habe ich mich dafür entschlossen TeamCity als erstes auszuprobieren. Und dann bin ich direkt dabei geblieben
private Nachricht | Beiträge des Benutzers
Sclot
myCSharp.de - Member



Dabei seit:
Beiträge: 334
Herkunft: Bremen

beantworten | zitieren | melden

Ich hab damals zur Urzeiten mit Teamcity angefangen - damals war das aber alles noch nicht so schön einfach und übersichtlich gehalten :-)

Irgendwann hab ich mir dann CruiseControl.net angeschaut und bin dabei stehen geblieben.

CruiseControl.net ist jetzt Hauptbestandteil.
Subversion und Sourcesafe als Quellcodeverwaltung.
MSBuild kompiliert die Projekte.
NAnt führt zusätzliche Aufgaben (z.b. FTP-Upload) aus.
Und die Setups werden mit WIX geschrieben und über NAnt mit erledigt.

Das ist schon alles etwas komplex und langwierig bis man es so eingestellt hat wie man es braucht.
Aber wenn man es benutzen kann, dann sieht man sehr sehr viele Vorteile in dieser Flexibilität :-)


Ahh Edit:
Projektverwaltung mit Tickets bzw Bugrequests und Wiki machen wir mit Redmine :-)
private Nachricht | Beiträge des Benutzers
mabo
myCSharp.de - Member



Dabei seit:
Beiträge: 335

beantworten | zitieren | melden

Wir verwenden folgendes:

* CI: TeamCity (wir haben sowohl Projekte in Java als auch .NET)
* Versionsverwaltung: SVN
* Bugrtracking: Mantis
* Setups werden mit WIX erstellt (der Aufruf erfolgt über ein selbst erstelltes Programm das die .wxs-Dateien erstellt)
* zusätzlichen haben wir noch ein internes Wiki zur Projektverwaltung und allgemeine Firmeninformationen

Einzig mit Mantis bin ich nicht so ganz zufrieden, hier würde ich gerne Trac einsetzen und auch gleich das Wiki integrieren. Leider haben wir momentan keine Kapazitäten frei um das umzubauen.

TeamCity überzeugt vor allem durch die hervorragende Web-GUI (wie FZelle scho gesagt hat).
private Nachricht | Beiträge des Benutzers
kelkes
myCSharp.de - Member

Avatar #avatar-2494.jpg


Dabei seit:
Beiträge: 162
Herkunft: Wien/Österreich

beantworten | zitieren | melden

CI: TeamCity
Versionsverwaltung: Git, what else? (Gitorious) ;)
Task/Bug-Tracking: Jira
Projektverwaltung/Planung: GreenHopper
Interne Dokumentation: In den Wikis von Gitorious
"Eine wirklich gute Idee erkennt man daran,
dass ihre Verwirklichung von vorneherein ausgeschlossen erscheint."
(Albert Einstein)
private Nachricht | Beiträge des Benutzers
Kantiran
myCSharp.de - Member



Dabei seit:
Beiträge: 71
Herkunft: CH

Themenstarter:

beantworten | zitieren | melden

Hallo zusammen

Vielen Dank für die Antworten.
Wie ich sehe wird TeamCity und CruiseControl.NET oft benutzt. Ich werde mir diese genauer ansehen und mit TFS vergleichen.

Verwendet ihr diese Tools auch zusammen mit NUnit, FxCop oder den entsprechenden VS-Tools?
Ist Continuous Deployment auch ein Thema (automatisiertes Staging, d.h. installieren des Setups auf einem Testsystem)?

Gruss Kantiran
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10084

beantworten | zitieren | melden

NUnit und FXCop gehen sofort.
Und mit VS-Tools meinst du was?

Und da du mit allen CI systemen Ant oder MSBuild ( und einige andere ) benutzen kannst,
ist da ja alles möglich was sich eben automatisieren lässt.
private Nachricht | Beiträge des Benutzers
Kantiran
myCSharp.de - Member



Dabei seit:
Beiträge: 71
Herkunft: CH

Themenstarter:

beantworten | zitieren | melden

Ich meine die in VS Integrierten Tools für Unit Tests ("MS Testprojekt") und Code Analysis.
Soweit ich das richtig verstanden habe unterscheiden sich die VS Code Analysis und FxCop (auch wenn gleiche Assemblies verwendet werden).

...aber warscheinlich lässt sich wie geasagt alles mittels MSBuild anbinden.
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10084

beantworten | zitieren | melden

Das Problem ist dann nur die Lizenzierung.

Zum reinen Übersetzen der Sourcen benötigst du kein VS.NET, benutzt du aber die MS Unittests und die in VS.NET eingebauten CA Tools, benötigst du ein installiertes VS.NET und damit eine einzelne Lizenz.
private Nachricht | Beiträge des Benutzers
BhaaL
myCSharp.de - Member

Avatar #erP6yAFiewXrJTqrvg6R.jpg


Dabei seit:
Beiträge: 656

beantworten | zitieren | melden

Bei mir läuft unter CCNet unter anderem nUnit für Unittests (direkt beim Build), Scheduled für jeden Tag Integration Tests (mit Datenbank usw), Code Coverage über PartCover, Nightly Build Deployment auf ein Netzwerklaufwerk sowie für interne Anwendertests und Produktauslieferungen ein InstallShield Standalone build für Setups.
private Nachricht | Beiträge des Benutzers
kelkes
myCSharp.de - Member

Avatar #avatar-2494.jpg


Dabei seit:
Beiträge: 162
Herkunft: Wien/Österreich

beantworten | zitieren | melden

Zusätzliche Werkzeuge sind bei uns noch NUnit und MSpec für die Tests, und NCover für die Code-Coverage.
"Eine wirklich gute Idee erkennt man daran,
dass ihre Verwirklichung von vorneherein ausgeschlossen erscheint."
(Albert Einstein)
private Nachricht | Beiträge des Benutzers
Spontifixus
myCSharp.de - Member

Avatar #avatar-3052.gif


Dabei seit:
Beiträge: 408
Herkunft: Hannover

beantworten | zitieren | melden

[offtopic]
Zitat von Sclot
Projektverwaltung mit Tickets bzw Bugrequests und Wiki machen wir mit Redmine :-)

Bugrequest - was ein cooles Wort - das Analogon wäre dann der Featurereport (auch als "Bedienungsanleitung" bekannt) ;)

[/offtopic]
private Nachricht | Beiträge des Benutzers
dannyyy
myCSharp.de - Member



Dabei seit:
Beiträge: 62
Herkunft: Zürich

beantworten | zitieren | melden

Benutzen bei uns:

* CruiseControl.NET: automatische Builds (Zeit und andere Trigger), Staging, Tests, ...
* MSTest: Für die Unit-Tests
* Sharepoint: Für Tickets, Task, Bug-Tracking, Wiki, ...
* MSBuild zusammen mit CCnet fürs Builden
* Und die CodeCoverage Tools von VS für Metriken und CodeCoverage
* SVN als Code-Repository

Sind soweit zufrieden mit dieser Konstellation. CCnet macht alles was wir wollen, benötigt aber einiges an Zeit bis alles Konfiguriert ist.
private Nachricht | Beiträge des Benutzers
Kantiran
myCSharp.de - Member



Dabei seit:
Beiträge: 71
Herkunft: CH

Themenstarter:

beantworten | zitieren | melden

Hmm, mir ist Folgendes noch nicht ganz klar:
Egal welches CI-System ich verwende (TFS, TC, CC) die Build-Skripts (MSBuild, NAnt) wenden in jedem Fall von Hand geschrieben?

Was nimmt mir denn das GUI von TC beispielsweise ab?
...Ich bin wirklich Neuling in diesem Gebiet.

Btw.: Habe gerade gesehen das TFS 2010 den Build als WF-Workflow abbildet. Sieht noch schick aus, werde dies sicher ebenfalls noch genauer anschauen.
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10084

beantworten | zitieren | melden

Die BuildScripte müssen ja irgendwie geschrieben werden, wobei man per MSBuild auch einfach eine SLN Compilieren kann.

TC nimmt dir aber das drumherum ab, also Auswahl des SCM, ziehen der aktuellen Version, Anschmeissen der Compilation, erstellen von Abhängigkeiten der Projekte untereinander, Trigger für die Aktionen, Anzeige der Ausgaben, ausführen der Unittests usw.

All das musst du bei CC von Hand in XML machen.
private Nachricht | Beiträge des Benutzers