zurück zum Artikel

Jenseits von JavaScript und HTML5: Ausblick auf .NET 4.5 und Visual Studio 11.0

Dr. Holger Schwichtenberg

Im Zuge der Metro-Oberfläche in Windows 8 haben einige das .NET Framework schon totgesagt. Zu Unrecht.

Im Zuge von Microsofts Ankündigungen auf der BUILD über die Metro-Oberfläche in Windows 8 haben einige das .NET Framework schon totgesagt. Tatsächlich aber hat Microsoft gleichzeitig mit der Vorstellung der Windows-8-APIs neue Versionen von .NET und der Entwicklungsumgebung Visual Studio präsentiert, die ganz und gar nicht den Eindruck erwecken, dass man diese Produkte nicht mehr fortentwickelt.

Microsoft nennt das .NET Framework 4.5 ein "In-Place-Update". Das soll heißen: Durch das Installationspaket werden ein vorhandenes .NET 4.0 ergänzt und bei einigen Interna die Common Language Runtime (CLR) leicht verändert. Es gibt keine neue große Bibliothek wie bei den Vorgängerversionen. Microsoft hat "nur" viele kleine bis mittlere Verbesserungen quer durch die Klassenbibliothek umgesetzt. Dabei ist der Konzern besonders stolz darauf, dass Kundenwünsche eingeflossen sind, insbesondere über Vorschlags- und Abstimmungsportale wie aspnet.uservoice.com [1] und visualstudio.uservoice.com [2].

Die auf der BUILD-Konferenz vorgestellte "Developer Preview" von .NET 4.5 und Visual Studio 11.0 läuft auf Windows 7 und 8 beziehungsweise Windows Server 2008 R2 und Windows Server "8" (noch ein Codename). Sie steht kostenfrei zur Verfügung [3]. Neben dem Setup kann man auch ein virtuelles System inklusive "Hands-on-Labs" bekommen, das aber nicht auf den offiziellen Download-Seiten zu finden ist, sondern sich im Weblog von Brian Keller [4] versteckt.

Eine wesentliche Änderung in .NET 4.5, die auch Modifikationen an der CLR nach sich zog, ist die Unterstützung für die WinRT-Bibliothek (Windows Runtime), die auf einer neuen, vorerst noch namenlosen Version des Component Object Model (COM) basiert. .NET-Programme können wahlweise WinRT zu .NET-Anwendungen hinzubinden, um Programme für den Windows-Desktop zu schreiben, oder aber man kann WinRT anstelle der Klassenbibliothek des .NET Framework verwenden, um Windows-Apps für die neue Metro-Oberfläche zu entwickeln. Für Details zu WinRT sei auf den Beitrag [5] verwiesen.

Darüber hinaus hat Microsoft an der CLR vor allem den Garbage Collector nochmals überarbeitet. Geringer geworden ist auch die Installationsgröße des .NET Framework. Die Redmonder verzichten bei der Installation nun darauf, direkt zu Beginn ein Native Image aller Assemblies zu erzeugen. Dieses Image entsteht nur noch automatisch für wenige Assemblies. Das geht zu Lasten der Leistung. Stattdessen protokolliert die CLR die Benutzung von Managed Code mit und erzeugt bei Bedarf ein Native Image in einem Cache.

Neben WinRT ist das zweite wesentliche Thema in .NET 4.5 das asynchrone Programmieren. Auf Basis der in .NET 4.0 eingeführten Task Parallel Library (TPL) bietet Microsoft ein neues, sprachunterstütztes Pattern für asynchrones Programmieren. Eine Methode kann mit dem neuen Schlüsselwort async (C#) beziehungsweise Async (Visual Basic) deklarieren, dass im Laufe ihrer Ausführung die Kontrolle an den Aufrufer zurückgeben will. Eine solche asynchrone Methode kann ein Task-Objekt (aus der TPL) oder nichts zurückliefern. Die Methode sollte aber auf das Wort "async" enden. Innerhalb der asynchronen Methode wird die Kontrolle dann genau nach dem ebenfalls neuen Schlüsselwort Await beziehungsweise await an den Aufrufer zurückgegeben. Await bezieht sich immer auf ein Task-Objekt, das man entweder selbst erzeugt hat oder von einer anderen asynchronen Methode stammt.

Das folgende Listing zeigt ein Beispiel, in dem zunächst ein asynchroner HTTP-Download startet und das dann eine einfache asynchrone Warteanzeige (Ausgabe von Punkten) ausgibt. Der HTTP-Download basiert auf der neuen Methode GetAsync() in der neuen Klasse System.Net.Http.HttpClient. Die Warteanzeige verwendet einen selbsterstellten Task.

    class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hauptprogramm Start");
DownloadAsync();
Console.WriteLine("Warten auf Tastendruck");
WarteAnzeige();
Console.ReadLine();
Console.WriteLine("Hauptprogramm Ende");
}

/// <summary>
/// Asynchroner Download (Rückgabe: nichts)
/// </summary>
static private async void DownloadAsync()
{
Console.WriteLine("DownloadAsync() - Schritt 1");
Task<byte[]> task =
GetHttpAsync(new Uri("http://www.IT-Visions.de"));
Console.WriteLine("DownloadAsync() - Schritt 2");
byte[] ergebnis = await task;
Console.WriteLine("DownloadAsync() - Schritt 3");
Console.WriteLine("DownloadAsync() - Ergebnis:
" + ergebnis.Length + " Bytes empfangen");
}

/// <summary>
/// Asynchroner Download (Rückgabe: Task<T></T>)
/// </summary>
static private async Task<byte[]> GetHttpAsync(Uri currentURI)
{
Console.WriteLine("GetHttpAsync() - Schritt 1. URL =
" + currentURI);
HttpClient client = new HttpClient() {
MaxResponseContentBufferSize = 1000000 };
Console.WriteLine("GetHttpAsync() - Schritt 2. URL =
" + currentURI);
HttpResponseMessage httpRM =
await client.GetAsync(currentURI);
Console.WriteLine("GetHttpAsync() - Schritt 3. URL =
" + currentURI);
return httpRM.Content.ReadAsByteArray();
}

/// <summary>
/// Warteanzeige mit eigenem Task-Objekt
/// </summary>
static private async Task WarteAnzeige()
{
var t = new Task(() => Print(10));
t.Start();
await t;
}

/// <summary>
/// Methode für Task in WarteAnzeige()
/// </summary>
static private void Print(int Anzahl)
{
for (int i = 0; i < Anzahl; i++)
{
Console.Write(".");
System.Threading.Thread.Sleep(100);
}
}
}

Abbildung 1 zeigt das Ergebnis. Durch Drücken einer Taste kann man die Konsolenanwendung jederzeit beenden. In dem Stil sollen zahlreiche Klassen in der .NET-Klassenbibliothek (z. B. System.IO und System.Data) neue asynchrone Methoden erhalten. In der derzeit verfügbaren Preview ist das aber noch nicht komplett umgesetzt.

Ausgabe des asynchronen Beispiels aus dem ersten Listing (Abb. 1)

Für das Annotieren der Methodenparameter bieten der C#-5.0- und VB-11.0-Compiler sogenannte Caller Info Attributes ([CallerFilePath], [CallerLineNumber], [CallerMemberName]). Dadurch erhält die gerufene Methode Informationen über den Aufrufer (vgl. __FILE__ und __LINE__ in C++).

Visual Basic wird durch die Übernahme der Schlüsselwörter Global (zur Namensraumfestlegung) und Yield (zur Iterator-Implementierung) noch ebenbürtiger zu C#. Auch die in Visual Studio 2010 für C# eingeführte Call-Hierarchy-Ansicht in der Entwicklungsumgebung gibt es nun für Visual Basic.

Auf der BUILD-Konferenz präsentierte [6] C#-Schöpfer Anders Hejlsberg auch schon die übernächste Version der Sprach-Compiler, die unter dem Motto "Compiler as a Service" steht. Roslyn ist der Codename für das Projekt, in dem Microsoft die Compiler von C# und Visual Basic .NET in einzelne Dienste zerlegen will, mit dem Ziel, dass der Kompilierungsprozess keine Blackbox mehr ist, sondern sich beeinflussen lässt. Das ermöglicht zum Beispiel interaktives C# inklusive IntelliSense-Funktionen und Refactoring. Roslyn soll es im Oktober als Vorabversion geben.

Die in .NET 1.0 eingeführten ASP.NET Webforms wurden wiederholt totgesagt, weil viele andere ASP.NET-Varianten (ASP.NET Dynamic Data, ASP.NET MVC, ASP.NET Webpages/Webmatrix) entstanden. Dass Microsoft dieses Zugpferd aber nicht vernachlässigen will, zeigt der Konzern nun mit ASP.NET 4.5. Zentral sind hierin das Verwenden von HTML5 und CSS3 in den Webforms-Steuerelementen, zum Beispiel bietet <asp:TextBox> nun ein TextMode-Attribut mit Unterstützung für HTML5-Eingabesteuerelemente wie Phone und EMail.

Mit dem sogenannten "Model Binding" bekommt ASP.NET abermals ein neues Verfahren, mit dem sich Datenbindungsausdrücke in Vorlagen nun streng typisieren lassen (bisher war dort Eval() notwendig). Zudem kann man Methodenparameter in Code-Behind-Klassen von Webforms nun so annotieren, dass die ASP.NET-Infrastruktur daran Daten aus der ASP.NET-Umgebung, etwa Querystring, Formulardaten, Cookies oder Steuerelemente, bindet. Eigene sogenannte Value Provider Attributes sind durch Implementieren von IValueProvider möglich.

Die Startgeschwindigkeit von ASP.NET-Webanwendungen will Microsoft, durch Beschleunigung der Kompilierung beim ersten Aufruf um 35 Prozent verbessert haben. Eine weitere Leistungssteigerung kann man durch das dynamische Verkleinern und Verbinden von CSS- und JavaScript-Dateien erhalten (System.Web.Optimization).

Im Namensraum Microsoft.Web.WebSocket unterstützt ASP.NET nun den kommenden WebSocket-Standard des W3C für Nachrichten vom Webserver zum Webbrowser. Man braucht dafür allerdings einen Internet Information Server 8, der auf Windows Server "8" läuft, den es ebenfalls seit der BUILD-Konferenz als Developer Preview [7] gibt.

Auch beim Datenzugriff schreitet die Entwicklung voran. Das ADO.NET Entity Framework 4.5 kompiliert nun zur Leistungssteigerung alle LINQ-to-Entities-Befehle – bisher musste man das selbst machen. Auch das Table-per-Type-Mapping (TPT) soll schneller laufen. Beim Mapping sind nun Enumerationen sowie die Typen Geography und Geometry möglich. Entwickler, die nach dem Code-First-Prinzip arbeiten, können nun Datenbankschemata migrieren. Bisher konnte man bei einer Schemaänderung nur alle Tabellen erst löschen, dann neu anlegen und befüllen.

Der ORM-Designer erlaubt in Visual Studio 11, mehrere Stored Procedures auf einmal als Funktionen zu importieren. Auch Stored Procedures mit mehreren verschiedenen Resultsets und Table-Valued-Funktionen sind realisierbar. Die wohl wichtigste Veränderung im Designer ist die Unterstützung mehrerer unterschiedlicher Diagramme für ein einziges Objektmodell. Bisher war die Arbeit mit großen Modellen eine Qual. Ein Teil der neuen Entity-Framework-Funktionen waren bereits als eine Vorabversion für Visual Studio 2010 verfügbar [8]. Dazu gehören neue Funktionen für die WCF Data Services, die OData-Implementierung von Microsoft, enthalten (z. B. die Operatoren All und Any).

Auch beim "klassischen" ADO.NET tut sich noch was: Neben den erwähnten asynchronen Aufrufen gibt es Anpassungen an neue Funktionen der zukünftigen Version des SQL Server "Denali [9]", zum Beispiel Angaben für die neue Failover-Funktion "AlwaysOn" in den Verbindungszeichenfolgen und direkte Nutzung einer .mdf-Datei via "LocalDB". Auch die in SQL Server 2008 eingeführten Sparse Columns (die leere Spalten optimiert ablegen) unterstützt ADO.NET 4.5 nun.

Die lange vermisste Übergabe von Kennwörtern an ADO.NET-Verbindungsobjekte als verschlüsselten SecureString [10] hat Microsoft jetzt umgesetzt. Der Server Explorer von Visual Studio 11 besitzt nun einen eigenen Knoten "SQL Server" (siehe links in Abb. 2), über den man die gleiche Sicht und gleichen Funktionen für einen SQL Server erhält wie im SQL Server Management Studio.

Links in Visual Studio 11 der neue "SQL Server"-Zweig im Server Explorer, daneben ein Check-in im komplett überarbeiteten Team Explorer (Abb. 2)

Mit .NET 3.0 hatte Microsoft die Windows Workflow Foundation (WF) erstmals ausgeliefert; für .NET 4.0 wurde sie komplett neu geschrieben. Doch immer noch gibt es deutliche Schwächen, die Microsoft nun in .NET 4.5 angeht. Endlich lassen sich Workflows versionieren und begonnene in eine modifizierte Workflow-Definition überführen. Im Rahmen eines "Dynamic Update" kann der Entwickler Programmcode schreiben, der die Aktivitäten und Variablen einer Workflow-Instanz ändert beziehungsweise neue hinzufügt oder löscht. Ein Workflow-Hostprozess kann aber mehrere Versionen ein und des gleichen Workflows parallel betreiben (Side-by-side Execution).

Die schmerzlich vermissten Zustandsautomaten hat Microsoft in einem Update für .NET 4.0 [11] schon nachgeliefert. Eine neue Aktivität mit Namen "NoPersistScope" verhindert, dass sich die darin enthaltenen Aktionen persistieren.

Ein weiterer Verbesserungsschwerpunkt ist beim bislang unhandlichen Designer festzustellen. Er bekommt nun Suchfunktionen, eine bessere Bedienbarkeit per Maus, Mehrfachauswahl und eine hierarchische Ansicht (Outline View). Aktivitäten werden beim Drag & Drop automatisch in eine Sequenz verpackt, wenn es bereits in dem Container eine andere Aktion gibt. Was in .NET 4.0 stark verwunderte, war die Tatsache, dass innerhalb der Workflows alle Ausdrücke in Visual-Basic-Syntax erfolgen mussten, selbst wenn man ein C#-Projekt angelegt hatte. Den misslichen Umstand heilt Microsoft nun in Visual Studio 11.

Bei WCF 4.5 (Windows Communication Foundation) hat Microsoft nun endlich abgeschafft, dass beim Erstellen eines Client-Proxy mit "Add Service Reference" oder dem Kommandozeilenwerkzeug svcutil.exe umfangreiche Konfigurationsdateien entstehen, in denen alle Werte noch mal explizit auf die Standardwerte gesetzt werden. Mit svcutil.exe kann man nun nach dem Contract-First-Prinzip entwickeln. Dabei gibt der Entwickler ein WSDL-Dokument vor und erhält daraus die Klassendateien für Dienst- und Datenklasse im WCF-Stil.

Die Entwicklungsumgebung macht nun die XML-Konfiguration für WCF-Dienste einfacher, denn der XML-Editor liefert nicht nur wie bisher Vorschläge für Elementnamen und Attribute, sondern auch Inhalte wie Binding-, Dienst- und Vertragsnamen (XML Editor Tooltips, siehe Abb. 3). Fehlerhafte Konfigurationen zeigt die Entwicklungsumgebung als Warnungen an. Bisher fielen Typfehler in der WCF-Konfiguration erst beim Start der Anwendung auf. Die Code-Konfiguration als Alternative zur XML-Konfiguration ist nun alternativ über die Implementierung einer statischen Methode Configure() innerhalb des Diensts möglich.

XML Editor Tooltips für die WCF-Konfiguration in Visual Studio 11 (Abb. 3)

WCF 4.5 bietet darüber hinaus Unterstützung für WebSockets, UDP Multicast Transport, asynchrones Streaming, Vermeidung von Puffern gestreamter Nachrichten im IIS, mehrere Authentifizierungsverfahren für einen einzigen Endpunkte und das Caching der ChannelFactory im WCF-Client. Der Binary Message Encoder bietet zudem optionale Komprimierung mit Deflate und GZIP.

Bisher erzeugte WCF immer mehrere WSDL-Dokumente für WCF-Dienste. Da das zu Problemen mit Werkzeugen anderer Hersteller führen kann, liefert WCF 4.5 nun mit dem URL-Zusatz "?singleWSDL" ein einziges Dokument. Die bisher getrennt gelieferte Windows Identity Foundation (WIF) ist nun in .NET 4.5 fester Bestandteil des Frameworks.

Das XAML-Framework WPF (Windows Presentation Foundation) erhält in Version 4.5 zwar keine neuen Steuerelemente (wenn man mal von Ribbon absieht, das bisher als Add-on verfügbar [12] ist, aber zahlreiche Überarbeitungen an der Grundinfrastruktur, insbesondere bei der Datenbindung. Dazu gehören die Bindung an
statische Properties sowie ein vereinfachtes Multi-Threading (indem man eine gebundene Menge in einem getrennten Thread verändern darf, ohne ein Thread-Problem zu riskieren), und aus Silverlight 4 wurde die Schnittstelle INotifyDataErrorInfo übernommen, die anders als die alte IDataErrorInfo mehrere Fehler
auf einmal in einer Liste zurückliefert. Bei der Datenbindung kann man nun über BindingBase.Delay eine Verzögerung angeben, damit bei häufigen Datenänderungen nicht jede zu einer Aktualisierung der Oberfläche führt. Über neue Mitglieder der Klasse BindingExpression (Target, TargetProperty, ResolvedSource etc.) kann der Entwickler in WPF 4.5 mehr Informationen über die Datenbindung auslesen.

Außerdem wurden die Leistung der ItemsControl gesteigert, die Integration zwischen WPF und Win32-Benutzeroberflächen verbessert und für das asynchrone Programmieren die Klasse Dispatcher in Hinblick auf das neue asynchrone Pattern in .NET 4.5 erweitert.

Weitere Verbesserungen ziehen sich quer durch die Klassenbibliothek – es seien deswegen nur einige Beispiele genannt. Im Namensraum System.Collections gibt es nun ein ReadOnlyDictionary. Die Auswertung regulärer Ausdrücke lässt sich mit einer Zeitbegrenzung (MatchTimeout) versehen. Die ZIP-Komprimierung in System.IO erzeugt kleinere Dateien. Die Task Parallel Library (TPL) bekommt neue Aktionen wie Task.WhenAll und Task.WhenAny sowie Task.Delay(TimeSpan). System.Net bietet bessere Unterstützung für IPv6, Internationalized Domain Name (IDN) und Email Address Internationalization (EAI). Der Namensraum System.Net.Http umfasst eine neue API für HTTP-Programmierung, die eine bessere Unterstützung für REST-Webservices liefert als die bisherigen WebClient-Klassen in System.Net.

Das Managed Extensibility Framework (MEF) erhält Unterstützung für generische Typen. Außerdem kann man nun Klassen importieren, die nicht annotiert sind ("POCO-Unterstützung"). Der Entwickler erhält auf die Bindung der Importe/Exporte aneinander mehr Einfluss und bessere Diagnose für Fehler.

Die elfte Version von Visual Studio unterstützt die Entwicklung von .NET 2.0 bis 4.5, inklusive der in .NET 3.5 eingeführten abgespeckten "Client Profiles", sowie auch weiterhin die Entwicklung mit C++ in Managed und nativem Code. Letzteres stärkt Microsoft enorm, nicht nur durch die WinRT-Strategie, sondern das nächste Visual Studio bietet auch eine bessere Unterstützung für Spiele- und Treiberentwickler.

Als Portable Assembly (alias "Portable Subset Project") bezeichnet Microsoft eine Assembly, die den kleinsten gemeinsamen Nenner mehrerer .NET-Plattformen (.NET Framework, Silverlight, Windows Phone, XBox und jetzt auch WinRT) unterstützt und daher ohne Neukompilierung auf mehreren Plattformen läuft. In Visual Studio 11.0 gibt es dafür als Projektvorlage die "Portable Class Library". In den Projekteigenschaften kann man auswählen, welche Plattformen zu unterstützen sind (siehe Abb. 4). Dementsprechend schränkt die Entwicklungsumgebung die nutzbaren Komponenten im Dialog "Add Reference", die Vorschläge der IntelliSense und die Fähigkeiten des Compilers dann ein. Auch beim Erstellen von WCF-Service-Proxies richtet sich die Codegenerierung nach dem kleinsten gemeinsamen Nenner der gewählten Plattformen.

Einstellungen für Portable Libraries in Visual Studio 11. "WinRT" fehlt hier noch (Abb. 4).

Viele Entwickler und deren Geldgeber wird erfreuen, dass das Projektformat von Visual Studio 11 erstmals kompatibel zur Vorgängerversion ist. Nun sind nicht mehr alle Entwickler eines Projektteams gezwungen, zur gleichen Zeit auf die neue Entwicklungsumgebung umzusteigen. Die bisherigen Power-Tool-Add-ons [13] sind in Visual Studio 11 fest enthalten. Die Add-ons wurden aber nicht eins zu eins übernommen. So sind die neuen Funktionen des Solution Navigator jetzt in den Solution Explorer eingeflossen. Die Suche über die Visual-Studio-Funktion ("Quick Launch") ist nun direkt in der Menüleiste (siehe rechts oben in Abb. 2) zu finden. Quick Launch ist eine sinnvolle Funktion, denn Visual Studio hat laut Microsoft inzwischen rund 4000 Funktionen, die in den tief verzweigten Menüs und Optionsdialogen nicht immer einfach zu finden sind.

Der Editor besitzt eine neue Einfügefunktion (Edit/Paste Special/Paste XML as Code), die für ein XML-Fragment in der Zwischenablage direkt eine der XML-Struktur entsprechende .NET-Klasse erzeugt. Die Datentypen werden dabei aus den Inhalten abgeleitet. Im C#-Editor trennt die IntelliSense-Funktion wie bisher schon in Visual Basic nun die Vorschläge in "Common" und "All". Die neue "Code Clone Analysis" findet Code-Duplikate, die durch Copy & Paste entstanden sind. Unterschieden wird zwischen exakten Duplikaten und ähnlichen Codestellen (z. B. eine Schleife mit gleichem Inhalt, aber anderer Durchlaufanzahl). Allerdings reicht schon das Umbenennen einer Variable, und die Funktion findet gar nichts mehr, selbst wenn die die Syntax ansonsten gleich geblieben ist.

Bei den Designern hat Microsoft erheblich nachgebessert, sowohl für WPF als auch für Webanwendungen. Visual Studio 11.0 erhält endlich den gleichen WPF-Designer wie Expression Blend, nachdem die bisherigen WPF-Designer in Visual Studio immer um Meilen hinter diesem zurücklagen. Der Webeditor ("Visual Web Developer") unterstützt nun Code-Snippets für HTML5 und CSS3; auch Eingabeunterstützung durch SmartTags ist nun vorhanden. Microsoft hat viele Kleinigkeiten ergänzt, die man aus anderen Editoren kennt, etwa automatisches Verändern des anderen Tags, wenn das öffnende oder schließende Tag umbenannt wird. Ebenso gibt es einen neuen Page Inspector, bei dem man in der Browserseite auf ein Element klicken kann und dann dazu sowohl das clientseitige HTML als auch den Servercode angezeigt bekommt, der das HTML erzeugt hat. Mit "Extract to User Control" kann der Benutzer schnell aus einen HTML-Fragment ein eigenes ASP.NET-Steuerelement erstellen. Für JavaScript soll sich die IntelliSense-Eingabeunterstützung wesentlich verbessern. Entwickler können diese nun selbst durch Code anpassen und auch interaktiv mit JavaScript in einer Konsole arbeiten. Auch Spieleentwickler will Microsoft nun besser in der IDE unterstützen. Beispielsweise können sie 3-D-Modelle (Autodesk FBX, Microsoft DDS) direkt in Visual Studio betrachten und bearbeiten.

Für die Zusammenarbeit mit dem Team Foundation Server (TFS) hat Microsoft den Team Explorer komplett überarbeitet. Anstelle der bisherigen Baumansicht tritt eine aufgabenorientierte Ansicht (siehe rechts in Abb. 2) in Erscheinung. Der Check-in des Quellcodes erfolgt nicht mehr in einem modalen Dialog, sondern direkt im Team Explorer. Dateien kann man per Drag & Drop ein- oder ausschließen. Auch TFS Work Items lassen sich per Drag & Drop oder Direkteingabe der Work-Item-ID einem Check-in zuordnen. Weitere ALM-Funktionen hatte Microsoft schon auf der TechEd im Mai angekündigt [14]. Dazu gehören Unit-Testing für C++, Unterstützung für Code-Reviews, Erstellen von Storyboards in PowerPoint und das Verwenden von IntelliTrace in Produktionsumgebungen. Auch lassen sich IntelliTrace-Daten über den System Center Operations Manager an Visual Studio übergeben.

.NET 4.5 bringt das, was man von einem Update der Versionsnummer nach dem Komma erwarten kann. Einige Bereiche profitieren mehr, andere weniger. Neben dem asynchronen Programmieren liefert Microsoft bemerkenswerte Neuerungen für die Webentwicklung, den Datenzugriff und die Workflows. Aber auch die übrigen Bibliotheken gehen nicht leer aus bei dieser Renoviermaßnahme.

Die aktuelle Vorabversion hat aber noch nicht den Beta-Status erreicht. Nicht alle der erwähnten Funktionen sind schon umgesetzt, und nicht alle Features des endgültigen Produkts hat Microsoft für die Veröffentlichung freigegeben. Einen Erscheinungstermin gibt es noch nicht, aber über Mitte 2012 darf spekuliert werden.

Holger Schwichtenberg
leitet das Expertennetzwerk www.IT-Visions.de [15], das Beratung, Schulungen und Softwareentwicklung im .NET-Umfeld anbietet. Er hält Vorträge auf Fachkonferenzen und ist Autor zahlreicher Fachbücher.
(ane [16])


URL dieses Artikels:
https://www.heise.de/-1355903

Links in diesem Artikel:
[1] http://aspnet.uservoice.com/
[2] http://visualstudio.uservoice.com
[3] http://www.microsoft.com/download/en/details.aspx?id=27543
[4] http://blogs.msdn.com/b/briankel/archive/2011/09/16/visual-studio-11-application-lifecycle-management-virtual-machine-and-hands-on-labs-demo-scripts.aspx
[5] https://www.heise.de/hintergrund/Windows-8-Apps-benoetigen-neue-Windows-Runtime-1344071.html
[6] http://channel9.msdn.com/events/BUILD/BUILD2011/TOOL-816T
[7] http://www.microsoft.com/en-us/server-cloud/windows-server/v8.aspx
[8] http://blogs.msdn.com/b/adonet/archive/2011/06/30/announcing-the-microsoft-entity-framework-june-2011-ctp.aspx
[9] http://www.microsoft.com/sqlserver/en/us/future-editions.aspx
[10] http://msdn.microsoft.com/de-de/library/system.security.securestring%28v=vs.80%29.aspx
[11] https://www.heise.de/blog/Updates-fuer-NET-4-0-1323357.html
[12] http://www.microsoft.com/download/en/details.aspx?id=11877
[13] http://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef/
[14] https://www.heise.de/blog/Neue-Funktionen-fuer-Visual-Studio-dev11-1244780.html
[15] http://www.it-visions.de/start.aspx
[16] mailto:ane@heise.de