Wissen von A bis Z

Roslyn

Wenn der Compiler plötzlich mit dir spricht, dann ist es Roslyn.

Roslyn ist die offizielle Compiler-Plattform für die Sprachen C# und Visual Basic .NET und damit das Werkzeug, das aus modernem .NET-Quellcode CIL-Bytecode erzeugt. Anders als klassische Black-Box-Compiler stellt Roslyn seine internen Datenstrukturen — Syntaxbäume, Symbole, semantische Modelle — als öffentliche APIs zur Verfügung und macht den Compiler damit zu einer programmierbaren Plattform.

Eingesetzt wird Roslyn überall dort, wo C#- oder VB-Code geparst, analysiert oder transformiert wird: in Visual Studio und Rider als Grundlage für IntelliSense, Refactorings und Quick Fixes; in der dotnet-CLI als Build-Engine für csc und vbc; in Static-Code-Analyse-Werkzeugen wie StyleCop Analyzers, SonarLint, EditorConfig-basierten Regeln; in Source Generators, die zur Compile-Zeit zusätzlichen Code aus Annotationen oder Metadaten erzeugen; sowie in CodeFixes und Custom Analyzers, die projektspezifische Regeln durchsetzen.

Der Einsatzzweck und das gelöste Problem von Roslyn ergeben sich aus der traditionellen Kluft zwischen Compiler und IDE. Vor Roslyn duplizierten Visual Studio und der C#-Compiler große Teile ihres Verständnisses der Sprache: Die IDE hatte einen eigenen Parser für IntelliSense, der Compiler einen eigenen Parser für die Code-Generierung. Das führte zu Inkonsistenzen, redundantem Code und Reibung bei der Einführung neuer Sprachfeatures. Roslyn vereinheitlicht beides: Es ist zugleich der produktive Compiler und die API, die IDEs, Analyzer und Werkzeuge nutzen — was die Time-to-Market neuer C#-Versionen drastisch verkürzt hat.

Historisch wurde Roslyn ab 2010 unter dem Codenamen ‚Roslyn' (nach Roslyn, Washington) entwickelt, zunächst als geschlossener CTP, ab 2014 schließlich als Open-Source-Projekt auf GitHub veröffentlicht. Mit Visual Studio 2015 und C# 6 wurde Roslyn produktiv eingeführt und ist seither die einzige offizielle Compiler-Implementierung beider .NET-Sprachen. Source Generators (C# 9) und Incremental Generators (.NET 6) sind die jüngsten architektonischen Erweiterungen.

Eingeführt wurde Roslyn von Microsoft unter Federführung von Anders Hejlsberg, Mads Torgersen, Eric Lippert, Neal Gafter und Kevin Pilch. Die Open-Source-Veröffentlichung von Roslyn auf der Build 2014 gilt als einer der sichtbarsten Symbolakte des Strategiewechsels unter Satya Nadella — die hauseigene Compiler-Plattform öffentlich auf GitHub zu legen, war 2014 für viele in der Branche unerwartet und wurde zur Blaupause für die spätere Quelloffenlegung des gesamten .NET-Stacks.

Roslyn ist bei uns durch SourceGeneratoren in fast jedem Projekt aktiv und führt zu sehr innovativen und effizienten Lösungen.

Zurück