Schlagwort-Archive: Tools

Clone Detective für Visual Studio

Heute bin ich auf ein cooles Add-On für Visual Studio aufmerksam geworden: Der Clone Detective für Visual Studio.

image 

Als Engine hinter Clone Detective kommt ConQAT von der TU München zum Einsatz: http://conqat.cs.tum.edu/index.php/Download

Nach der Installation gibt es in der “Ansicht” –> “Weitere Fenster” neue Einträge:

  • Clone Explorer
  • Clone Intersections
  • Clone Results

image

Zur Demonstration der einzelnen Fenster habe ich mir mal die Freiheit genommen, den Quellcode von iTextSharp auf Code-Duplikate zu untersuchen.

Clone Explorer

Die Clone Explorer startet die Analyse des Quellcodes und zeigt in einer Übersicht das Resultat:

image

Die Resultate lassen sich nun noch speziell gruppieren (hier: nach duplizierten Codezeilen):

image

Ebenfalls unterstützt wird das Importieren und Exportieren des Clone-Berichts. Selbstverständlich lassen sich die Such-Optionen noch konfigurieren:

image

Für meinen Geschmack war das allerdings schon gut genug 🙂

Code Intersections

Code Intersections stellen – wie der Name schon sagt- Überschneidungen im Code dar. Im folgenden Beispiel enthält die Datei BarcodeInter25.cs 15 Codeüberschneidungen mit der Dtei BarcodePostnet.cs:

image

Das Diagramm zeigt das Vorkommen der Überschneidung in der Datei. Mit der rechten Maustaste kann nun noch in den Ergebnissen gesucht werden und die betreffende Stelle über einen Doppelklick im Editor geöffnet werden.

Im Editor wird an der linken Seite eine lila Markierung dargestellt:

image

Diese zeigt die Stelle der Codeduplikate im Code an.

Clone Result

Das Fenster Clone Result zeigt das Code-Duplikat aus dem Editor nochmal an:

image

Fazit

Nicht jedes Duplikat ist auch wirklich ein Duplikat. Viele Fundstellen hingegen haben mir persönlich weitergeholfen, Redundanzen zu verringern und nochmals kritisch über meinen Code zu sehen.

Download

Das Programm kann auf CodePlex kostenlos (inkl. Source Code) heruntergeladen werden:

http://clonedetectivevs.codeplex.com/

Das Installer-Paket ist ca. 14MB groß.

Also Systemvoraussetzungen werden folgende genannt:

  • Visual Studio 2008 Standard oder besser
    (sorry, Visual Studio 2008 Express Editions unterstützen keine AddIns)
  • Java 1.5.0_01 oder neuer
    (ConQAT läuft unter Java)

Top 3 Entwickler-Tools

MSDN Deutschland veranstaltet eine Blog-Parade. Da will ich natürlich auch mitmachen. Allerdings habe auch ich mehr als 3 Lieblingstools zum Programmieren. Hier kommt nun die Top 3 meiner Entwickler-Tools:

Platz 1: Microsoft Visual Studio 2008
Visual Studio ist mein Top-Tool, weil ich mir ohne gar nicht vorstellen könnte, Software zu entwickeln 🙂
Viele Tipps&Tricks findet man im Blog von Sara Ford: http://blogs.msdn.com/saraford/ Diese Tipps hat sie auch als Buch veröffentlicht (“251 Ways to Improve Your Productivity”).

Platz 2: JetBrains ReSharper
Früher, als ich noch mit Java entwickelte, war ich fasziniert von der Eclipse IDE. Tolle Refactoring-Funktionen, Quick-Fixes & Co. Der ReSharper bringt die lange vermissten Eclipse-Funktionen in Visual Studio. Muss man einfach haben!

Platz 3: JetBrains dotTrace
Unverzichtbares Tool (Profiler) zum Aufspüren von Performance-Engpässen. Klasse!

Da ich mit weitaus mehr Tools arbeite, möchte ich diese Liste nicht vorenthalten:

Platz 4: NUnit Framework
Framework zum Testen von .NET Anwendungen.

Platz 5: Ranorex
Ranorex ist ein Toolset zum automatisierten Testen von GUI-Applikationen. Es ist ein echt gelungenes Capture-And-Replay Tool.

Platz 6: vmware WorkStation
Zum Testen (und Debuggen!) des Projekts / der Anwendung auf unterschiedlichen Betriebssystemen. Echt Klasse!

Platz 7: JetBrains TeamCity
Sehr gelungener Build-Server für Continous Integration. Macht echt Spaß, damit zu arbeiten. Früher habe ich mit CruiseControl.NET gearbeitet. Die Konfiguration ist jedoch bei TeamCity viel schöner und einfacher.

Platz 8: Reflector
Muss man glaub ich nicht mehr erklären: Toller Disassembler und Assembly-Inspector mit zahlreichen Plugins.

Platz 9: Sparx Enterprise Architect
Design-Tool für UML-Diagramme & Co.

Platz 10: Notepad++
Schneller, komfortabler Editor. Sollte eigentlich jeder installiert haben 🙂

Platz 11: WiX-Toolkit (Windows Installer XML)
Das erste OpenSource-Tool von Microsoft. Mittels XML-Definition werden MSI-Pakete inkl. Bootstrapper erzeugt. Hier gibt es ein sehr gutes Tutorial für den ersten Einstieg. Tipp: SharpDevelop bietet einen brauchbaren Editor für die UI.

Platz 12: SandCastle & SandCastle Help File Builder
Tool von Microsoft (Open Source) zum Generieren der Code-Dokumentation (beispielsweise im MSDN-Style).

Platz 13: NCover
Code-Coverage Tool. Sehr praktisches Tool zum Prüfen, ob die erstellten Tests den Code abdecken. Optional kann man auch auf PartCover (Open Source) setzen; allerdings ist es etwas unkomfortabler.

Platz 14: StyleCop & FxCop
Diese Tools analysieren den Code auf Best Practices, potentielle Sicherheitsprobleme usw. Die Regeln können auch selbst erweitert werden. Super Sache!

Platz 15: VisualSVN
Integration von Subversion in Visual Studio. Zeigt, welche Dateien sich geändert haben, Diff-Funktionalität direkt aus Visual Studio heraus, …
Sehr empfehlenswert!
BTW: Die Entwickler stellen kostenlos einen einfach zu konfigurierenden SVN-Server zur Verfügung (Visual SVN Server)

WinDbg-Erweiterung für verwalteten Code: SOSEX

Neue Debugger-Befehle in dieser Erweiterung sind:
!dumpgen and !gcgen
Herausfinden, welche Objekte sich in welcher Generation der GarbageCollection befinden (z.B. !dumpgen 2 zeigt eine Liste der Objekte an, die sich in GC-Generation 2 befinden)

!refs
Zeigt alle Referenzen auf ein bestimmtes Objekt

!dlk
DeadLock detection – zur Erkennung von DeadLocks (sich behindernde Threads)

!bpsc and !bpmo
bpsc (BreakPoint Source) erlaubt das nachträgliche Setzen von Source-Breakpoints im Code an einer bestimmten Code-Zeile

!vars and !isf
Wenn an einem Breakpoint angehalten wurde, so kann mithilfe von !vars die lokalen Variablen angeschaut werden.

Mehr Infos zu den Erweiterungen gibts im Blog von Steve Johnson:
http://www.stevestechspot.com/SOSEXANewDebuggingExtensionForManagedCode.aspx

und im Blog von John Robbins:
http://www.wintellect.com/cs/blogs/jrobbins/archive/2007/06/19/great-sosex-a-phenomenal-net-debugging-extension-to-see-the-hard-stuff-steve-johnson-is-my-hero.aspx

Download x86-Edition: http://www.stevestechspot.com/downloads/sosex_32.zip
Download x64-Edition: http://www.stevestechspot.com/downloads/sosex_64.zip