17.02.2010, 23:20 Uhr
Visual Studio 2010 - kleine Innovationen machen Entwickler produktiver
Im April wird Visual Studio 2010 als der Nachfolger von Visual Studio 2008 offiziell ausgeliefert. Auch wenn Microsoft die Methodik der Software-Entwicklung nicht neu erfinden will, wird das kommende Release kleinere Innovationen bieten, die ein gemeinsames Ziel haben. Software-Entwickler produktiver zu machen.
Ein wichtiges Detail vorweg. Wenn von Visual Studio die Rede ist, ist damit im gleichen Atemzug meistens die Programmierung unter Managed Code mit C#, Visual Basic und neuerdings F# gemeint. Visual Studio war jedoch immer schon das Entwicklungswerkzeug für C++-Entwickler - erst mit der Version 7.0 kamen die Managed Code-Sprachen C# und Visual Basic (.NET) hinzu. Das neue Visual Studio 2010 hat daher auch für C++-Entwickler einiges zu bieten, zum Beispiel was den Komfort beim Umgang mit großen Projekten angeht. Auch die guten, alten MFC- und ATL-Assistenten wurden wieder reaktiviert, so dass C++-Entwickler, die die letzte oder vorletzte Version von Visual Studio ausgelassen haben, einige vertraute Elemente wiederfinden werden. Im Folgenden geht es in erster Linie um Neuerungen, die Managed Code-Entwickler betreffen.
Verbesserungen beim Code-Editor
Der Umstand, dass Visual Studio als in C++ entwickelte Anwendung von den Microsoft Foundation Classes (MFC) auf die Windows Presentation Foundation (WPF) umgestellt wurde, macht sich vor allem in Kleinigkeiten bemerkbar. Dazu gehört der Umstand, dass sich die Schriftgröße beim Drehen am Mausrädchen bei gedrückter [Strg]-Taste, der Vektorgrafik-Darstellung sei es gedankt, stufenlos verstellen lässt. Auch die zweite Kleinigkeit wird nicht sofort sichtbar. Visual Studio 2010 unterstützt endlich mehrere Monitore, da sich ein IDE-Fenster aus dem Anwendungsfenster heraus über den Desktop bewegen lässt. Was in kommenden Visual Studio-Versionen oder mit Hilfe von Add-Ons von Drittanbietern möglich sein wird, deuten die neuen DataTipps dezent an. In die kleinen Kästchen, in denen während einer Programmunterbrechung der Wert des aktuell selektierten Ausdrucks angezeigt wird, lassen sich Kommentare einfügen. Ein kommentiertes DataTipp-Fenster bleibt sichtbar, wenn die Debugging-Sitzung fortgesetzt wird, und kann auf dem Bildschirm verschoben werden, so dass Entwickler ihre Anmerkungen während einer Debugging-Sitzung wie Postit-Zettel sammeln können.
Verbesserungen beim Code-Editor
Der Umstand, dass Visual Studio als in C++ entwickelte Anwendung von den Microsoft Foundation Classes (MFC) auf die Windows Presentation Foundation (WPF) umgestellt wurde, macht sich vor allem in Kleinigkeiten bemerkbar. Dazu gehört der Umstand, dass sich die Schriftgröße beim Drehen am Mausrädchen bei gedrückter [Strg]-Taste, der Vektorgrafik-Darstellung sei es gedankt, stufenlos verstellen lässt. Auch die zweite Kleinigkeit wird nicht sofort sichtbar. Visual Studio 2010 unterstützt endlich mehrere Monitore, da sich ein IDE-Fenster aus dem Anwendungsfenster heraus über den Desktop bewegen lässt. Was in kommenden Visual Studio-Versionen oder mit Hilfe von Add-Ons von Drittanbietern möglich sein wird, deuten die neuen DataTipps dezent an. In die kleinen Kästchen, in denen während einer Programmunterbrechung der Wert des aktuell selektierten Ausdrucks angezeigt wird, lassen sich Kommentare einfügen. Ein kommentiertes DataTipp-Fenster bleibt sichtbar, wenn die Debugging-Sitzung fortgesetzt wird, und kann auf dem Bildschirm verschoben werden, so dass Entwickler ihre Anmerkungen während einer Debugging-Sitzung wie Postit-Zettel sammeln können.
Intellisense ist bei Visual Studio 2010 ein wenig intelligenter geworden, in dem nach der Eingabe der ersten Zeichen in der Auswahlliste nur jene Namen erscheinen, in denen die eingegebenen Namen enthalten sind und nicht mehr jene Namen, die in der ,,Nachbarschaft" des Anfangsbuchstaben befinden. Dies ist enorm praktisch, da man oft nur Fragmente von Klassennamen kennt oder auf gut Glück den passenden Namen ausfindig machen kann.
Abbildung 1: Auswahllisten zeigen die Namen an, in denen die eingegebenen Zeichen enthalten sind
Etwa mehr Komfort bietet Visual Studio 2010 auch für den Fall, dass in einem Befehl ein nicht existierender Befehl angesprochen werden soll. Ein Befehl wie
NewType nt = new NewType();
führt bei C# unter VS 2008 zu einem Fehler, wenn der Typ NewType nicht bekannt ist. VS 2010 zeigt den noch unbekannten Typ bereits in der Auswahlliste an und bietet über eine SmartTag-Auswahlliste an, den Typ zu deklarieren.
Collaboratives Debugging
Kommentierbare DataTipps sind sehr viel mehr als nur eine Spielerei. Sie sind eines von mehreren Merkmalen, die Microsoft unter dem Schlagwort ,,Collaborative Debbugging" zusammenfasst. Die kommentierten DataTipps lassen sich exportieren und so einem Entwicklerkollegen weitergeben, der am selben Quellcode arbeitet. Auch Haltepunkte lassen sich bei Visual Studio 2010 mit Hilfe von Labels sowohl kommentieren als auch exportieren. Auch dieses Merkmal soll dazu dienen, dass Entwickler etwas effektiver an einem gemeinsamen Projekt arbeiten zu müssen (bislang mussten sich Entwickler vermutlich alternativer Kommunikationsmethoden wie Msn Messenger, IRC oder, wenn gar nichts anderes zur Verfügung stand, Mail bedienen).
NewType nt = new NewType();
führt bei C# unter VS 2008 zu einem Fehler, wenn der Typ NewType nicht bekannt ist. VS 2010 zeigt den noch unbekannten Typ bereits in der Auswahlliste an und bietet über eine SmartTag-Auswahlliste an, den Typ zu deklarieren.
Collaboratives Debugging
Kommentierbare DataTipps sind sehr viel mehr als nur eine Spielerei. Sie sind eines von mehreren Merkmalen, die Microsoft unter dem Schlagwort ,,Collaborative Debbugging" zusammenfasst. Die kommentierten DataTipps lassen sich exportieren und so einem Entwicklerkollegen weitergeben, der am selben Quellcode arbeitet. Auch Haltepunkte lassen sich bei Visual Studio 2010 mit Hilfe von Labels sowohl kommentieren als auch exportieren. Auch dieses Merkmal soll dazu dienen, dass Entwickler etwas effektiver an einem gemeinsamen Projekt arbeiten zu müssen (bislang mussten sich Entwickler vermutlich alternativer Kommunikationsmethoden wie Msn Messenger, IRC oder, wenn gar nichts anderes zur Verfügung stand, Mail bedienen).
Abbildung 2: Bei VS 2010 können DataTipps mit Kommentaren versehen werden
Aufrufhierarchien
Diese Neuerung gibt es nur für C#. Über das Aufrufhierarchie-Fenster lässt sich eine Aufrufhierarchie von Methoden anzeigen und damit sichtbar machen, welche Methode von welchen anderen Methoden aufgerufen wird und welche Methoden sie selber aufruft. Dies entspricht der ,,Alle Verweise suchen"-Funktion früher Visual Studio-Versionen, nur dass das Ergebnis deutlich übersichtlicher angezeigt wird. Wird der Cursor auf ein Methoden-Member platziert und aus dem Kontextmenü der Eintrag ,,Aufrufhierarchie anzeigen gewählt", wird im neuen Aufrufhierarchie-Fenster angezeigt, welche Methoden diese Methode aufruft und von welchen Methoden sie aufgerufen wird.
Navivieren zu-Fenster
Über das Navigieren zu-Fenster kann eine Datei, Klasse oder Methode direkt angesteuert werden. Eine nette Verbeserung ist, dass wenn der Cursor auf einen Bezeichnernamen wie eine Variable positioniert wird, alle Vorkommnisse des Namens im Quellcode hervorgehoben werden. Ein weitere Kleinigkeit, die die Orientierung in größeren Projekten erleichtert.
Intellitrace
Die für Entwickler wichtigste Neuerung bei Visual Studio 2010 steht leider nur bei der Ultimate-Edition zur Verfügung und dort wiederum nur für 32-Bit-Managed Code-Anwendungen. Die Neuerung heißt Intellitrace (zum Zeitpunkt als das neue Merkmal mit der Beta 1 eingeführt wurde hieß es noch ,,Historical Debugger"). Ist Intellitrace aktiv, zeichnet der Debugger die ausgeführten Befehle in Form von ,,Events" auf, so dass während einer Programmunterbrechung über in der Randspalte eingeblendete Symbole ein Rückwärtsbewegen im Quellcode möglich ist. Im Unterschied zum schlichten ,,Callstack", der lediglich die Namen der bis zum Aufruf der betreffenden Zeile aufgerufenen Funktionen enthält, enthält das Intellitrace-Fenster auch die ausgeführten Befehle, wobei zwischen einer Calls- und einer Events-View umgeschaltet werden kann. Letztere zeigt nicht nur den Namen der aufgerufenen Funktion, sondern auch die Werte der lokalen Variablen zu diesem Zeitpunkt der Ausführung und den Callstack an. Alle Informationen werden in einer Logdatei (Erweiterung .itrace) aufgezeichnet
Da eine solche Logdatei bei größeren Anwendungen schnell einige Hundert MByte groß werden kann und die Aufzeichnung die Programmausführung zwangsläufig verlangsamt, kann in den Intellitrace-Optionen eingestellt werden, ob nur die Events oder auch zusätzliche Aufrufinformationen aufgezeichnet werden sollen. Intellitrace soll dazu beitragen, dass sich die Entwicklungszeit bei größeren Projekten deutlich reduziert. Dazu soll auch der Umstand beitragen, dass ein Tester, der eine Anwendung mit Microsoft Test Elements 2010 testet, sein Testprotokoll mit einem Intellitrace-Protokoll versehen kann, so dass zuständige Entwickler einen Bugreport erhält, über den er Schritt für Schritt nachvollziehen kann, wie der Tester den Bug aufgespürt hat.
Diese Neuerung gibt es nur für C#. Über das Aufrufhierarchie-Fenster lässt sich eine Aufrufhierarchie von Methoden anzeigen und damit sichtbar machen, welche Methode von welchen anderen Methoden aufgerufen wird und welche Methoden sie selber aufruft. Dies entspricht der ,,Alle Verweise suchen"-Funktion früher Visual Studio-Versionen, nur dass das Ergebnis deutlich übersichtlicher angezeigt wird. Wird der Cursor auf ein Methoden-Member platziert und aus dem Kontextmenü der Eintrag ,,Aufrufhierarchie anzeigen gewählt", wird im neuen Aufrufhierarchie-Fenster angezeigt, welche Methoden diese Methode aufruft und von welchen Methoden sie aufgerufen wird.
Navivieren zu-Fenster
Über das Navigieren zu-Fenster kann eine Datei, Klasse oder Methode direkt angesteuert werden. Eine nette Verbeserung ist, dass wenn der Cursor auf einen Bezeichnernamen wie eine Variable positioniert wird, alle Vorkommnisse des Namens im Quellcode hervorgehoben werden. Ein weitere Kleinigkeit, die die Orientierung in größeren Projekten erleichtert.
Intellitrace
Die für Entwickler wichtigste Neuerung bei Visual Studio 2010 steht leider nur bei der Ultimate-Edition zur Verfügung und dort wiederum nur für 32-Bit-Managed Code-Anwendungen. Die Neuerung heißt Intellitrace (zum Zeitpunkt als das neue Merkmal mit der Beta 1 eingeführt wurde hieß es noch ,,Historical Debugger"). Ist Intellitrace aktiv, zeichnet der Debugger die ausgeführten Befehle in Form von ,,Events" auf, so dass während einer Programmunterbrechung über in der Randspalte eingeblendete Symbole ein Rückwärtsbewegen im Quellcode möglich ist. Im Unterschied zum schlichten ,,Callstack", der lediglich die Namen der bis zum Aufruf der betreffenden Zeile aufgerufenen Funktionen enthält, enthält das Intellitrace-Fenster auch die ausgeführten Befehle, wobei zwischen einer Calls- und einer Events-View umgeschaltet werden kann. Letztere zeigt nicht nur den Namen der aufgerufenen Funktion, sondern auch die Werte der lokalen Variablen zu diesem Zeitpunkt der Ausführung und den Callstack an. Alle Informationen werden in einer Logdatei (Erweiterung .itrace) aufgezeichnet
Da eine solche Logdatei bei größeren Anwendungen schnell einige Hundert MByte groß werden kann und die Aufzeichnung die Programmausführung zwangsläufig verlangsamt, kann in den Intellitrace-Optionen eingestellt werden, ob nur die Events oder auch zusätzliche Aufrufinformationen aufgezeichnet werden sollen. Intellitrace soll dazu beitragen, dass sich die Entwicklungszeit bei größeren Projekten deutlich reduziert. Dazu soll auch der Umstand beitragen, dass ein Tester, der eine Anwendung mit Microsoft Test Elements 2010 testet, sein Testprotokoll mit einem Intellitrace-Protokoll versehen kann, so dass zuständige Entwickler einen Bugreport erhält, über den er Schritt für Schritt nachvollziehen kann, wie der Tester den Bug aufgespürt hat.
Abbildung 3: Intelltrace erlaubt während einer Programmunterbrechung ein Rückwärts-Bewegen im Quellcode
Multitargeting
Das Multitargeting wurde bereits mit VS 2008 eingeführt. Es erlaubt dem Entwickler bei einem Projekt anzugeben, auf welcher Version des .NET Frameworks es basieren soll. Bei Visual Studio 2010 stehen als ,,Ziel-Framework" neben 2.0, 3.0, 3.5 und 4.5 auch verschiedene Client Profiles zur Auswahl. Diese enthalten nur jene Teile der .NET-Laufzeit, die für eine typische WinForms- oder WPF-Client-Anwendung benötigt werden und machen damit die Weitergabe der kompletten .NET-Laufzeit, die bereits bei der Version 3.5 auf knapp 200 MByte angewachsen war, überflüssig.
Mehr Komfort durch kleinere Innovationen
Auch wenn Visual Studio 2010 auf der Ebene der Professional Edition insgesamt nur ein kleineres Update ist, sorgen kleinere Innovationen wie die Möglichkeit, nicht existierende Typen nachträglich definieren zu können, kommentierbare DataTipps und das neue Aufrufhierarchie-Fenster dafür, dass Entwickler etwas mehr Komfort genießen können und ihren Programmcode besser in den Griff bekommen. Das Potential, das die Umstellung auf WPF mit sich bringt, wird in der "Version 1.0" nach der Umstellung bislang nur ansatzweise genutzt. Hier sind die Drittanbieter gefragt, die über das Microsoft Extensibility Framework (MEF), das von Visual Studio 2010 erstmalig unterstützt wird, eine neue Möglichkeit erhalten, "Zubehör" zu verkaufen, das gezielt auf die durch WPF gebotenen Möglichkeiten der IDE setzt. Die wichtigste Neuerung, Intellitrace, steht leider nur in der Ultimate Edition, der früheren "Visual Studio Team System Suite", zur Verfügung. Auch Visual Studio 2010 wird es nur in einer 32-Bit-Version geben. Es lässt sich aber unter 64-Bit-Windows betreiben.
Links
[1] Visual Studio 2010 und Net 4-Trainingskit - http://www.microsoft.com/downloads/details.aspx?familyid=752CB725-969B-4732-A383-ED5740F02E93&displaylang=en
Das Multitargeting wurde bereits mit VS 2008 eingeführt. Es erlaubt dem Entwickler bei einem Projekt anzugeben, auf welcher Version des .NET Frameworks es basieren soll. Bei Visual Studio 2010 stehen als ,,Ziel-Framework" neben 2.0, 3.0, 3.5 und 4.5 auch verschiedene Client Profiles zur Auswahl. Diese enthalten nur jene Teile der .NET-Laufzeit, die für eine typische WinForms- oder WPF-Client-Anwendung benötigt werden und machen damit die Weitergabe der kompletten .NET-Laufzeit, die bereits bei der Version 3.5 auf knapp 200 MByte angewachsen war, überflüssig.
Mehr Komfort durch kleinere Innovationen
Auch wenn Visual Studio 2010 auf der Ebene der Professional Edition insgesamt nur ein kleineres Update ist, sorgen kleinere Innovationen wie die Möglichkeit, nicht existierende Typen nachträglich definieren zu können, kommentierbare DataTipps und das neue Aufrufhierarchie-Fenster dafür, dass Entwickler etwas mehr Komfort genießen können und ihren Programmcode besser in den Griff bekommen. Das Potential, das die Umstellung auf WPF mit sich bringt, wird in der "Version 1.0" nach der Umstellung bislang nur ansatzweise genutzt. Hier sind die Drittanbieter gefragt, die über das Microsoft Extensibility Framework (MEF), das von Visual Studio 2010 erstmalig unterstützt wird, eine neue Möglichkeit erhalten, "Zubehör" zu verkaufen, das gezielt auf die durch WPF gebotenen Möglichkeiten der IDE setzt. Die wichtigste Neuerung, Intellitrace, steht leider nur in der Ultimate Edition, der früheren "Visual Studio Team System Suite", zur Verfügung. Auch Visual Studio 2010 wird es nur in einer 32-Bit-Version geben. Es lässt sich aber unter 64-Bit-Windows betreiben.
Links
[1] Visual Studio 2010 und Net 4-Trainingskit - http://www.microsoft.com/downloads/details.aspx?familyid=752CB725-969B-4732-A383-ED5740F02E93&displaylang=en
Peter Monadiemi