Christian Findlay 20.10.2020, 07:45 Uhr

Wie Sie FSharp-Code von CSharp aus nutzen

Der australische Entwickler Christian Findlay erklärt in einem Blogbeitrag ausführlich, wie (und warum) Sie FSharp-Code in CSharp-Anwendungen nutzen können.
(Quelle: christianfindlay.com)
CSharp und FSharp produzieren dieselbe Zwischensprache, nämlich den .NET IL Code (IL = Intermediate Language), so dass es nich verwundert, dass man beide Sprachen in demselben Projekt nutzen kann. Bevor Christian Findlay erklärt, wie man das am besten macht, zeigt er erst einmal auf, warum man das tun sollte. Denn in die Universalsprache CSharp werden zwar immer weitere Elemente des funktionalen Programmierens aufgenommen, doch das Original aus dem Hause Microsoft bleibt FSharp, aus dem viele der funktionalen Erweiterungen für CSharp entnommen worden sind. Es hat das komplettere Featureset und zeichnet sich zudem durch eine besondere Klarheit und Kürze des Codes aus.
Kurz zusammengefasst: Die funktionale Programmierung verwendet Ausdrücke, während die imperative Programmierung Anweisungen verwendet. Anweisungen sagen dem Compiler Schritt für Schritt, was er zu tun hat, während Ausdrücke Werte zurückgeben, ohne notwendigerweise eine sequentielle Definition zu erfordern. Das gesteckte Ziel lässt sich in der Regel mit beiden Programmierparadigmen erreichen, doch der Code der imperativen Programmierung ist viel expliziter und wortreicher in Bezug auf das, was er tut.
Christian Findlay zeigt nicht nur, wie Sie FSharp-Code in CSharp referenzieren, sondern stellt auch einen Lösungsvorschlag für den Fall vor, dass im aktuellen Projekt nur CSharp verwendet werden darf. Dieser basiert auf dem Werkzeug dnSpy, welches dafür genutzt wird, von FSharp generierten IL-Code in CSharp-Code zu konvertieren. Der Beitrag von Findlay erläutert, wie Sie eine F#-Assembly (IL) kompilieren und dann in CSharp konvertieren können.
Seine Lösungsansätze bieten CSharp-Programmierern den umfangreichen Funktionsumfang von FSharp, ohne dass sie dafür den gesamten Code portieren müssen.
Hier geht's zum Beitrag "How to Use F# from C#" von Christian Findlay.


Das könnte Sie auch interessieren