Web- und Software Development

Weitere Neuerungen im .NET Framework 4.0

Written By: Mario Priebe - Mrz• 12•10

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


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.

  • BigInterger Structure [4]
  • Complex Structure [5]


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);


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.


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.


System.Environment.SpecialFolder

Die System.Environment.SpecialFolder-Enumeration enthält mehrere neue Ordner.


Stream – CopyTo()

Einen Stream problemlos in einen anderen mit der CopyTo() Methode in Klassen kopieren, die von System.IO.Stream-Klasse erben.


Path.Combine

Mir der neuen Path.Combine Methodenüberladung können Dateipfade kombiniert werde.


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.


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.


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.


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.


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

Ähnliche Beiträge

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

2 Comments

  1. breeze sagt:

    nette Arbeit, vor allem die News um .net 4

    thx

  2. Hugo sagt:

    nette Arbeit, vor allem die News um .net 4

    thx