MSDN Magazine > Home > Issues > 2008 > March >  { End Bracket }: Was ist ALT.NET?
{ End Bracket }
Was ist ALT.NET?
Jeremy D. Miller


Letztes Jahr hat David Laribee den Begriff „ALT.NET“ geprägt, um eine innerhalb der größeren Welt von Microsoft® .NET Framework entstehende Community gleichgesinnter Personen zu beschreiben, deren Enttäuschung, dass die Tools, die Leitfäden und die .NET-Kultur von Microsoft eine wichtige Gruppe zentraler Werte nicht wiedergeben oder nicht unterstützen, immer größer geworden war. Im Oktober 2007 haben sich ungefähr hundert Menschen in Austin, Texas, zur ersten ALT.NET Open Spaces-Veranstaltung zusammengefunden und das Schlagwort „Blogosphäre“ zu etwas Greifbarerem gemacht, indem sie die Bildung einer echten Community in Gang gesetzt haben.
Was ist also ALT.NET? Worin unterscheidet es sich vom .NET, dass wir bereits kennen und schätzen gelernt haben? Worum handelt es sich bei diesen Werten, von denen viele von uns glauben, dass sie fehlen? Worum handelt es sich bei diesen alternativen Tools, Verfahren und Methoden, für die sich die Befürworter von ALT.NET einsetzen? Ich will zunächst untersuchen, welche Grundsätze einen ALT .NET-Entwickler ursprünglich gekennzeichnet haben.
  1. Sie sind die Art von Entwickler, die stets das verwendet, was funktioniert, und gleichzeitig nach einem besseren Verfahren Ausschau hält. Eines der allgemeinen Themen der ALT .NET-Veranstaltung war das Schließen von Lücken zwischen Anforderungen, Tests und Code. An der Art, wie Software entwickelt wird, lässt sich noch immer vieles optimieren.
  2. Sie suchen außerhalb des Mainstream, um das Beste aus jeder Community zu übernehmen: Open Source, Agile, Java, Ruby. Weder Microsoft noch die .NET-Community haben ein Monopol auf gute Softwareentwicklung. Agile-Prozesse und Entwurfsmuster sind beispielsweise aus Smalltalk hervorgegangen. In ähnlicher Weise sind Steuerumkehrungstools und -verfahren aus Java entstanden. In .NET werden zwei Grundprinzipien von Ruby on Rails übernommen: „Wiederhole dich nicht“ und „Konvention geht vor Konfiguration“.
  3. Sie sind mit dem Status quo nicht zufrieden. Die Dinge können stets eleganter, veränderbarer und qualitativ hochwertiger sein. Wir experimentieren alle mit Verfahren, um das Codieren und Testen enger mit dem Geschäftsbereich zu verbinden. Zum Beispiel verfeinert und erweitert die verhaltensgesteuerte Entwicklung (Behavior Driven Development, BDD) die testgesteuerte Entwicklung (Test Driven Development, TDD), indem sie das beabsichtigte Verhalten des Codes auf lesbarere Weise festlegt, als dies klassische xUnit-Tests tun. Darüber hinaus ist sprachorientierte Programmierung in der Lage, die Abstraktionsschicht auf die Ebene der Domänenlogik anzuheben.
  4. Sie merken, dass Tools zwar eine tolle Sache sind, Sie aber nur eine bestimmte Strecke weit voranbringen können. Worauf es wirklich ankommt, sind Prinzipien und Wissen. Die besten Tools sind diejenigen, die Wissen einbinden und Prinzipien fördern (z. B. ReSharper). Außerdem spüren Sie, dass die wichtigsten Qualitäten einer Lösung Verwaltbarkeit und Nachhaltigkeit sind. Verwaltbarer Code bedeutet gutes Design. Gutes Design ergibt sich durch die gelungene Anwendung von Designkenntnissen. Die .NET-Community hat sich zu stark darauf konzentriert, sich API- und Frameworkdetails anzueignen, und den Design- und Codierungsgrundlagen nicht genug Wert beigemessen.
Ein Teil des Katalysators, der dazu geführt hat, dass die ALT.NET-Flagge gehisst wurde, war eine Vorführung einer Betaversion des neuen Entity Framework im März 2007. Ich und andere waren von bestimmten Elementen des Entity Framework – insbesondere vom Mangel an „Persistenzignoranz“ und der engen Verkoppelung mit der Datenbank – enttäuscht. Zu diesem Zeitpunkt schien das Entity Framework für TDD, domänengesteuerte Entwicklung oder kontinuierliches Design – alles Dinge, die ich für eine verwaltbare Entwicklung für wichtig erachte – nicht geeignet zu sein.
Das neue MVC-Framework (Model View Controller) für ASP.NET-Entwicklung dagegen ist sehr interessant, weil es die Werte, die meiner Meinung nach für eine erfolgreiche Softwareentwicklung wichtig sind, explizit unterstützt und fördert. Das MVC-Framework spiegelt deutlich die Werte der Verwaltbarkeit und Testbarkeit wieder, da im gesamten Design des Frameworks Nachdruck auf die Trennung von Bereichen und auf die Testbarkeit gelegt wird.
Es ist leicht, dem Zustand der Entwicklung zynisch oder apathisch gegenüberzustehen. Statt jedoch darüber zu jammern, dass Hänschen nicht programmieren kann, und uns darüber zu beklagen, dass es schwer ist, gute Entwickler einzustellen, sollten wir vielleicht zugeben, worin das Hauptproblem liegt: Wir sind furchtbar schlecht darin, gute Entwickler heranzuziehen.
Viele Entwickler würden mit Begeisterung objektrelationale Zuordnung und TDD einsetzen, wenn sie nur wüssten, wie sie damit beginnen können. Gleichzeitig wollen Programmierer, die diese Verfahren bereits verwenden, ihr Können verbessern, indem sie mit anderen, die diese Verfahren verwenden, in Kontakt treten. Meine größte Hoffnung für die ALT.NET-Bewegung besteht darin, dass sie eine Community schaffen wird, die beide Gruppen unterstützt und ihnen allen hilft, zu hervorragenden Entwicklern zu werden. Zu diesem Zweck wurde jetzt die Altnetpedia-Website (altnetpedia.com) mit einem ersten Entwurf einer Liste von Ressourcen in Betrieb genommen, über die man lernen kann, wie diese Verfahren in .NET eingesetzt werden können. Das altnetconf-Message Board (tech.groups.yahoo.com/group/altdotnet) ist bereits eingerichtet und gewinnt als Ort, an dem .NET-Fachleute über Entwicklungsthemen diskutieren können, immer mehr an Bedeutung. Schauen Sie doch mal herein!


Jeremy D. Miller ist Entwicklungsmanager für Bayern Software in Austin, Texas. Seinen Blog finden Sie unter codebetter.com/blogs/jeremy.miller.

Page view tracker