Sprachübergreifende Interoperabilität
In diesem Abschnitt wird die integrierte Unterstützung sprachübergreifender Interoperabilität durch die Common Language Runtime beschrieben und die Rolle von Common Language Specification (CLS) beim Ermöglichen einer garantierten sprachübergreifenden Interoperabilität erklärt.
Sprachinteroperabilität ist die Fähigkeit von Code, mit Code zu interagieren, der in einer anderen Programmiersprache geschrieben wurde. Die Sprachinteroperabilität kann zur maximalen Wiederverwendung von Code beitragen und die Effizienz des Entwicklungsprozesses steigern.
Da Entwickler eine große Zahl verschiedener Tools und Technologien verwenden, die möglicherweise jeweils unterschiedliche Features und Typen unterstützen, war es schon immer schwierig, Sprachinteroperabilität sicherzustellen. Sprachcompiler und Tools für die Common Language Runtime profitieren jedoch von der in der Common Language Runtime eingebauten Unterstützung der Sprachinteroperabilität.
Die Common Language Runtime bietet die für Sprachinteroperabilität erforderliche Basis, indem ein allgemeines Typsystem angegeben und erzwungen wird und Metadaten bereitgestellt werden. Da alle mit Unterstützung für die Laufzeit entwickelten Sprachen beim Definieren und Verwenden von Typen dieselben Regeln für ein allgemeines Typsystem befolgen, ist die Verwendung von Typen sprachübergreifend konsistent. Metadaten ermöglichen die Sprachinteroperabilität durch Definieren eines einheitlichen Verfahrens zum Speichern und Abrufen von Informationen über Typen. Compiler speichern Typinformationen als Metadaten, und die Common Language Runtime verwendet diese Informationen zum Bereitstellen von Diensten während der Ausführung. Die Ausführung mehrsprachiger Anwendungen kann von der Laufzeit verwaltet werden, weil alle Typinformationen unabhängig von der Sprache des Codes auf die gleiche Weise gespeichert und abgerufen werden.
Verwalteter Code profitiert in folgender Hinsicht von der Unterstützung der Sprachinteroperabilität durch die Laufzeit:
Typen können die Implementierung von anderen Typen erben, Objekte an die Methoden anderer Typen übergeben und die in anderen Typen definierten Methoden aufrufen, unabhängig von der Sprache, in der die Typen implementiert werden.
Debugger, Profiler oder andere Tools müssen lediglich für eine Umgebung eingerichtet sein – für MSIL (Microsoft Intermediate Language) sowie für Metadaten für die Common Language Runtime – und können alle für die Laufzeit entwickelten Programmiersprachen unterstützen.
Die Behandlung von Ausnahmen ist sprachübergreifend konsistent. Wenn Code in einer Sprache eine Ausnahme auslöst, kann diese Ausnahme von einem in einer anderen Sprache geschriebenen Objekt abgefangen und erkannt werden.
Obwohl die Laufzeit sämtlichen verwalteten Code mit Unterstützung für die Ausführung in einer mehrsprachigen Umgebung bereitstellt, gibt es keine Garantie dafür, dass die Funktionalität der von Ihnen erstellten Typen in den von anderen Entwicklern verwendeten Programmiersprachen voll ausgenutzt werden kann. Dies ist vor allem deshalb der Fall, weil jeder für die Laufzeit entwickelte Sprachcompiler das Typsystem und die Metadaten verwendet, um den eigenen eindeutigen Satz an Sprachfeatures zu unterstützen. Wenn Sie nicht wissen, in welcher Sprache der Aufrufcode geschrieben wird, ist Ihnen in aller Regel auch nicht bekannt, ob der Aufrufer auf die von einer Komponente verfügbar gemachten Funktionen zugreifen kann. Wenn die gewählte Sprache z. B. Ganzzahlen ohne Vorzeichen unterstützt, entwerfen Sie möglicherweise eine Methode mit einem Parameter des Typs UInt32. Diese Methode könnte aber in einer Sprache, die keine Ganzzahlen ohne Vorzeichen erkennt, nicht verwendet werden.
Um sicherzustellen, dass der verwaltete Code auch für Entwickler zugänglich ist, die andere Programmiersprachen verwenden, stellt .NET Framework die Common Language Specification (CLS) bereit, die einen Basissatz von Sprachfunktionen bereitstellt und Regeln für die Verwendung dieser Funktionen definiert. Weitere Informationen zur CLS-Kompatibilität in Komponenten und Tools finden Sie unter Schreiben von CLS-kompatiblem Code.
Verwandte Themen
Titel |
Beschreibung |
---|---|
Erklärt die Notwendigkeit einer Reihe gemeinsamer Features für alle Sprachen und führt CLS-Regeln und -Features auf. |
|
Erläutert die Bedeutung der CLS-Kompatibilität für Komponenten und führt die Stufen der CLS-Kompatibilität für Tools auf. |
|
Beschreibt, wie Typen von der Common Language Runtime deklariert, verwendet und verwaltet werden. |
|
Erklärt den Mechanismus, mit dem die Common Language Runtime einen Typ beschreibt und diese Informationen mit dem Typ selbst speichert. |