1.2 Aufbau des .NET Frameworks
 
1.2.1 Namensräume (Namespaces)
 
Sinngemäß zusammengehörige Klassen des .NET Frameworks werden in Namensräumen (Namespaces) zusammengefasst. Ein Namensraum kann Klassen und/oder weitere Namensräume enthalten, so dass sich eine Hierarchie von Namensräumen ergibt. Ein Namensraum kann außer Klassen auch Schnittstellen, Strukturen, Delegates und Enumerationen definieren.
Beispiele:
Der Namensraum System.Text enthält unter anderem die Klassen StringBuilder und ASCIIEncoding.
Der Namensraum System.Web.UI.WebControls definiert zahlreiche Webserversteuerelemente, z. B. Button und TextBox.
Die Dokumentation zum .NET Framework SDK enthält unter dem Punkt Referenz/Klassenbibliothek eine Übersicht über die vorhandenen Namensräume (siehe Abbildung 1.1).
 Hier klicken, um das Bild zu Vergrößern
Abbildung 1.1 Sinngemäß zusammengehörige Klassen werden in Namespaces (Namensräumen) zusammengefasst.
Jede Klasse gehört zu genau einem Namensraum. Sie können eine Klasse eindeutig bezeichnen (insbesondere auch im Programmcode), indem Sie die Klasse einschließlich ihres Namensraumes anführen. Auf diese Weise lässt sich beispielsweise die Klasse System.Web.UI.WebControls.TextBox eindeutig von der Klasse System.Windows.Forms.TextBox unterscheiden.
| Achtung Die Hierarchie der Namensräume ist unabhängig von der Vererbungshierarchie der .NET-Klassen. Namensräume enthalten Klassen mit völlig unterschiedlichen Vererbungshierarchien.
|
Der bereits erwähnte Namensraum System.Web.UI.WebControls enthält beispielsweise unter anderem die Klasse CompareValidator. Die Vererbungshierarchie der Klasse CompareValidator lautet:
System.Object
System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.Label
System.Web.UI.WebControls.BaseValidator
System.Web.UI.WebControls.BaseCompareValidator
System.Web.UI.WebControls.CompareValidator
Jede tiefer stehende Klasse erbt von der darüber stehenden Klasse, bis am Anfang System.Object als Urvater aller .NET-Klassen erreicht ist. Die Klasse System.Web.UI.Control erbt direkt von System.Object. Von System.Web. UI.Control ausgehend wird die Klasse mehrmals durch Klassen weitervererbt, die alle innerhalb des System.Web.UI.WebControls-Namensraumes stehen, bis am Ende die Klasse CompareValidator entstanden ist (siehe Abbildung 1.2).
 Hier klicken, um das Bild zu Vergrößern
Abbildung 1.2 Die Vererbungshierarchie einer Klasse ist unabhängig von ihrer Einordnung in einen Namensraum.
1.2.2 Häufig verwendete Namensräume
 
Die folgenden Namensräume werden im Verlauf dieses Buches immer wieder genutzt werden.
System
Dieser grundlegende Namensraum ist immer präsent. Er definiert unter anderem die grundlegenden Datentypen, die Klassen für Exceptions und solche Typen, die für Routinen zur Ereignisbearbeitung benötigt werden.
System.Collections und System.Collections.Specialized
Mit den Klassen und Schnittstellen dieser Namensräume kommt man oft in Berührung, weil andere Klassen sie oft verwenden. Hier werden diverse Arten von Listen, Hashtabellen und Dictionaries für verschiedene Einsatzzwecke definiert. Ein Auflistung von Schlüssel-Wert-Paaren kann beispielsweise von einem Objekt vom Typ System.Collections.Specialized.NameValueCollection repräsentiert werden.
System.Data, System.Data.OleDB, System.Data.SqlClient
Diese Namensräume enthalten alles, was man für den Zugriff auf Datenbanken benötigt. Die Datenzugriffstechnologie ADO.NET wird hier definiert. System.Data.OleDB enthält den Datenprovider für die OLE-DB-Schnittstelle. Für den Microsoft SQL Server gibt es einen eigenen Namensraum System. Data.SqlClient.
System.Net
Dieser Namensraum definiert Programmierschnittstellen für die bekannten Internetprotokolle. Die Klasse HttpWebRequest repräsentiert beispielsweise eine HTTP-Anfrage und die Klasse HttpWebResponse repräsentiert eine Antwort des Servers.
System.Text
Dieser Namensraum enthält hauptsächlich eine Klasse, die gelegentlich Verwendung finden sollte, und zwar den Typ StringBuilder. Im Prinzip kann die Klasse nicht viel mehr als Strings zusammensetzen. Dabei bietet sie aber eine erheblich höhere Effizienz, als wenn wiederholt der Konkatenationsoperator & beziehungsweise &= aufgerufen wird.
System.Web
Der Namensraum System.Web ist in zahlreiche weitere Namensräume untergliedert, die den Kern dieses Buches über ASP.NET bilden. System.Web.UI enthält beispielsweise die Page-Klasse, die eine einzelne Webseite darstellt. System.Web.UI.HtmlControls enthält Klassen, die HTML-Elemente repräsentieren. Webserversteuerelemente sind im Namensraum System.Web.UI.WebControls zusammengefasst.
System.Xml
Bei der Arbeit mit .NET stellt man immer wieder fest, wie stark dieses Framework auf XML basiert. Die .NET-Konfigurationsdateien und der Zugriff auf Datenbanken sind zwei Beispiele für Bereiche, die nahezu vollständig XML-basiert realisiert wurden. Die Klassen im Namensraum System.Xml unterstützen die aktuellen, W3C-offiziellen Standards, z. B. XPath-Ausdrücke, XSLT-Transformationen und DOM Level 1 und 2 Core.
Nicht Gegenstand dieses Buches ist beispielsweise der Namensraum System. Windows.Forms. Dieser umfangreiche Namensraum enthält alle Elemente, die für die Gestaltung von herkömmlichen Desktop-Windows-Programmen benötigt werden. Für die Gestaltung von Weboberflächen steht demgegenüber der Namensraum System.Web.UI mit seinen untergeordneten Namensräumen zur Verfügung.
|