Dienstag, 16. Oktober 2007

Projekte mit Subversion verwalten

Eines der wichtigsten Dinge bei der Erstellung von Projekten ist die Verwaltung der Source-Codes. Schließlich solen nicht nur mehrere Entwickler die Codebasis gleichzeitig bearbeiten können, es soll auch möglich sein, Änderungen rückgängig machen zu können, vor allem, wenn man sich bei großen Refactorings komplett verzettelt hat.

Ich benutze für diese Zwecke Subversion. Es ermöglicht die gleichzeitige Bearbeitung ohne das Sperren von Dateien und kann Änderungen nicht nur an Quelltexten, sondern an beliebigen Dateien und Verzeichnissen nachvollziehen. Zudem gibt es mit AnkhSVN und TortoiseSVN hervorragende freie PlugIns für Visual Studio und den Windows Explorer. Ausserdem gibt es ausführliche Literatur dazu direkt im Web und zum Herunterladen.

Beim Erstellen der Subversionrepositories hat sich bei mir folgende Strategie bewährt:
  1. Es gibt nur ein Repository
  2. Es wird nur ein Subversion-Projekt erstellt. Das vorgeschlagene Projektlayout mit den Verzeichnissen trunk, branches und tags wird in diesem Projekt erstellt.
  3. Jedes Projekt, an dem gearbeitet wird, erhält in diesem Subversionprojekt ein Verzeichnis, in dem die Solution gespeichert wird.

Jetzt sind alle Projekte in einem einzigen Repository und können in einem Rutsch vom Server geladen und committed werden. Ausserdem ist die Wiederverwendung von Code aus anderen Solutions einfacher: Wird jede Solution in einem eigenen Repository gespeichert, muss man immer Annahmen treffen, in welchen Order das Projekt auf dem Entwicklungsrechner ausgecheckt wird. So können die Pfadangaben stattdessen relativ erfolgen und es ist egal, wohin jeder Entwickler seinen Code lokal speichert.

Allerdings ist es wichtig, zur Erstellung von Releases jedes Einzelprojekts einen eigenen Codebaum für die Vorbereitung und spätere Pflege in branches anzulegen, um von Änderungen in anderen Projekten unabhängig zu sein. Das eigentliche Release wird dann als tag abgelegt. Das Procedere ist im SVN-Buch noch einmal genauer beschrieben.

Das hört sich alles kompliziert und aufwändig an, tatsächlich ist es aber die Variante, die am schnellsten zu Ergebnissen führt und trotzdem für stabilen Code sorgt.

Freitag, 12. Oktober 2007

ALT.NET oder was heisst ".NET anders" überhaupt

Worum geht es bei diesem Blog eigentlich? Hauptsächlich um die Programmierung in mit dem .NET-Framework. Das mache ich beruflich, zumindest so 75% meiner Zeit. Dabei lernt man natürlich dazu. Wenn ich an meine ersten Projekte mit .NET und VS 2005 zurückdenke, bekomme ich das kalte Grausen.
Und das ist der Grund für dieses Blog. Während meiner Entwicklerlaufbahn habe ich erfahren, dass die Microsoft-Tools mit ihren Designern und Codegeneratoren (und dessen Ergebnissen) einen ordentlichen Anteil daran haben, dass ich lieber die toten Mäuse unserer Katze wegräume als diese Projekte weiterzupflegen...
Daraus habe ich meine Konsequenzen gezogen und bei den letzten beiden Projekten das Castle-Projekt verwendet und bin begeistert. Die Entwicklung damit ist effektiv, interessant und macht Spass. Allerdings ist mir aufgefallen, dass es im deutschsprachigen Raum kaum Blogs oder Ressourcen zu dem Thema ALT.NET gibt.
ALT.NET ist ein Begriff aus dem Englischen und bezeichnet alternative Programmiermethoden mit dem .NET-Framework. Eine (wenn auch etwas überspitzte) Zusammenfassung in englisch findet sich im Blog von Roy Osherove. Eine weitere gute (englische) Anlaufstelle ist auch das Blog von Oren Eini alias Ayende Rahien.
Demnächst plane ich, an dieser Stelle vor allem Tipps und Tricks zum Themenkomplex ALT.NET zu veröffentlichen und vor allem, mich mit gleichgesinnten Entwicklern auszutauschen.