< Zurück   INHALT   Weiter >

3.4 Entwicklungsplattformen und Laufzeitumgebungen

Nachfolgend werden die Entwicklungsplattformen und Laufzeitumgebungen beider Plattformen vorgestellt.

3.4.1 .NET

.N ET ist eine von der Firma Microsoft entwickelte Entwicklungs- und Laufzeitumgebung für viele verschiedene Programmiersprachen.

Microsoft verfolgt mit .NET folgende Ziele u.a.:

- Interoperabilität der diverser Programmiersprachen

- Plattformunabhängigkeit

Zur Umsetzung der beiden Ziele hat Microsoft einen Zwischencode eingeführt. Die Compiler der jeweiligen Programmiersprachen übersetzten den Quelltext nicht direkt in die benötigte Maschinensprache, sondern in eine gemeinsame Zwischensprache (Intermediate Language, kurz IL), die eine einheitliche .NET-Laufzeitumgebung (Common Language Runtime, kurz CLR) unterstützt. Der erzeugte IL-Code wird in einem Assembly abgelegt.

Das Besondere am IL-Code ist, dass er neben dem plattformunabhängigen Code zusätzliche Metadaten enthält. Die Metadaten enthalten weitere Informationen über die im IL-Code vorhandenen Typen oder welche Referenzen zu anderen Klassen (z.B. Bibliotheken) bestehen.

Erst zur Laufzeit kompiliert ein Just-in-Time(JIT)-Compiler, der Bestandteil der

.NET-Laufzeitumgebung ist, die Zwischensprache in die notwendige Maschinensprache.

Abb. 3-1 Grundkonzept JIT-Compiler94

Für die Erzeugung des gemeinsamen IL-Codes bedarf es einheitlicher Richtlinien und Standards. Microsoft fasst diese in der Common Language Specification (CLS) zusammen. Ein wichtiger Bestandteil der CLS ist das Common Type System (CTS). Es definiert alle Typen, die von der .NET-Laufzeitumgebung unterstützt werden. Mithilfe der einheitlichen Zwischensprache können Entwickler einzelne Komponenten, die auf Basis verschiedener .NET-Programmiersprachen entwickelt wurden, übergreifend einsetzen.

3.4.1.1 Laufzeitumgebung

Für die Ausführung einer .NET-Anwendung bedarf es der .NET-Laufzeitumgebung (CLR). Sie ist das Bindeglied zwischen Zielrechner und .NET-Anwendung. Sobald eine .NET-Anwendung startet, wird automatisch die Laufzeitumgebung gestartet, die dann alle weiteren Aufgaben übernimmt. Zu diesen zählt unter anderem die Verwaltung der Zwischensprache. Aus diesem Grund heißt die Zwischensprache auch verwalteter Code (engl. managed Code). Neben der Kompilierung des IL-Codes übernimmt die CLR außerdem folgende Aufgaben.

- Überwachung der Codeausführung

- Speicherverwaltung und -freigabe

- Thread-Management

- Sicherheit, z.B. Ausführungsberechtigung von lokalen, Internet oder Netzwerkanwendungen

- Sicherstellung der Typ- und Codeverifikation über das CTS

- Zusammenarbeit mit Unmanaged Code, d.h. Code, der nicht über die CLR ausgeführt wird

Abb. 3-2 Aufbau der Laufzeit Umgebung, CLR97

3.4.1.2 .NET-Framework

Das .NET-Framework fasst sämtliche Technologien zu einer einheitlichen Infrastruktur zusammen. Es ist zugleich eine Entwicklungs- und Laufzeitumgebung mit einer großen Zahl von Klassenbibliotheken, die vorgefertigte Lösungen für zahlreiche Aufgaben enthalten. Die Klassenbibliotheken umfassen sämtliche Typen, welche die Basis aller .NET-Anwendungen bilden. Zahlreiche Namensräume (engl. Namespaces) organisieren die einzelnen Typen nach ihren Aufgaben. Aufgrund der Common Language Specification können alle .NET-Sprachen die Klassenbibliotheken nutzen. Zu den Funktionen der Klassenbibliotheken gehören unter anderem:

- Klassen zur Erzeugung von grafischen Oberflächen und den notwendigen Steuerelementen wie Schaltflächen, Eingabefeldern oder Tabellen

- Ein- und Ausgabefunktionalitäten von Daten

- Datenbankzugriff über ADO.NET

- XML-Verarbeitung

- Prozesssteuerung

- Netzwerkkommunikation

- Zusätzliche Frameworks wie WPF, WCF und WF

Abb. 3-3 Der Aufbau des .NET-Frameworks in der Übersicht102

In unterschiedlicher Literatur sind die Begriffe Base Class Library (BCL) und Framework Class Library (FCL) zu finden. Die BCL stellt dabei eine Basisklassenbibliothek dar, die auch für andere Plattformen zur Verfügung steht. Die FCL beinhaltet Komponenten, die von Microsoft ergänzt werden. Dabei soll die BCL eine Teilmenge der FCL bilden. Weitere Ausführungen seitens Microsoft existieren nicht. Daher ist in der Regel immer das gesamte .NET-Framework gemeint.

3.4.1.3 Plattformunabhängige Entwicklung

Mit .NET hat Microsoft einen wertvollen Schritt in die Entwicklung von reichhaltigen und modernen Softwaresystemen für unterschiedliche Plattformen vollzogen. Jedoch sind mit unterschiedlichen Plattformen nur die einzelnen Windows Versionen gemeint. Für die Nutzung von .NET-Anwendungen auf anderen Betriebssystemen bedarf es daher mehr Aufwand, als nur den IL-Code weiterzugeben.

Microsoft hat aus diesem Grund mit der Common Language Infrastructure (CLI) die Standardisierung der Common Language Runtime veranlasst. Sie ist im Standard ECMA-335 verankert. Mit dessen Hilfe können andere Hersteller Laufzeitumgebungen für verschiedene Betriebssysteme entwickeln, auf denen .NETAnwendungen ausgeführt werden können. Zu diesen Laufzeitumgebungen gehört beispielsweise das Open Source-Projekt Mono, welches CLIs für verschiedene Plattformen wie z.B. Linux oder Mac OS X bereitstellt.

Der ECMA-Standard definiert verschiedene Typen von Klassenbibliotheken, die in zwei Profilen zusammen gefasst sind.

- Kernel Profile

- Compact Profile

Das Kernel Profile besteht aus der Base Class Library und der Runtime Library. Es definiert die minimale Konfiguration der Common Language Infrastructure. Das Profil beinhaltet grundlegende Typen einer modernen Programmiersprache (Datentypen, Container, etc.) sowie Typen, die benötigt werden, um einen CLI-konformen Quelltext zu erzeugen.

Das Compact Profile erweitert das Kernel Profile um zusätzliche Funktionalitäten. Es beinhaltet u.a. die XML Library, Network Library und die Reflection Library.

Die Klassenbibliothek des .NET-Frameworks ist zwar ECMA-335 kompatibel, beinhaltet aber ergänzend weitere zusätzliche Komponenten.

.NET-Anwendungen, die ausschließlich Bestandteile des ECMA-Standards 335 einsetzen, lassen sich problemlos auf ECMA-335 kompatible Laufzeitumgebungen übertragen, ohne dabei Anpassungen vorzunehmen. Einige dieser Laufzeitumgebungen bieten zusätzlich weitere Klassenbibliotheken des .NET-Frameworks an. So lassen sich auch Anwendungen übertragen, die Komponenten nutzen, die über den ECMA-Standard hinausgehen.

Mono ist eine solche Laufzeitumgebung. Neben den standardisierten Klassenbibliotheken beinhaltet es weitere Klassenbibliotheken des .NET-Frameworks. Hier seien insbesondere ADO.NET, ASP.NET und Windows Forms genannt.

 
< Zurück   INHALT   Weiter >