Was ist Cross Language Support?
Cross Language Support ist die Fähigkeit, die von der Common Language Runtime (CLR) und der Common Language Specification (CLS) des .NET Framework für die Interaktion mit Code in einer anderen Programmiersprache bereitgestellt wird.
Cross Language Support ist eine Sprachinteroperabilitätsfunktion mit Vorteilen wie der Wiederverwendung von Typen, die in anderen Sprachen definiert sind; eine einzige Umgebung zum Debuggen und Profiling, aufgrund der Verwendung von Microsoft Intermediate Language (MSIL); und konsistente Ausnahmebehandlung, wobei in einer Sprache geworfene Ausnahmen in einer anderen Sprache abgefangen werden können. Somit dient es als Werkzeug für die Wiederverwendung von Code und für eine effiziente Entwicklungsverarbeitung.
Die Implementierung der sprachübergreifenden Unterstützung in .NET ähnelt der von Java. Im Fall von .NET konvertiert die CLR den in Zwischensprache generierten Code (ähnlich wie Java-Bytecode) in maschinenspezifischen Code. Somit bildet die CLR eine gemeinsame Plattform für die sprachübergreifende Entwicklung, die die sprachübergreifende Vererbung, das sprachübergreifende Debugging und die sprachübergreifende Ausnahmebehandlung umfasst.
Die Zunahme der Vielfalt an Werkzeugen und Technologien machte die Forderung nach sprachlicher Interoperabilität erforderlich. Das Design von .NET zielt auf die Probleme ab, die bei der Verwendung von Komponentenobjektmodellkomponenten auftreten, wobei der Typ des Clients berücksichtigt werden muss, bevor seine Schnittstellen entworfen werden. Für Skriptclients müssen die Schnittstellenmethoden über automatisierungskompatible Parameter verfügen, die für C ++ – Clients nicht erforderlich sind. Mit Hilfe des Common Type Systems (CTS) können Wert- und Referenztypen in jeder Sprache definiert und aus jeder anderen Sprache verwendet werden. Darüber hinaus half die Eliminierung der DLL bei Problemen in COM und die Einführung von Side-by-Side-Bereitstellung von Komponenten im .NET-Framework löste das Problem der Bereitstellung bei der Verwendung mehrerer Komponenten.
Verwalteter Code, der den Spezifikationen von CLS entspricht, wird als CLS-konform bezeichnet. Dies hilft den Objekten, die in verschiedenen Sprachen codiert sind, miteinander zu kommunizieren. .NET beschränkt die Komponenten jedoch nicht darauf, nur die im CTS definierten Funktionen zu verwenden, die nicht aus anderen Sprachen verwendet werden können. Durch Festlegen des Werts des CLS-kompatiblen Attributs für eine Assembly kann die Assembly CLS-kompatibel sein und den Compiler warnen, Warnungen auszugeben, wenn in öffentlichen und geschützten Methoden nicht-CLS-kompatible Datentypen verwendet werden.
CTS spielt auch eine wichtige Rolle bei der Laufzeitunterstützung für die sprachübergreifende Integration, indem es den Satz von Regeln für die zu befolgende Sprache definiert und Typsicherheit, Hochleistungscodeausführung usw. sowie eine Vielzahl von Typen bereitstellt, die in einer Vielzahl verwendet werden von Sprachen.
Der .NET-Consumer und das .NET-Extender-Tool sind zwei Arten von Tools, die beim Arbeiten mit Komponenten hilfreich sind und eine sprachübergreifende Unterstützung bieten.