Die wichtigsten Neuerungen von .NET 4.5.1, Visual Studio 2013 und TFS 2013

Visual Studio 2013

Änderungen im Paket

Einige Neuheiten in .NET 4.5.1 und Visual Studio 2013 sind eng miteinander verwoben. Dazu gehört die Unterstützung für die Codebearbeitung während des Debugging (Debug Edit and Continue) auch für 64-Bit-Code. "Edit and Continue" gab es zu COM-Zeiten in Visual Studio, wurde dann in .NET 2.0/Visual Studio 2005 für .NET-Code nachgerüstet – aber nur für 32-Bit-Code (x86-Modus von Visual Studio). Beim Debugging im 64-Bit-Modus kam die Meldung: "Changes to 64-bit applications are not allowed." Der Wunsch, dass Microsoft das ermöglichen möge, war groß auf Entwicklerseite. .NET 4.5.1 und Visual Studio 2013 können das nun in den meisten Fällen. Ausgenommen sind derzeit noch Cloud-Services-Projekte mit Windows Azure sowie Lambda-Ausdrücke und anonyme Methoden. Letztere Einschränkungen gelten weiterhin auch für den x86-Modus.

C#- und Visual-Basic-Entwickler schauten bisher immer neidvoll auf den Debugger von Visual C++, der schon länger beim Debugging auch die Rückgabewerte von Methoden anzeigen konnte, ohne dass man dafür innerhalb der Methode diesen Wert zwingend zuerst in eine lokale Variable speichern musste. Abbildung 2 zeigt, dass das nun auch mit anderen Programmiersprachen in Visual Studio 2013 möglich ist, wahlweise in den "Auto"- und "Watch"-Variablenfenstern oder durch Abruf von $ReturnValue im "Immediate"-Fenster.

Anzeige der Rückgabewerte eines Methodenaufrufs (Abb. 2)

Ebenso ist das Debugging asynchroner Methoden übersichtlicher geworden, da der Call Stack nun nicht mehr alle involvierten internen Routinen der Task Parallel Library, sondern diese nur noch als [External Code] zu einem Eintrag zusammengefasst wird. Der Entwickler sieht stattdessen im Stack Trace immer den Ausgangspunkt des asynchronen Aufrufs. Das bisherige "Parallel Task"-Fenster hat Microsoft in "Tasks" umbenannt und um Zustandsinformationen zu den laufenden Tasks ergänzt.

Kundennah durch Modularisierung

Auf der BUILD-Konferenz hat Microsoft-Chef Steve Ballmer auch einige Ankündigungen zu den zukünftigen Veröffentlichungszyklen gemacht. Zunächst einmal wollen die Redmonder grundsätzlich die Releasezyklen verkürzen, wie man jetzt an der schnellen Abfolge bei Windows, .NET und Visual Studio sieht. Microsoft sagt, dass viele kleine und mittelgroße Softwareunternehmen eine kontinuierliche Innovation fordern. Größere Konzerne und sensible Branchen hingegen wünschen sich längere Veröffentlichungszyklen.

Microsoft möchte es beiden Gruppen recht machen, indem einerseits die Veröffentlichungszyklen verkürzt werden, andererseits das .NET Framework zukünftig stärker modularisiert wird, sodass die Unternehmen selbst wählen können, welche Aktualisierungen sie nutzen und welche nicht. Diesen Weg beschreitet Microsoft letztlich seit einiger Zeit mit ASP.NET MVC, ASP.NET Web API, ADO.NET Entity Framework und WCF Data Services. Diese Techniken werden unabhängig von den Veröffentlichungszyklen des .NET Framework entwickelt, versioniert und über das Portal nuget.org verbreitet. Ab sofort bietet Microsoft im Web eine Liste von NuGet-Paketen an, die vom .NET-Framework-Entwicklungsteam stammen und damit den Status eines "offiziellen .NET-Erweiterungsmoduls" haben – in Abgrenzung zu den vielen Hundert NuGet-Paketen anderer Entwickler. Diese offizielle .NET-Paketliste zeigt Visual Studio 2013 im Package Manager in einer eigenen Rubrik an (s. Abb. 3). Die Module wird Microsoft zukünftig auch über das Windows-Update mit Hotfixes versorgen – sofern die Anwendung auf .NET 4.5.1 läuft.

Ein neuer Ast ".NET Framework Packages" im Paket-Manager in Visual Studio 2013 (Abb. 3)

Visual Studio 2013 liefert einige dieser Zusatzkomponenten schon mit. Dazu gehört das Entity Framework 6.0 mit Unterstützung für asynchrone Datenbankzugriffe, Generierung von Stored Procedures für Insert, Delete und Update sowie das Erstellen eigener Konventionen im Code-First-Vorgehensmodell. Eine weitere Zusatzkomponente ist ASP.NET Identity. Anstelle des in ASP.NET 2.0 eingeführten Membership-Systems tritt nun ein im Namensraum Microsoft.Asp.Identity realisiertes neues Modell für die Benutzer- und Rollenverwaltung, das einheitlich für alle Varianten von ASP.NET gilt und unterschiedliche Authentifizierungs-Provider (nicht nur lokale Datenbank und Active Directory, sondern auch Cloud-Dienste wie Azure Active Director, Microsoft Accounts, Facebook, Google, Twitter u. a.) unterstützt.

Weitere Visual-Studio-Features

Während die bisher genannten neuen Visual-Studio-Features von .NET Framework 4.5.1 abhängen, gibt es zahlreiche weitere Funktionen, die für alle Projekte unterstützt werden. Als "Connected IDE" bezeichnet Microsoft die Synchronisierung von Visual-Studio-Einstellungen zwischen mehreren Systemen (Roaming Settings) über die Microsoft-Cloud – ein Vorteil für Entwickler, die Visual Studio auf mehr als einem Computer nutzen. Der Softwareentwickler muss sich dazu mit einem Microsoft-Account, zum Beispiel MSDN oder Team Foundation Service, in Visual Studio anmelden ("Sign In" in der Symbolleiste oben rechts). Er kann die zu synchronisierenden Einstellungen in fünf Kategorien (Appearance, Aliases, Keyboard Shortcuts, Startup und Texteditor) wählen. Die Anmeldung legt Microsoft dem Benutzer auch beim ersten Start nahe. Neben der bisherigen Auswahl eines Schemas für die "Development Settings" ist nun vor dem ersten Start der Entwicklungsumgebung die Auswahl eines Farbschemata möglich: Neben "Dark" und "Light" gibt es nun "Blue", das an Visual Studio 2010 erinnert. Selbst in Symbolleisten rudert Microsoft zurück und spendiert mehr Farbe (z. B. sind Ordner-Symbole wieder gelb), wo es in Visual Studio 2012 nur "Grau in Grau" gab. Über den Smiley in der Fensterleiste (s. Abb. 4) kann der Benutzer direkt Feedback an Microsoft geben und die Rückmeldung wahlweise als Bug deklarieren und mit seiner E-Mail-Adresse versehen oder anonym abgeben.

Ein Benutzer ist mit seinem Microsoft Account in Visual Studio 2013 angemeldet (Abb. 4).

Hinsichtlich der Projektarten unterstützt Visual Studio 2013 genau wie der Vorgänger alle .NET-Versionen seit 2.0. Wenn im Multi-Targeting nicht alle Versionen zu sehen sind, liegt das nur daran, dass die entsprechenden Framework-Versionen nicht auf dem Entwicklerrechner installiert sind. Neu für den Umgang mit verschiedenen Versionen ist "Automatic Binding Redirection". Wenn ein Projekt mehrere Versionen einer .NET-Assembly benötigt, erzeugt Visual Studio 2013 automatisch Konfigurationseinträge, die auf die Verwendung der neuesten Version umlenken.

Unter dem Slogan "One ASP.NET" versteht Microsoft die Vereinheitlichung der Projektvorlagen für alle ASP.NET-Varianten (Webforms, MVC, Web API), für die es bisher eigenständige Vorlagen gab. Nach der Auswahl der Vorlage "ASP.NET Web Application" erhält der Entwickler einen Unterdialog, in dem er die zu unterstützenden Web-Frameworks auswählen kann. Er kann somit in einer Webanwendung Webforms, MVC und Web API mischen. Die vorlagenbasierte Generierung von Webseiten (Scaffolding) aus ASP.NET MVC gibt es nun auch für Webforms. Als zusätzliches JavaScript-Framework liefert Microsoft nun Twitters Bootstrap mit.

Für Windows Azure bietet Visual Studio 2013 im "Server Explorer" nun die direkte Verbindung zu Azure Mobile Services und Azure Websites. Entwickler können derzeit nur Mobile-Services-Instanzen direkt in Visual Studio anlegen und die Node.js-Skripte editieren, was bisher nur unkomfortabel über ein Webportal ging. Zugang zu weiteren Azure-Diensten sollen mit dem nächsten Azure SDK ergänzt werden.

LightSwitch-Projekte teilen die Metadaten des Projekts nun auf viele kleine .lsml-Dateien auf, damit sich bei der Arbeit im Team die Konflikte verringern. Zudem sind bei LightSwitch die bisherigen Ansichten "Logical View" und "File View" zu einer Ansicht vereinheitlicht.