Im Folgenden habe ich ein Liste der zehn Tools zusammen gestellt, die ich für die effiziente (und kostengünstige
) Entwicklung mit .NET 2.0 einsetze. Natürlich lässt sich alles auch mit kommerziellen Tools, im besten Fall von Microsoft, abdecken, oder man hat ein (ebenfalls nicht billiges) MSDN-Abonnement – Sinn macht das aber meistens nur bei wirklich großen Projekten in Unternehmen, denen Einsparpotentiale herzlich egal sind. Gerade als kleiner oder mittelständischer Software-Produzent ist es aber durchaus ratsam, seine Kosten diesbezüglich etwas im Auge zu behalten. Die hier vorgestellte Sammlung hat mich jedenfalls bisher noch nie enttäuscht und die Investitionskosten beliefen sich auf ein Minimum.
- Microsoft Visual Studio 2005 Professional – als Non-Plus-Ultra der Entwicklungsumgebungen für .NET
Für kleine Projekte reicht vermutlich auch die Standard-Edition aus, allerdings bietet die Professional-Edition ein paar ziemlich nützliche Extras wie z.B. Erstellung von Setup-Projekten oder Remote-Debugging. Team System dagegen lohnt sich eigentlich nur bei sehr großen Projekten in sehr großen Unternehmen, zumal sich die Architekten und Strategen auch erst einmal darauf einlassen müssen, von den Team System-Möglichkeiten Gebrauch zu machen. Einen Vergleich der verschiedenen Versionen findet man hier. Es gibt zwar auch einige Open Source – IDEs für .NET, aber die reichen vom Komfort & Umfang her bei weitem nicht ans Visual Studio heran. - Subversion + TortoiseSVN + AnkhSVN – als ausgereifte VCS-Lösung
Subversion ist den Möglichkeiten des Microsoft-eigenen Source Safe bei weitem überlegen – und kostet dazu nix
Über die guten Erfahrungen der Integration von Subversion mit dem Visual Studio habe ich ja hier schon erzählt. - MSBuild oder NAnt – für die Build-Automatisierung
Nachdem NAnt (als .NET-Equivalent zu Ant) schon eine ganze Weile verfügbar ist hat Microsoft auch die Zeichen der Zeit erkannt und MSBuild als eigenes Werkzeug für die Build-Automatisierung auf den Markt geworfen. MSBuild ist Bestandteil des .NET 2.0 – Frameworks. - NUnit, gegebenenfalls zusammen mit NUnitForms oder IEUnit – als Unit Test Suite
Zu NUnit braucht man wohl nichts mehr sagen – es ist die (kostenlose) Unit Test – Lösung für .NET. Nützlich auch die beiden Erweiterungen NUnitForms für Unit Tests von Windows Forms – Benutzeroberflächen sowie IEUnit für den Test von Webanwendungen. - JetBrains dotTrace – ein wirklich guter Profiler
… der leider Geld kostet, dieses aber durchaus wert ist. dotTrace hat mir schon einige Male beim Optimieren der Performance komplexer Anwendungen sehr gute Dienste geleistet. Und im Gegensatz zu freien Tools wie Prof-It for C# funktioniert dotTrace auch mit .NET 2.0 / Visual Studio 2005. - FxCop – das Tool schlechthin für statische Codeanalyse
Wer FxCop noch nie benutzt hat sollte das unbedingt nachholen – und staunen. Die Hinweise und Tipps, welche FxCop in Bereichen wie Designregeln, Performance, Sicherheit, Globalisierung u.v.a.m. zu bieten hat sind zum Großteil wirklich erstklassig. Und man lernt ganz nebenbei so schöne Sachen wie Strings nicht mehr mit null == s || s.Length == 0 darauf zu testen, ob sie leer sind, sondern mit String.IsNullOrEmpty(s)
- NDepend – für tiefgehende Code- und Abhängigkeitsanalysen
NDepend ermöglicht dabei, in einer Code Query Language (ähnlich SQL) beliebige Abfragen zu formulieren und auszuwerten, um so die Qualität des produzierten Codes zu überprüfen. Die Ergebnisse lassen sich auch in interessanten Diagrammen darstellen. - CruiseControl.NET – als Continous Integration – Server
CruiseControl.NET sorgt dafür, dass sämtliche, von den Entwicklern in ein VCS (wie z.B. Subversion) eingebrachten Änderungen sofort überprüft und – wenn sie korrekt sind – in einen aktuellen Build integriert werden. So ist das sich in der Entwicklung befindende Produkt immer auf dem aktuellsten Stand und die Entwickler erhalten umgehend eine Rückmeldung über mögliche Probleme mit ihren Änderungen. - Reflector for .NET – als ab und zu ganz nützlicher “Disassembler”
Reflector for .NET kann Assemblies untersuchen und den Quellcode sämtlicher enthaltener Typen anzeigen. - Dotfuscator, in Visual Studio 2005 als Community Edition enthalten – um seine Arbeit zu schützen
Wenn man Tools wie Reflector das Wasser abgraben und gleichzeitig seine Assemblies schlanker und schneller machen will greift man zu Obfuscatoren wie dem Dotfuscator. Der Dotfuscator verschlüsselt den Inhalt eines Assemblies dadurch, dass er z.B. sämntliche Klassen und Methoden umbenennt und auch die Ablaufsteuerung “verwirren” kann. Danach kann ein Assembly zwar immer noch disassembliert werden – der Code, den man dann zu sehen bekommt, ist aber völlig unverständlich.