© best_vector/Shutterstock.com
Tipps und Tricks rund um .NET und Visual Studio

Kolumne: .NETversum


Die im Rahmen von .NET Framework 4.6 erschienenen Sprachversionen C# 6 und Visual Basic 14 bieten einige syntaktische Zuckerstückchen für die Softwareentwickler. Dabei lassen sich einige (aber nicht alle) der Sprachfeatures auch in älteren .NET-Versionen verwenden, wenn man Visual Studio 2015 nutzt.

Aber in Inline-Code in ASP.NET-Webprojekten will die Nutzung der neuen Sprachsyntax in den Webseiten (.aspx, .ascx, .cshtml oder .vbhtml) nicht gelingen, selbst wenn man das Projekt auf .NET 4.6 hochstuft. Wenn man zum Beispiel die neue Stringinterpolation in Webseiten wie folgt nutzt: <%# $"Wohnort: {Item.PLZ} {Item.Ort}"%>, dann warnt Visual Studio „Feature ‘interpolated Strings’ is not available in C# 5. Please use language version 6 or greater“, und zur Laufzeit sieht man den Fehler „CS1056: Unexpected character ‘$’“.

Das liegt daran, dass der Programmcode in Webseiten ja nicht von Visual Studio, sondern vom CodeDOM des .NET Frameworks übersetzt wird.

Für die Hochstufung auf C# 6.0 muss man zunächst ein NuGet-Paket installieren: Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform. Als Nächstes muss man Einträge in der web.config-Datei ergänzen (Listing 1).

Listing 1

<system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/> </compilers> </system.codedom>

Danach muss man nun das ganze Projekt neu kompilieren. Dadurch entsteht ein Ordner \bin\roslyn\, in dem u. a. die aktuellen Versionen der Compiler (csc.exe und vbc.exe) liegen. Danach kann die neue Syntax auch in den Webseiten angewendet werden.

dotnet_praxis.tif_fmt1.jpg

Buchempfehlung

.NET-Praxis. Tipps und Tricks für .NET und Visual Studio

Dr. Holger Schwichtenberg, Manfred Steyer

In den vergangenen Jahren haben Dr. Holger Schwichtenberg und Manfred Steyer im „Windows Developer“ regelmäßig Tipps und Tricks aus ihrem Alltag als Softwareentwickler, Berater und Tra...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang