Die .NET CLR - Version 2.0

Mit der Version 2 der .NET CLR will Microsoft nächstes Jahr einige in Version 1 vermisste Features wie Generics oder statische Klassen nachreichen. Was Sie von der CLR 2 noch erwarten können und auf welche Änderungen Sie sich einstellen müssen, zeigt dieser Beitrag.

Das erste Beta ist bereits verfügbar - die fertige Version kann im Laufe des nächsten Jahres erwartet werden. Dabei wurde die CLR in Version 2 an vielen Stellen überarbeitet und erweitert. Dieser Beitrag zeigt was es Neues gibt bei der CLR und in der Base Class Library (BCL).

Die Änderungen an CLR und BCL machen sich natürlich primär in den Programmiersprachen bemerkbar: Darum demonstrieren wir alle Neuerungen am Beispiel von C#, der "Hauptsprache" von .NET. Einige der beschriebenen Neuerungen gelten ohnehin ausdrücklich nur für C#.

Zumindest für Programmierer mit einem C++-Hintergrund ist die wichtigste Neuerung ganz klar der Support für die so genannten "Generics". Diese ermöglichen wieder verwendbare Klassen, die im Gegensatz zu den bisherigen Möglichkeiten in .NET auch typensicher sind. Mit anderen Worten: Generics liegt ein ähnliches Konzept zu Grunde, wie den "Templates" in C++. Allerdings: Generics sind keine Templates, sondern wirklich nur verwandt.

Generics werden hauptsächlich für Collections verwendet. Will man in der CLR 1 eine Liste aus Objekten verwalten, dann kann man das auf zwei Arten tun:

Mit Unterstützung von Basisklassen implementiert man eine eigene Listenklasse für den gewünschten Typ, damit die Liste zumindest nach außen typensicher ist.

Man verwendet einfach die ArrayList-Klasse.

Dabei kann man wohl getrost davon ausgehen, dass letzteres Vorgehen in nahezu allen Fällen Verwendung findet, weil ArrayList viel weniger aufwendig ist als die Implementierung einer eigenen Liste.