Das .NET Framework


... [ Seminar WS 2002/03 ] ... [ C# ] ... [ Einführung in C# ] ... [ .NET Framework ] ... [ C# - Basics ]

Das .NET Framework

"Microsoft .NET is a set of Microsoft software technologies for connecting your world of information, people, systems, and devices." [Microsoft(6)]


Was ist .NET?

.NET ist seit ca. zwei Jahren ein Begriff, der in fast jeder Ausgabe der führenden Computermagazine zu finden ist. Trotz dessen ist der Begriff an sich recht schwammig und es fällt schwer eine präzise Definition zu finden. Das liegt daran, dass .NET eine Mischung aus Marketing, Vision aber auch Realität ist. Zudem besteht die Microsoft .NET Initiative aus einer Vielzahl von Bereichen, die nachfolgend in der Grafik (Abb 2.1) aufgelistet sind. In dieser Ausarbeitung beschränke ich mich auf das .NET Framework (.NET Laufzeitumgebung), auf der die Sprache C# aufsetzt.

Übersicht über die Komponenten von .NET - Abbildung 2.1

Zwar steht hier unter dem .NET OS immer noch Windows, doch die Ausrichtung von .NET ist ausdrücklich betriebssystemunabhängig. Hierzu laufen, wie bereits erwähnt Projekte, die versuchen .NET auf andere Plattformen zu portieren [www.go-mono.com]. Ein C#- und ein JIT-Compiler für Linux existieren bereits.


Das Framework und dessen Komponenten

Das .NET Framework selbst besteht wiederum aus verschiedenen Blöcken (Abb 2.2) - diese Blöcke sind von einer bestimmten Programmiersprache unabhängig und können von allen .NET-Sprachen verwendet werden. Das .NET-Framework ist eine große Bibliothek mit einem Umfang von über 7.000 Klassen und ca. 150.000 Methoden und Eigenschaften. Da fällt es nicht immer leicht den Überblick zu bewahren. Man kann das .NET Framework als einen großen Werkzeugkasten begreifen, aus dem man sich nach belieben bedienen und so seine eigenen Anwendungen zusammenbauen kann.

Der grobe Aufbau des .NET Frameworks - Abbildung 2.2

Das .NET Framework bietet von sich aus folgende Eigenschaften:


Die Common Language Infrastructure (CLI) und die Common Language Runtime (CLR)

Wie zuvor erwähnt ist die CLI standardisiert (siehe Kapitel 1). Zur Common Language Infrastructure gehören unter anderem das Common Type System (CTS) sowie die Common Language Specification (CLS). Das CTS legt fest, welche Datentypen in einer Umgebung zur Verfügung stehen und wie diese Typen aufgebaut sind. Das bezieht sich nicht nur auf primitive Typen wie Integer, sondern auch auf komplexe OOP-Typen wie Klassen oder Schnittstellen. Grundsätzlich existieren im CTS nur zwei Arten von Typen: Werttypen und Referenztypen. Alle anderen Typen sind nur speziellere Ableitungen.
In der CLS werden alle Minimalanforderungen an die .NET-Sprachen festgelegt um die Sprachunabhängigkeit und Interoperabilität zu gewährleisten. So sind beispielsweise Bezeichner in C# und C++ "case-sensitive" in VisualBasic aber nicht. Sollen die Klassen sprachunabhängig bleiben so muss sichergestellt werden, dass keine Bezeichner verwendet werden, die sich nur in ihrer Schreibweise unterscheiden. Man kann den Compiler dazu bewegen bei Nichteinhaltung der CLS-Spezifikationen eine Warnung zu generieren.

Die Common Language Runtime (CLR) legt die grundlegende Infrastruktur und Umgebung fest in der die Programmteile der verschiedenen Sprachen laufen. Abbildung 2.4 zeigt welche Aufgabe die CLR übernehmen muss.

Aufgaben der CLR - Abbildung 2.4

Beim Kompilieren einer .NET-Programmiersprache erzeugt der Compiler eine Datei, die den IL-Code und die Metadaten enthält. Bei Einhaltung der CLS ist es möglich eine Anwendung mit mehr als einer Programmiersprache zu erstellen, die dann in der Common Language Runtime abläuft.


... [ Seminar WS 2002/03 ] ... [ C# ] ... [ Einführung in C# ] ... [ .NET Framework ] ... [ C# - Basics ]