| 

.NET C# Java Javascript Exception

2
Ich zitiere aus der Wikipedia:

Die Idee der fortlaufenden Integration ist einfach:
1. Jeder Entwickler soll frühzeitig und oft Änderungen in die Versionsverwaltung einchecken d.h. er sollte versuchen, eine große Änderung inkrementell durch funktionsfähige kleine Änderungen einzubringen. Normalerweise sollte jeder Entwickler mindestens täglich seine Änderungen einchecken.
2. Sobald ein Entwickler Änderungen in die Versionsverwaltung eincheckt, wird das Gesamtsystem neu gebaut und automatisch getestet. Es wird versucht, dem Entwickler so schnell wie möglich auf Integrationsprobleme seiner Änderung hinzuweisen.


Ich will das mal mit einem meiner Projekte versuchen. Wie finde ich einen leichten Einstieg in das Thema Kontinuierliche Integration bzw. Continuous Integration? Welche best-practices habt ihr aus eurer Erfahrung gelernt?
20.08.2009
alexander 860 2 9
7 Antworten
3
Ich wuerde dir Hudson empfehlen.
Hat meiner Meinung nach den grossen Vorteil,
dass man nicht wie bei CC irgendwelche abgefahrenen Konfigurationsdateien pflegen muss,
sondern so gut wie alles ueber ein Web Frontend,
das sehr intuitiv ist konfiguriert werden kann.

Zusaetzlich ist Hudson durch Plugins erweiterbar und auch Support bei eventuellen Problemen, wirst du ueber die Mailingliste schnell bekommen.

Schau's dir ainfach mal an,
die Installation ist kinderleicht,
da hudson sogar seinen eigen Servlet Container mitbringt.
07.09.2009
adalse0 161 1 4
1
Continous Integration ist ein Guter Ansatz!

Normalerweise benötigt man einen Server, welcher das Deployment / Building der Anwendung übernimmt und dazu in den Buildprozess und die Versionsverwaltung eingreift.

Zur Zeit verwendet meine dazu Firma Cruise Control .NET (klar, für .net, gibt es aber auch für java! )

http://de.wikipedia.org/wiki/CruiseControl

"Best Practices" sind von der verwendeten Infrastruktur abhängig! Darauf kann ich nur schwer eingehen, da du dazu keine weiteren Angaben gemacht hast, jedoch deckt CCNET beides ab, sowohl .net als auch java, einfach mal querlesen, vllt. findest du das richtige :)
07.09.2009
cessor 61 1 2
1
Am einfachsten ist es mit CruiseControl.NET.
Es installiert sich als Service und man kann mittels eine ".config" Datei alles einstellen. Die Ergebnisse können dann über Browser angeguckt werden (Compiler logs usw.) Es integriert sich prima mit NUnit (Unit tests) und alle gängige Versionskontrolle Software (SVN, GIT, Perforce, CVS, und vieles mehr) und das beste: es kostet nichts und der Quellcode ist offen! Anpassungen habe ich z.B. vornehmen müssen um Benutzer aus der Software Versionsverwaltung in EMails umzuwandeln.

http://confluence.public.thoughtworks.org/display/CCNET

Ich habe es z.B für nightly builds Zeitlich gesteuert angetriggert. Die Continuous builds werden von der Versionswaltung gesteuert. Läuft prima seit Jahren und wenn Zeit da ist kann man schöne Diagrammen & Statistiken mit ins "dashboard" packen.
07.09.2009
jdehaan 434 2 7
jdehaan 434 2 7
1
Ich kann dir auch nur Hudson ans Herz legen, das erfüllt Punkt 2 auf deiner Liste.

Bei Punkt 1 wird es allerdings schwieriger, Entwickler zu erziehen ist ein ganz eigenes Thema. Bei meinem Brötchengeber wurde das Thema eine Zeitlang ziemlich brutal angegangen und jede Nacht per Cronjob das home Verzeichnis gelöscht -> jeder hat das committem vorm Nachhausegehen sehr schnell gelernt.
Diese Methode funktioniert ob ihrer Radikalität aber nur in wenigen Teams, daher würde ich eher tägliche Status Meetings (ähnlich wie im XP beschrieben) empfehlen. Sie zwingen jeden über seinen aktuellen Entwicklungsstand Auskunft zu geben und üben so eher einen lockeren, indirekten Zwang zum committen aus.

Aber egal was du tust, die Idee ist die richtige und eure interne Qualität (Code _und_ Prozesse) wird sich auf jeden Fall verbessern.
07.09.2009
oxnard van ploptor 21 1 2
1
Hiervon hört man auch viel Gutes:
http://www.jetbrains.com/teamcity/
Das werde ich als erstes mal testen, weil bei mir der gleiche Schritt ansteht, in das Thema einzustehen.
07.09.2009
noi76 41 1 1
0
Wir haben bei uns Subversion und CruiseControl.NET laufen. Jemand checkt Änderungen über AnkhSVN (Visual Studio) ein und sie werden direkt ins System übernommen. Sehr fein und bequem. Man muss sich nur sicher sein, dass alles funktioniert, d.h. gut getestet ist.
08.09.2009
Kiko 541 1 3
0
Obwohl ich kein Freund von Java bin (schlechte Erfahrungen) muss ich sagen, daß diese Softwarelösung wirklich gut gelungen ist! Sie eignet sich sehr gut für den Einstieg in das Thema Continuous Integration, weil man auch ohne Erfahrung auf dem Gebiet bereits nach kurzer Zeit eine lauffähige Projektüberwachung stehen hat, die man dann dank zahlreicher Addons sehr gut ausbauen kann.

Auch wir haben in der Firma einen Hudson laufen. Unser System arbeitet mit dem Versionierungssystem SVN zusammen. Der Hudson nutzt die Firmendomäne zur Rechteverwaltung und auch ein E-Mailbenachrichtigungssystem für Fehlerfälle setzen wir ein.
Zudem haben wir zahlreiche Auswertungen für die Softwarequalität und können so den Projektverlauf verfolgen.

Und falls das noch nicht genug Gründe waren: Hudson ist kostenfrei. ;)
08.09.2009
Mayday21 21 3

Stelle deine .net-Frage jetzt!