Entwicklung

Arbeiten mit Visual Studio 2010

02.01.2012
Von Peter Monadjemi

Mehr Komfort beim Code-Editor

Es sind oft die Kleinigkeiten, die Entwickler bei einer neuen Version ihres Lieblings-Tools begeistern und bei denen man sich natürlich fragt, warum sie nicht schon vorher eingeführt wurden. Dazu gehört, neben einem verbesserten Docking-Verhalten der IDE-Fenster und dem Umstand, dass sich der Schließen-Button für ein Fenster neuerdings direkt neben dem Fenstertitel und nicht mehr weit entfernt am rechten Rand befindet, die Möglichkeit, Typen im Quellcode benutzen zu können, bevor sie definiert wurden. Gibt ein C#-Entwickler den Befehl

NewType nt = new NewType();

Existiert ein Typ bei der Eingabe nicht, kann er nachträglich angelegt werden.
Existiert ein Typ bei der Eingabe nicht, kann er nachträglich angelegt werden.

ein, hat dieser harmlose Befehl bei VS 2008 immer dann einen Compiler-Fehler zur Folge, wenn der Typ NewType nicht existiert. Bei VS 2010 bietet die IDE über eine SmartTag-Auswahlliste an, den noch nicht existierenden Typ zu definieren.

Collaborative Debugging

Welche Möglichkeiten die Umstellung auf WPF bei einem Code-Editor bietet, macht der Umstand deutlich, dass das Ergebnis von Ausdrücken, die während einer Debug-Sitzung ausgewertet werden, mit einer Anmerkung ("DataTip") versehen und das kleine Kästchen frei im Editorfenster platziert werden kann. Auch Haltepunkte lassen sich mit solchen Anmerkungen erklären. DataTips können, genau wie Haltepunkte, exportiert und damit einem Entwicklerkollegen zur Verfügung gestellt werden, der am selben Projekt arbeitet.

Zwei weitere Neuerungen sollen zu mehr Übersicht im Quellcode führen: Markiert man einen Symbolnamen, werden alle Stellen, an denen der Name im Quellcode vorkommt, optisch hervorgehoben. Wird der Cursor auf ein Methoden-Member platziert und aus dem Kontextmenü der Eintrag "Aufrufhierarchie anzeigen" gewählt, zeigt das Aufrufhierarchie-Fenster an, welche Methoden sich gegenseitig aufrufen.

IntelliTrace zeichnet die Programmausführung auf und ermöglicht es, diese rückwärts zu verfolgen.
IntelliTrace zeichnet die Programmausführung auf und ermöglicht es, diese rückwärts zu verfolgen.

Ein für Entwickler besonders spannendes Feature in VS 2010 heißt "Intellitrace" - zu Beginn der Betaphase noch als "Historical Debugger" bekannt. Hat man Intellitrace in den Optionen aktiviert, werden die ausgeführten Programmabschnitte in Form von Events aufgezeichnet, so dass es während einer Programmunterbrechung mit Hilfe der in der Randspalte angezeigten Intellitrace-Symbole möglich ist, die Codeausführung rückwärts zu verfolgen, indem ein aufgezeichnetes Event angesteuert wird. Über das Intellitrace-Kontextmenü lässt sich feststellen, wie oft eine bestimmte Zeile oder Methode aufgerufen wurde und welche Befehle davor ausgeführt wurden. Intellitrace dürfte dazu beitragen, dass sich die Entwicklungszeit in größeren Projekten deutlich reduziert.

Ein interessanter Aspekt ergibt sich hier auch im Zusammenhang mit dem "Microsoft Test Manager 2010". Anwender können einen Testverlauf mit einem aufgezeichneten Intellitrace-Logfile verknüpfen, so dass ein Entwickler durch Importieren des Logfiles sofort jene Stellen im Quellcode ansteuern kann, an denen der Tester einen Bug gefunden hat. Leider ist Intellitrace nur in der Ultimate Edition von VS erhältlich und funktioniert auch nur mit 32-Bit-Managed-Code. Unterstützung für C++ wurde von Microsoft allerdings in Aussicht gestellt.

Raum für Verbesserungen

Der Umstand, dass im Code-Editor jederzeit weitere Ebenen über den Quellcode gelegt werden können und es auf diese Weise zum Beispiel möglich ist, XML-Kommentare optisch deutlich einfacher in die Quellcode-Ansicht zu integrieren, wird bei VS 2010 noch relativ wenig genutzt. Das große Potenzial, das die Umstellung auf WPF für die Codedarstellung birgt, wird wohl erst durch Erweiterungen von Drittanbietern und künftigen Versionen von Visual Studio ausgereizt werden. Immerhin bietet VS 2010 einen komfortablen "XSD Schema Designer", der die Möglichkeiten von WPF für die optische Darstellung eines XML Schemas nutzt.