Dienstag, 22. Mai 2012


Artikel

August 2006 | Artikel

.NET-Grundlagen

(Link zum Artikel: http://www.entwickler.de/dotnet//001055)

Grundbegriffe und Grundlagen für Visual Basic 2005

Text: von Günther und Benjamin Born
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Wer mit Visual Basic 2005 entwickelt, sollte zumindest einige Grundbegriffe und Grundlagen aus dem .NET-Umfeld kennen. Dieser Artikel stellt das Konzept von .NET kurz vor und zeigt, welche Entwicklungsumgebungen verfügbar sind.
Teil 1   Teil 2   

Die in Visual Studio 2005 enthaltenen Programmiersprachen setzen auf Microsoft .NET (als "Dot Net" ausgesprochen) auf. Aber was hat es mit .NET und den im Umfeld benutzten Begriffen auf sich? Bei Microsoft .NET handelt es sich um eine Plattform, die die notwendigen Werkzeuge und Technologien bereitstellt, um Anwendungen für Microsoft Windows und andere Plattformen wie mobile Geräte (Handys, PDSs etc.) oder Web-Server zu entwickeln. Diese Anwendungen erlauben die Kommunikation mit vielen (entsprechend ausgerüsteten) Geräten wie Windows-Rechnern, Mobiltelefonen, PDA etc. Letztendlich bildet Microsoft .NET eine Architektur, die sich aus verschiedenen Bausteinen zusammensetzt.

Visual Basic 2005
von Günter und Benjamin Born

Dieser Onlineartikel ist ein Auszug aus dem Buch "Visual Basic 2005. Programmierhandbuch" von Günter und Benjamin Born, das bei entwickler.press erschienen ist. Sie können das Buch im Onlineshop von entwickler.press erwerben.

entwickler-press.de

  • Visual Studio 2005 ist dabei die neueste Microsoft-Entwicklerplattform, mit der sich Anwendungen in verschiedenen Sprachen (Visual Basic, C#, C++ etc.) erstellen lassen. Visual Studio 2005 stellt dabei eine recht mächtige Entwicklungsumgebung dar, die von der Erstellung des Quellcodes über das Testen des Codes über die Anbindung an Datenbanken bis hin zur Erstellung von Anwendungspaketen alle Schritte unterstützt. Auf die Details komme ich weiter unten noch zurück.
  • .NET Framework stellt die Laufzeitumgebung für .NET-Anwendungen bereit und enthält eine sprachenunabhängige Klassenbibliothek. Diese Laufzeitumgebung sowie die Bibliothek wird Sie beim Programmieren in Visual Basic 2005 auf Schritt und Tritt begleiten. Allerdings wurde die Konzeption der .NET-Architektur nicht ausschließlich auf Windows abgestimmt. Sofern die betreffenden Clients verfügbar sind, können .NET-Anwendungen auf weiteren Geräten wie der XBox, auf Mobiltelefonen, auf PDAs etc. laufen. Microsoft entwickelt für die unterschiedlichen Geräte entsprechende Clients (z.B. .NET Framework für Windows, .NET Compact Framework als Untermenge des .NET Framework für Embedded Windows XP etc.).
  • Zusätzlich umfasst die .NET-Architektur noch Funktionen zur Entwicklung von Web Services, die auf entsprechenden Servern als Softwarekomponenten bereitgestellt werden. Bei den Webservices handelt es sich um Software-Module, deren Funktionen sich über Internet, Intranet etc. mittels Standards wie XML, SOAP etc. ansprechen bzw. nutzen lassen.

Die obige Aufstellung zeigt Ihnen, dass .NET eine komplexe Sammlung an Technologien, Anwendungen und Entwicklungsumgebungen ist, die unter einer gemeinsamen Architektur vereint wurden. In diesem Buch wird sich aber darauf beschränkt, Microsoft .NET zu nutzen, um Anwendungen für Windows unter Visual Basic zu entwickeln (also das, was viele Visual-Basic-Programmierer seit Jahren tun).

Microsoft strebt mit .NET an, für die eigenen Plattformen eine Alternative zu Java zu schaffen. Ziel bei der Konzeption von .NET war zudem, die sich abzeichnenden Nachteile der bisherigen ActiveX- und COM-Architektur zu vermeiden. So benötigen auf COM basierende Windows-Anwendungen häufig DLLs und müssen sich bei der Installation im Betriebssystem registrieren. Dies führt u.U. zu Problemen, wenn mehrere Anwendungen unterschiedliche DLL-Versionen benötigen. Zudem müssen auf COM basierende Anwendungen installiert und später ggf. deinstalliert werden. Dabei bleiben häufig DLL-Dateien als Leichen zurück. Der .NET-Ansatz basiert auf der Annahme, dass die Infrastruktur für Programme durch eine Laufzeitumgebung bereitgestellt wird und die Anwendungen ihren Programmcode in eigenen Dateien mitbringen. Die Installation reduziert sich dann auf das Kopieren der Dateien in den Zielordner, zur Deinstallation reicht das Löschen der betreffenden Dateien – es sind keine Eingriffe in die Registrierung mehr erforderlich.
Das .NET Framework
Das .NET Framework (Framework lässt sich als Rahmenwerk übersetzen) stellt die Infrastruktur für .NET-Anwendungen bereit (Abbildung 1).

  • Einmal enthält das .NET Framework die Laufzeitumgebung (CLR), in der .NETAnwendungen ausgeführt werden.
  • Weiterhin enthält das .NET Framework die Klassenbibliothek, die in den .NETAnwendungen benutzt werden können. Diese Klassenbibliothek bietet Funktionen zum Zugriff auf das Betriebssystem (z.B. Windows), auf das Dateisystem und vieles mehr.

Zudem enthält .NET Framework noch Compiler (C#, Visual Basic etc.) und weitere Tools, um die Programme zu übersetzen, auszuführen und zu testen. .NET Framework ist in Windows 2003 Server (sowie in zukünftigen Microsoft-Betriebssystemen) integraler Bestandteil des Betriebssystems. Unter älteren Windows-Versionen muss das .NET Framework 2.0 aber installiert werden. Andernfalls lassen sich weder .NET-Anwendungen ausführen noch entwickeln. Das .NET Framework wird dabei durch Microsoft in zwei Varianten bereitgestellt.

  • .NET Framework Redistributable: Dies ist quasi die Minimalversion, die neben der Common Language Runtime (CLR) auch die .NET Framework Klassenbibliothek, ADO.NET sowie die Compiler für die jeweiligen Sprachen enthält.
  • .NET Framework SDK: Dieses Software Development Kit (SDK) enthält neben den Dateien der Redistributable weitere Tools, Beispiele und Dokumentation (Online- Hilfe), die Entwickler zum Schreiben von .NET-Anwendungen benötigen.

Visual Studio 2005, Visual Basic 2005 Express Edition sowie die mit diesen Umgebungen erzeugten .NET-Anwendungen benötigen zur Ausführung die Version 2.0 des .NET Framework. Diese Version weist gegenüber den älteren 1.x-Versionen umfangreiche Änderungen und Neuerungen in den Klassenbibliotheken auf. Wenn Sie Visual Studio 2005 bzw. Visual Basic 2005 Express Edition auf einem Rechner installieren, wird automatisch das benötigte .NET Framework auf dem Entwicklungsrechner eingerichtet.

Die Common Language Runtime (CLR)
Die Common Language Runtime (CLR) ist die Laufzeitumgebung, in der .NET-Anwendungen ausgeführt werden. Die zum Erstellen von .NET-Anwendungen benutzten Compiler (C#, Visual Basic, C++ etc.) erzeugen nur einen sogenannten CIL-Zwischencode (Common Intermediate Language Code). Der Zwischencode enthält dabei Anweisungen zum Laden und Initialisieren von Objekten, zum Aufrufen der Methoden von Objekten sowie Anweisungen für arithmetische und logische Operationen, zur Ablaufsteuerung, zur Ausnahmebehandlung und zur Durchführung anderer Operationen.

Der Zwischencode wird zur Laufzeit von einem Just-in-Time-Compiler in den ausführbaren Maschinencode des Zielsystems überführt. Dies erlaubt der CLR, die Ausführung des Programmcodes zu kontrollieren und Aufgaben wie die Speicherverwaltung zu übernehmen. Der in .NET-Anwendungen (.exe- oder .dll-Dateien) oder in Klassenbibliotheken hinterlegte Programmcode wird daher auch als verwalteter Code (managed Code) bezeichnet. Rufen .NET-Anwendungen allerdings Betriebssystemfunktionen (COM-Objekte oder API-Funktionen) auf, werden diese Programmteile nicht mehr unter der Kontrolle der CLR ausgeführt. Man bezeichnet dies als Ausführen von unmanaged Code. Fehler, die während der Ausführung von unmanaged Code auftreten, können nicht durch die CLR kontrolliert werden. Weitere Details zur CLR finden Sie in der Hilfe zu Visual Studio 2005 in der Rubrik ».NET-Framework-Programmierung« im Unterthema »Übersicht über .NET Framework« im Abschnitt »Common Language Runtime«.

Die .NET-Framework-Klassenbibliothek
Das .NET Framework stellt neben der Laufzeitumgebung eine Klassenbibliothek bereit, die von den .NET-Anwendungen genutzt wird. Der Pfiff dabei ist, dass der Zugriff auf die Klassenbibliothek aus jeder der in .NET benutzten Sprachen möglich ist. Ein C#-Programm benutzt also die gleiche Klassenbibliothek wie Visual Basic. Dabei sind die einzelnen Klassen über sogenannte Namensräume streng hierarchisch strukturiert. Der Namensraum (z.B. System.IO) gibt dem nutzenden Programm also genau vor, wo es in der betreffenden Bibliothek die benötigte Komponente findet. Existieren innerhalb der Klassenbibliothek zwei Komponenten gleichen Namens, lässt sich durch unterschiedliche Namensräume eindeutig die richtige Komponente identifizieren.

Sofern Sie erst in die Thematik einsteigen, können Sie sich die Klassenbibliothek wie eine fertige Werkzeugsammlung vorstellen, aus denen sich die Programmiersprache bzw. der Entwickler bedient. Wenn Sie beispielsweise eine Dateioperation in einem Programm vornehmen, verwendet das Programm die entsprechenden Funktion aus der Klassenbibliothek. Aber es geht noch weiter: Selbst die Datentypen der in .NET-Programmen benutzen Variablen werden über die Klassenbibliothek bereitgestellt.

Das Common Type System (CTS)
Eine Besonderheit beim .NET Framework ist das Common Type System (allgemeines Typensystem). Es handelt sich dabei um ein Modell, welches die Regeln definiert, nach denen die Common Language Runtime Typen verwaltet. Hierzu sind im .NET Framework beispielsweise die Basistypen (Integer, Decimal etc.) für die in Programmiersprachen benutzten Variablen und Konstanten definiert. Zusätzlich sind weitere komplexere Typen (z.B. Objekte) definiert. Deklariert ein Programm Variable oder Konstante, werden diese aus den in der Klassenbibliothek hinterlegten Basistypen abgeleitet.

Was ist die Common Language Specification (CLS)?
.NET ist so angelegt, dass Anwendungen in verschiedenen Programmiersprachen erstellt werden können. Zudem lassen sich in unterschiedlichen Sprachen erstellte Programmteile innerhalb der Anwendung kombinieren. Daher muss sichergestellt sein, dass Typen (z.B. Variablen), die in einer Programmiersprache deklariert und dann im Rahmen eines Funktionsaufrufs an eine in einer anderen Programmiersprache erstellte Komponente übergeben werden, in beiden Sprachen gleich implementiert und behandelt werden. Die Common Language Specification (CLS) ist dabei das Regelwerk, welches den Austausch von Typen aus unterschiedlichen Programmiersprachen steuert.

Teil 1   Teil 2   

Kommentare