Suchen und Finden
Service
Infos und Kontakt
2 Systemüberblick (S. 35-36)
Visual Basic basiert seit der 2002 vorgestellten Version VB.NET auf dem .NET-Framework. Dieses Framework setzt sich aus der .NET-Klassenbibliothek und den dazugehörenden Werkzeugen zusammen. Viele .NET-Details und -Interna werden bei der Visual-Basic- Programmierung von der Entwicklungsumgebung verborgen, dennoch ist es natürlich zweckmäßig, wenn Sie zumindest eine ungefähre Vorstellung davon haben, was hinter den Kulissen vor sich geht.
Dieses Kapitel gibt Ihnen einen kurzen Einstieg in das .NET-Universum. Es beschreibt die Hintergründe, die zur Entwicklung von .NET führten, stellt einige zugrunde liegende Techniken vor und bietet einen Überblick über die zur Auswahl stehenden Entwicklungswerkzeuge.
2.1 Wozu .NET?
Vor .NET beruhte die Programmentwicklung unter Windows primär auf der für C- und C++-Programmierer konzipierten MFC (Microsoft Foundation Class Library) sowie auf dem für C++ und VB6 gedachten COM (Component Object Model). Beide Konzepte waren bei ihrer Einführung modern und stellten einen Fortschritt im Vergleich zu vorhandenen anderen Technologien dar. Im Laufe der Zeit tauchten aber eine Reihe von Problemen auf, die das Leben für Programmierer zunehmend mühsam machten:
- DLL-Hell: COM-Bibliotheken werden bei der Installation eines Programms in Form von DLL-Dateien in das Windows-Systemverzeichnis kopiert. Falls sich dort bereits ältere Versionen derselben Bibliothek befanden, wurden diese überschrieben. Allerdings waren die neuen Bibliotheken zum Teil in (winzigen) Details inkompatibel, so dass nach der Installation eines neuen Programms oft ältere Programme, die sich auf ältere Versionen einer COM-Bibliothek verließen, nicht mehr liefen. Dieses Problem wird mit dem einprägsamen Begriff DLL-Hell bezeichnet.
- Speicherverwaltung: Bei COM ist der Programmierer dafür verantwortlich, nicht mehr benötigte Objekte explizit freizugeben. Bei einzelnen Objekten ist das nicht weiter schwierig. Wenn aber mehrere Objekte (womöglich zirkulär) aufeinander verweisen, kann es schlicht unmöglich sein, diese Objekte aus dem Speicher zu entfernen. Daher verbrauchten viele Programme aufgrund nicht freigegebener Objekte zunehmend mehr Speicher, je länger sie liefen.
- Sicherheit: Bei herkömmlichen *.exe-Dateien gilt das Motto: alles oder nichts. Sobald ein Programm läuft, hat es uneingeschränkten Zugriff auf alle Betriebssystemfunktionen. (Bei Windows NT/2000/XP ist der Zugriff durch die Datei- und Systemzugriffsrechte etwas limitiert, aber das hilft auch nichts, wenn ein Programm vom Administrator gestartet wird). Daraus ergeben sich natürlich massive Sicherheitsprobleme.
- Konsistenz, Objektorientierung: Das COM-Konzept ist mittlerweile etwa zehn Jahre alt, und viele Bibliotheken enthalten auch den Ballast der letzten zehn Jahre. Das führt dazu, dass die Bibliotheken in sich und im Vergleich mit anderen Bibliotheken vollkommen inkonsistent sind. Vergleichbare Operationen werden in unterschiedlichen Bibliotheken auf unterschiedliche Weise durchgeführt. Der Einarbeitungsaufwand für den Programmierer ist dementsprechend groß. Außerdem haben sich in den vergangenen zehn Jahren die Anforderungen an eine moderne, objektorientierte Klassenbibliothek stark gewandelt. COM-Bibliotheken entsprechen diesen Anforderungen meist nicht mehr.
Diese Probleme sind so grundlegend, dass eine Korrektur durch ein Update oder einen Bugfix unmöglich ist. Die Wartung des auf COM basierenden Codes stellte sich als zunehmend schwierig bis unmöglich dar. Aus diesen und vielen anderen Gründen hat sich Microsoft entschlossen, die gesamte Infrastruktur für Programmentwickler neu zu entwickeln. Diese Infrastruktur umfasst neue Klassenbibliotheken, neue Mechanismen zum Austausch von Objekten zwischen verschiedenen Anwendungen, neue Compiler, einen neuen Zwischencode für ausführbare Programme, eine neue Entwicklungsumgebung, neue Programmiersprachen und zu guter Letzt eine neue Dokumentation. Dieses Mammutprojekt, das unter dem Kürzel .NET präsentiert wurde und wird, nahm mehrere Jahre in Anspruch.
Vorteile von .NET
.NET verspricht, alle oben genannten Probleme zu lösen. Die DLL-Hell wird durch eine intelligentere Installation von Bibliotheken vermieden, die auch eine Parallelinstallation unterschiedlicher Versionen erlaubt, ohne dass diese sich im Weg sind. (Am einfachsten geht das dadurch, dass Bibliotheken in das Programmverzeichnis installiert werden.) Generell ist die Weitergabe von .NET-Programmen viel einfacher als die von COM-Programmen. Es ist nicht mehr notwendig, Bibliotheken in die Registrierdatenbank einzutragen. In vielen Fällen reicht es, die *.exe- und *.dll-Dateien einfach zu kopieren. Vorausgesetzt wird dabei natürlich, dass auf dem Zielrechner das .NET-Framework bereits installiert ist.
Das Problem der Speicherverwaltung wird dadurch gelöst, dass sich nicht mehr der Programmierer um die Freigabe von Objekten kümmert, sondern eine im Hintergrund laufende garbage collection. Das ist ein Prozess, der nicht mehr benutzte Objekte erkennt und aus dem Speicher entfernt.
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion

























