Microsoft stellt wieder einmal unter Beweis, dass die Wünsche und Anregungen der Community ernst genommen werden. Beständig wurden in der Vergangenheit Debugging Tools und bessere Integration in Visual Studio für XAML und insbesondere WPF gefordert. Mit Visual Studio 2015 hat sich an dieser Stelle einiges getan. Heute möchten wir kurz und knapp die wichtigsten Neuerungen im Bereich UI Debugging Tools vorstellen.
WPF Tree Visualizer
Wer WPF Anwendungen entwickelt, kommt früher oder später in die Situation, in der eine genauere Untersuchung des Visual Tree von Nöten ist. Bisher wurde dazu meist die Hilfe von externen Tools, wie Snoop, in Anspruch genommen. Mit dem neuen, in Visual Studio 2015 integrierten, WPF Tree Visualizer ist das in Zukunft nur noch in speziellen Fällen nötig.
Der WPF Tree Visualizer teilt sich in zwei Teile: Den Live Visual Tree und den Live Property Explorer.
Das Live Visual Tree Fenster ist Teil des Debug Layouts von WPF Anwendungen. Das bedeutet, es kann wie alle anderen Fenster auch als Teil des Docking Window Konzepts genutzt werden. Damit fügt es sich, anders als externe Anwendungen, in die bekannte Oberfläche ein und kann entsprechend komfortabel genutzt werden.
Die Auswahl der WPF Elemente erfolgt entweder per Klick auf das entsprechende Element, direkt in der Anwendung, oder über die Elemente im Visual Tree selbst. Dabei können auch Details wie Margins und Alignments direkt in der Anwendung angezeigt werden. Zusätzlich kann auf Wunsch direkt zum zugehörigen Quellcode des Elements gesprungen werden.
Neben der Analyse der Struktur einer WPF Anwendung bietet der Live Visual Tree auch die Möglichkeit, alle Properties der ausgewählten Elemente anzuzeigen und zu bearbeiten. Dazu wird ein neues Fenster, der Live Property Explorer, geöffnet. In diesem Fenster werden die einzelnen Properties nach ihrer Herkunft gruppiert. Somit ist auf den ersten Blick zu erkennen, ob ein Property lokal gesetzt oder beispielsweise durch Vererbung definiert wurde. Dabei ist die Auswahl an Properties, die bearbeitet werden können, auf lokale Properties beschränkt.
Laut der Roadmap für WPF soll eine zukünftige Erweiterung die Möglichkeit bieten, im Debug Modus geänderte Properties auch wieder in den Code zu übertragen. Diese Neuerung ist in der aktuellen Visual Studio 2015 Version jedoch noch nicht enthalten.
Application Timeline Tool
Eine weitere Neuerung, die mit Visual Studio 2015 eingeführt wurde, ist das Application Timeline Tool. Dieses ersetzt das mit Visual Studio 2013 eingeführte XAML UI Responsiveness tool. Damit werden jetzt sämtliche XAML Anwendungen unterstützt, was WPF Applikationen miteinschließt.
Das Application Timeline Tool kann im Fenster Debug -> Start Diagnostic Tools without Debugging geöffnet werden. Daraufhin startet die ausgewählte Applikation im Profiler und beginnt Daten zu sammeln. Die Applikation kann jetzt benutzt werden, um bestimmte Szenarien aufzuzeichnen. Zum Beenden des Profilers muss der Stop Button des Profiler Fensters betätigt werden. Daraufhin öffnet sich die Übersicht und es kann mit der Auswertung begonnen werden.
Das Auswertungsfenster ist zweigeteilt. In der oberen Hälfte zeigen Graphen die Nutzung des UI Threads und den Visual Throughput an. Diese Ansicht erlaubt das Auswählen von bestimmten Bereichen sowie das setzen von Filtern auf bestimmte Events. Dadurch lässt sich schnell ein Überblick über den Performanceverlauf der aufgezeichneten Applikation erhalten.
Der Untere Teil des Fensters enthält eine detaillierte Liste der CPU Nutzung. Diese Liste ist nach den Events kategorisiert, welche die CPU Last erzeugt haben. Diese Kategorisierung lässt sich weiter aufteilen. So kann beispielsweise innerhalb eines Layout Events genau nachverfolgt werden, welche UI Elemente wie viele Ressourcen in Anspruch genommen haben.
Über diese Aufschlüsselung lassen sich Erkenntnisse gewinnen, die bei der Suche nach kritischen Performance Stellen sehr hilfreich sein können. Darüber hinaus kann über diese Detailansicht auch ermittelt werden, wie lange das Parsen der einzelnen XAML Files dauert und wie die Abhängigkeiten verlaufen.
Fazit
Der Live Visual Tree und Live Property Explorer können die Hauptfunktionen von externen Tools ersetzen und in die Oberfläche von Visual Studio übertragen. Dies erleichtert die Entwicklung von WPF Applikationen, insbesondere da man von ausgewählten Elementen und Properties direkt in den Quellcode springen kann. Solange aber noch nicht alle Funktionen, die externe Tools bieten, umgesetzt wurden, wird es nötig sein, auch weiterhin mit ihnen zu arbeiten. Es bleibt abzuwarten, welche Funktionen von Microsoft noch umgesetzt werden.
Das Application Timeline Tool ermöglicht es, detaillierte Informationen über die Performance einer WPF Anwendung zu erfassen und auszuwerten. Dabei bleibt es selbst aber angenehm leicht und komfortabel zu bedienen.
Weiterführende Informationen zur Benutzung der Tools: