Blog

Viele kleine Verbesserungen – Neuerungen in Visual Studio 2015

Patrick Andre Decker
Patrick Andre Decker
11. November 2015
Tags

Visual Studio 2015 hält einige Neuerungen für Entwickler bereit. Stellt sich die Frage: Welche dieser Neuerungen sind wirklich geeignet, einem das Leben als Entwickler einfacher zu machen? Und worauf kann man eher verzichten?

Visual Studio 2015 kommt ohne „Killer“-Feature (aus)

Zunächst sollte gesagt sein, dass mit der neuen Visual Studio Version kein neues Feature eingeführt wurde, das superinnovativ ist und welches die Leute komplett begeistert.
Visual Studio 2015 benutzt zwar den neuen Roslyn Compiler, der etwas schneller ist und durch den manche Features erst möglich werden, jedoch ist dies für mich ja nur indirekt erkennbar und fällt daher beim ersten Hinsehen nicht so stark auf. Es wurden aber auch viele kleine Änderungen und Verbesserungen vorgenommen, welche mir als Entwickler direkt ins Auge springen, und die in der Summe die Arbeit mit Visual Studio und Blend durchaus vereinfachen werden.

Intuitiverer Umgang mit Breakpoints

Angefangen bei den Breakpoints und den Möglichkeiten dort Bedingungen und Aktionen zu definieren: Von der Funktion her hat sich nicht viel getan, denn Bedingungen für Breakpoints konnte ich bislang auch schon einfügen, jedoch ist diese Option nun direkt beim Mouseover verfügbar, statt wie bisher über einen Rechtsklick. Das hört sich natürlich nach einer völlig banalen Änderung an, jedoch fühlt sich das Ganze dadurch einfacher und intuitiver an als zuvor.

Eine weitere Änderung bei den Breakpoints findet sich beim Debuggen. Wenn ein Programm an einem Breakpoint anhält dann bekomme ich nun die Zeit angezeigt, die seit dem letzten Breakpoint verstrichen ist. Dies kann besonders bei kleineren Performance-Fragen hilfreich sein, da ich sehr einfach nachvollziehen kann wo die meiste Zeit zwischen zwei Haltepunkten verbraucht wurde ohne gleich eine Performance-Analyse starten zu müssen.Elapsed-Time-At-Breakpoints

Code Editor überarbeitet

Im Code Editor werden nun auch die Informationen des CodeLens Features angezeigt. CodeLens gab es zwar schon in Visual Studio 2013, jedoch bisher nur in der Ultimate Edition. In der neuen Version soll es nun bereits in der Professional Edition verfügbar sein. Oberhalb einer Funktion oder Eigenschaft wird dann die Anzahl der Referenzen auf diese angezeigt, die per Mausklick näher untersucht werden können. Außerdem sehe ich in welchen UnitTests die Funktion verwendet wird und kann diese auch direkt laufen lassen ohne in den Test-Explorer wechseln zu müssen.

An dieser Stelle wurde auch die Team Activity View überarbeitet. Diese zeigt den Codeverlauf nun in einer übersichtlichen Grafik an. So erkenne ich nun sofort welcher Entwickler wann Änderungen an dieser Funktion oder Klasse gemacht hat und ich kann eine frühere Version auch direkt aus dem Code heraus mit der aktuellen Version vergleichen.

Viele dieser Funktionalitäten sind nicht neu, sie sind nun aber übersichtlicher und die gewünschten Informationen sind einfacher zugänglich als dies vorher der Fall war. Somit ist es für mich nun viel leichter diese Features effektiv zu nutzen.
Function-References-Overview

Besser gut kopiert als schlecht erfunden

Nach diesem Motto hat sich Microsoft bei einigen anderen Tools Anregungen geholt und versucht deren Funktionalität mit in Visual Studio zu integrieren. So lässt sich bei WPF Anwendungen zum Beispiel der Visual Tree anzeigen und die Eigenschaften einzelner Elemente lassen sich zur Laufzeit über den Live Property Explorer manuell verändern. Für solche Zwecke habe ich bislang das Tool Snoop benutzt, nun ist diese Möglichkeit aber schon direkt in Visual Studio mit dabei. Wenn ich im Live Visual Tree ein Element selektiert habe, kann ich jetzt sogar an die entsprechende Stelle im Quellcode springen, an welcher das Element definiert ist. So finde ich die gesuchte Stelle einen Schritt schneller als zuvor.

Auch neu ist die kleine Glühbirne die immer dann am Rand auftaucht, wenn Visual Studio Verbesserungen im Code vorschlägt. Hier hat sich Microsoft an der allseits beliebten Extension ReSharper orientiert, welche für mich als Entwickler aus dem Alltag nicht mehr weg zu denken ist. Neu ist hier, dass mir nun eine Vorschau der vorgeschlagenen Änderungen angezeigt wird, sobald ich mit der Maus über einen Vorschlag fahre. Dies ist bei komplexeren Änderungen sehr hilfreich, da ich so schneller verstehe was nun eigentlich passiert. Hier sagt ein Bild einfach mehr als tausend Worte. Bei der Anzahl der vorgeschlagenen Änderungen hängt Microsoft dem Vorbild aktuell jedoch noch ein wenig hinterher. Deshalb werde ich meinen ReSharper noch nicht sofort in den Ruhestand schicken und ich vermute mal, dass es vielen anderen Entwicklern ähnlich gehen wird. Wie sich diese Situation in der Zukunft entwickelt bleibt abzuwarten, jedoch gehe ich davon aus, dass Microsoft an dieser Stelle früher oder später noch etwas nachbessern wird.
Lightbulp-Preview

IntelliTest – ein Ersatz für UnitTests?

Sehr interessant klingt auch das neue IntelliTest Feature, welches automatisch UnitTests für die aktuelle Klasse oder Funktion erzeugt. Dabei werden alle möglichen Codepfade überprüft und dann entsprechende Testdaten erzeugt um eine maximale Codeabdeckung zu gewährleisten. Dies hört sich zunächst zwar verlockend an, allerdings sollte man diese Möglichkeit mit Vorsicht genießen. Der Code ist zwar abgedeckt, aber in den meisten Fällen sind die Testdaten rein zufällig gewählt und nicht richtig durchdacht, da dem Programm der logische Sinn hinter dem Test nicht bewusst ist. Außerdem ist es in vielen Fällen sinnvoll, dass ich die UnitTests schreibe bevor die zu testende Funktion richtig implementiert wird, damit potentielle Fehler schon direkt bei der Implementierung erkannt werden können. Zudem kann ich so gewährleisten, dass ich mit roten Tests beginne, was bei der Entwicklung von automatisierten Tests ein wichtiger Baustein in unserem Workflow bei Centigrade ist. Daher werde ich um das Schreiben eigener UnitTests wohl nicht herumkommen.

Hilfreich kann das Feature für mich aber trotzdem sein, denn durch das Tool lassen sich möglicherweise noch Testfälle entdecken, an die ich vorher nicht gedacht habe.
Ein Blick auf diese neue Funktion sollte sich also in jedem Fall lohnen. Leider wird dieses Feature wohl nur in der Enterprise Edition von Visual Studio 2015 verfügbar sein und kann daher nicht von allen Entwicklern genutzt werden.

Ein besseres Blend

In Blend haben sich auch einige Dinge zum Besseren geändert. Denn Blend benutzt nun ebenfalls die Visual Studio Shell. Dies führt dazu, dass das visuelle Erscheinungsbild nun etwas stärker an Visual Studio erinnert. Auch der Projektmappen-Explorer wurde durch die Visual Studio Variante ersetzt und lässt sich nun einfacher benutzen als zuvor. Die größte Änderung dürfe hier allerding der neue Code-Editor sein, welcher nun der gleiche wie in Visual Studio ist. Dies ermöglicht mir nicht nur eine bessere Übersicht, sondern bietet auch Code-Highlighting und IntelliSense, was mir die Bearbeitung von Code-Dateien in Blend um ein Vielfaches angenehmer macht. Dieses Feature ist ebenfalls nicht wirklich neu, denn in Visual Studio selbst gab es diesen Code-Editor vorher auch schon. Aber wenn ich diesen mit dem alten Editor von Blend vergleiche wird schnell klar, dass man hier einen riesen Sprung nach vorne gemacht hat was die Usability angeht.

Ebenfalls geändert wurde die Peek-Möglichkeit, die es mir erlaubt XAML-Steuerelemente und Ressourcen in dem Kontext, in welchem sie verwendet werden, direkt anzuzeigen und zu bearbeiten. Wenn ich beispielsweise die Zuweisung einer Ressource angeklickt habe und Alt + F12 drücke so erscheint ein kleines Fenster in dem ich diese Ressource sehe und direkt bearbeiten kann. Angezeigt wurde dieses Fenster auch schon vorher, jedoch war es bislang schreibgeschützt und ich konnte darin keine Änderungen vornehmen.
Peek-Window

Im XAML selbst gibt es auch noch eine ziemlich simple Änderung, bei der die Meinungen in der Entwickler Gemeinde jedoch stark auseinander gehen. Es ist ab sofort nämlich möglich, in XAML-Dateien Regions einzuführen, wie man sie auch schon aus C# kennt. Ich persönlich finde dieses Feature klasse, denn gerade bei großen Dateien hatte ich bisher oftmals das Problem, dass diese viel zu unübersichtlich waren. Durch die Regions kann ich nun etwas mehr Ordnung hineinbringen und meinen XAML-Code lesbarer gestalten. Es gibt aber auch Software Engineers, die diese Möglichkeit furchtbar finden. Unter anderem auch deshalb, weil sich die Regions hier nicht sehr intuitiv schreiben lassen da man sie in einen Kommentar einbetten muss.

Ein weiteres kleines Feature, das jedoch große Auswirkungen hat, findet sich beim Wechsel zwischen Visual Studio und Blend. Bisher wurde ich jedes Mal, wenn ich zwischen den Anwendungen gewechselt habe, gefragt, ob die Änderungen aus dem anderen Programm übernommen werden sollen. Nun kann ich in einer Checkbox einen Haken setzen und Blend merkt sich dann diese Entscheidung.

Eine wichtige Neuerung ist auch das neue Timeline-Tool, welches eine genaue Performanceanalyse der Benutzeroberfläche ermöglicht und das bisherige XAML UI Responsiveness Tool ablösen wird. Mit dem neuen Tool kann ich nun genau sehen, wo im UI-Thread Zeit aufgewendet wird und sich gegebenenfalls Engpässe befinden. Die Benutzung dieses Tools finde ich einfach und intuitiv. Wenn ich eine Diagnose-Session starte, werden während der Laufzeit entsprechende Daten wie CPU- und GPU-Auslastung oder auch die Bildrate gesammelt. Die Anzeige dieser Daten ist sehr übersichtlich, sodass ich ohne Probleme die relevanten Aktionen herausfiltern und somit genau sehen kann, was in welchem Schritt passiert.

Der Haken an dieser Sache ist jedoch, dass sich das Ganze nur auf Systemen mit Windows 8.1 oder höher ausführen lässt. Entwickler, die noch unter Windows 7 entwickeln, müssen auf dieses Tool leider verzichten.
Timeline-Tool-Analysis

Fazit:

Mit Visual Studio 2015 hat Microsoft viele Kleinigkeiten verbessert und optimiert und so den Umgang mit dem Programm ein Stück komfortabler gemacht. Gerade im täglichen Gebrauch wird man sich sehr schnell an die neuen Features gewöhnen und eine bessere Alltagsperformance erreichen. Und auch wenn viele der Änderungen auf den ersten Blick vielleicht nicht als diese lang erwartete Superverbesserung erscheinen, so bin ich mir dennoch sicher, dass ich diese schon nach kurzer Zeit nicht mehr werde missen wollen.

Ein wenig enttäuscht bin ich jedoch von der Tatsache, dass Visual Studio noch lange nicht alle Funktionalitäten des ReSharpers anbietet. Microsoft geht hier zwar in die richtige Richtung, bewegt sich aber nur in kleinen Schritten vorwärts.

Möchten Sie mehr zu unseren Leistungen, Produkten oder zu unserem UX-Prozess erfahren?
Wir sind gespannt auf Ihre Anfrage.

Employee Experience Manager
+49 681 959 3110

Bitte bestätigen Sie vor dem Versand Ihrer Anfrage über die obige Checkbox, dass wir Sie kontaktieren dürfen.