Ich hab kürzlich die BASTA Spring 2010 besucht (über 500 Teilnehmer). Es war wirklich eine sehr informative Veranstaltung über aktuelle Entwicklungen im .NET Bereich. Folgender Abriss soll die Neuerungen im .NET Framework 4.0, Entity Framework 2, VisualStudio 2010, WPF 4 und Silverlight 4, aufzeigen.
Im folgenden Artikel möchte ich über weitere kleine Neuerungen und Veränderungen im .NET 4.0 Framework schreiben:
GarbageCollection
Komplette Überarbeitung des GC, der GC unterstützt Background GarbageCollection Dieser ersetzt gleichzeitig die bisherigen Versionen und soll auch perfomanter sein.
- So whats new in CLR 4.0 GC [1]
Code Contracts
System.Diagnostics.Contracts
- MSDN [2]
Design-Time-only Interop-Assemblies
Man benötigt nicht mehr die primary interop assemblies (PIAs) in der Arbeit mit COM-Objekten. Für jede Interop Komponente wird nun eine eigene Assembly bereitgestellt.
- Embedding Type Information from Microsoft Office Assemblies [3]
BigInteger und komplexe Zahlen
Die neue Struktur System.Numerics.BigInteger unterstützt alle Standard Integer Operationen, einschließlich Bitmanipulation. Dieser kann aus jeder .NET Framework-Sprache verwendet werden. Zusätzlich verfügen einige der neuen .NET Framework-Sprachen (z. B. F# und IronPython) integrierte Unterstützung für diese Struktur.
Die neue System.Numerics.Complex Struktur stellt eine komplexe Zahl, die arithmetische und trigonometrische Funktionen mit komplexen Zahlen unterstützt dar.
Tupels
Die .NET Framework 4 Beta 2 stellt die System.Tuple-Klasse zum Erstellen von Tupel-Objekten, die strukturierte Daten enthalten.
var primes = Tuple.Create(2, 3, 5, 7, 11, 13, 17, 19);
- MSDN [6]
64-Bit-Betriebssysteme und Prozesse
Man kann mit Environment.Is64BitOperatingSystem und Environment.Is64BitProcess 64Bit Betriebssysteme und Prozesse identifizieren.
IsNullOrWhiteSpace
Die neue String.IsNullOrWhiteSpace-Methode gibt an, ob eine Zeichenfolge null ist, leer ist oder nur aus einem Leerzeichen besteht.
String.Concat<T>
Die String.Concat<T>-Methode kann jedes Element in eine aufzählbaren Auflistung, ohne ein vorheriges Konvertieren der Elemente in Strings, miteinander verketten.
- MSDN [7]
StringBuilder.Clear – Stopwatch.Restart
Zwei neue benutzerfreundliche Methoden stehen zur Verfügung
Enum.HasFlag
Die neue Enum.HasFlag-Methode bestimmt, ob eine oder mehrere Bitfelder oder Flags in einen Enumerationswert festgelegt sind. Enum.TryParse<TEnum>-Methode gibt einen booleschen Wert zurück, der angibt, ob eine Zeichenfolge oder ein ganzer Wert erfolgreich analysiert werden konnte.
- MSDN [10]
System.Environment.SpecialFolder
Die System.Environment.SpecialFolder-Enumeration enthält mehrere neue Ordner.
- MSDN [11]
Stream – CopyTo()
Einen Stream problemlos in einen anderen mit der CopyTo() Methode in Klassen kopieren, die von System.IO.Stream-Klasse erben.
- MSDN [12]
Path.Combine
Mir der neuen Path.Combine Methodenüberladung können Dateipfade kombiniert werde.
- MSDN [13]
System.IObservable<T> System.IObserver<T>
Die neue System.IObservable<T> und System.IObserver<T> Schnittstellen und bieten einen allgemeinen Mechanismus für Push-basierte Benachrichtigungen
System.IntPtr und System.UIntPtr
Die System.IntPtr und System.UIntPtr Klassen unterstützen jetzt die Addition und Subtraktion Operatoren.
System.Lazy<T>
Man kann mit System.Lazy<T> nun für alle benutzerdefinierten Typen eine verzögerte Initialisierung aktivieren.
- MSDN [18]
System.Collections.Generic.SortedSet<T>
Die neue System.Collections.Generic.SortedSet<T>-Klasse stellt eine self-balancing Struktur, die Daten nach Einfügen, Löschen und Suchen in sortierter Reihenfolge verwaltet. Diese Klasse implementiert die neue System.Collections.Generic.ISet<T>-Schnittstelle.
- MSDN [19]
System.IO.Compression.DeflateStream und GZipStream
Die Komprimierungsalgorithmen für die System.IO.Compression.DeflateStream und System.IO.Compression.GZipStream Klassen haben sich verbessert, sodass Daten, die bereits komprimiert sind, sich nicht noch mehr vergrößern. Die 4GB-Größenbeschränkung für das Komprimieren von Streams wurde auch entfernt.
Thread.Yield
Bewirkt das der aufrufende Thread die Ausführung an einen anderen Thread abgibt und auf den aktuellen Prozessor ausgfeührt werden kann.
Ein Thread kann das ihm zugeteilte Recht der Ausführung freiwillig abgeben, um anderen, auf die Ausführung wartenden Threads die Chance einzuräumen, aktiv zu werden. Dies wird mit dem Aufruf der Methode Thread.Yield() erreicht.
- MSDN [22]
System.Guid
Die System.Guid Strukture beinhaltet nun die Methoden TryParse() und TryParseExact().
Registry
Der Registrierungsschlüssel ist nicht mehr auf einer maximalen Länge von 255 Zeichen beschränkt.
Neue Microsoft.Win32.RegistryOptions-Enumeration, beinhaltet Volatile. Dieser bewirkt das der Schlüssel nur im Arbeitsspeicher gehalten wird und nach einem Neustart nicht mehr zur Verfügung steht. Dieses wird als flüchtiger Schlüssel bezeichnet.
- MSDN [25]
Obsolete Types
http://msdn.microsoft.com/en-us/library/ee461503%28VS.100%29.aspx
Obsolete Member
http://msdn.microsoft.com/en-us/library/ee471421%28VS.100%29.aspx
Kompatibilität TFS 2008 – TFS 2010
Was geht und was geht nicht, ist hier genau beschrieben.
Dennoch muss noch folgender Patch auf den Clients installiert werden: Visual Studio Team System 2008 Service Pack 1 Forward Compatibility Update for Team Foundation Server 2010 (Installer)
Im nächsten Artikel schreibe ich über einige Neuerungen in Visual Studio 2010









nette Arbeit, vor allem die News um .net 4
thx
nette Arbeit, vor allem die News um .net 4
thx