Viele Jahre hat Microsoft daran gearbeitet, mit Visual Studio 2015 ist das Ergebnis nun auch allgemein verfügbar. Die Rede ist von Roslyn, der neuen Compilergeneration für C# und VisualBasic.NET.  Einen sehr interessanten weil alltagsrelevanten Teil dieser neuen Möglichkeiten bilden ohne Zweifel die Analyzer und CodeFixProvider.

Ein Analyzer ist dabei im Grunde genommen nur eine Klasse, die mit Hilfe der Fähigkeiten der neuen Compiler Plattform Syntax und Semantik von Code analysieren und daraufhin Diagnosen anstellen kann. Ein CodeFixProvider ist dann dafür zuständig, auf Basis einer derart getroffenen Diagnose eine Codetransformation vorzuschlagen, die in der Lage ist, die Ursache des diagnostizierten Problems zu beheben. Man könnte also beispielsweise einen Analyzer entwickeln, der überprüft, ob Methodennamen mit einem Großbuchstaben beginnen. Ist das bei einer Methode nicht der Fall, wird eine „Methodenname beginnt nicht mit einem Großbuchstaben“ Diagnose gestellt. Ein CodeFixProvider für eine solche Diagnose kann nun eine Codetransformation anbieten, die den ersten Buchstaben des Methodennamens in einen Großbuchstaben umwandelt.

Mit Hilfe der neuen Compilerinfrastruktur kann ein Analyzer implementiert werden, der Methoden bezüglich fehlender NullGuards untersucht. Auf Basis dieser Diagnose kann ein CodeFix entwickelt werden, der die fehlenden NullGuards direkt einfügen kann. Wie dies in der Praxis aussieht, zeigt der Rest des Artikels.


Klicken Sie auf diesen Link um die Referenz bei dotnetpro zu sehen: http://www.dotnetpro.de/articles/onlinearticle5483.aspx

IMG_8919_frei
Florian Fordermeier
Experte bei der Art of Quality GmbH