15
Die .NET Compiler Plattform Roslyn Christian Giesswein @giessweinweb

Roslyn DDC Kompakt 2014

Embed Size (px)

DESCRIPTION

Die neue .NET Compiler Plattform Roslyn

Citation preview

Page 1: Roslyn DDC Kompakt 2014

Die .NET Compiler Plattform

Roslyn

Christian Giesswein

@giessweinweb

Page 2: Roslyn DDC Kompakt 2014

About Me

• Ing. Christian Giesswein, [email protected]

• Gründer von Giesswein-Apps• Individualentwicklung, Consulting und Trainings

• Die bunte Welt von C#/.NET• C#, WCF, WPF, ADO.NET, Entity Framework, ASP.NET..

• OS-Entwicklung (https://github.com/giessweinapps)

• osm2mssql – OpenStreetMap für MS-SQL

• MonoDebugger für Visual Studio

• TfsDashboard

Page 3: Roslyn DDC Kompakt 2014

Die Frage des Tages

„Was mache ich als Entwickler damit?“

oder…

„Was mach ich überhaupt hier?“

Page 4: Roslyn DDC Kompakt 2014

csc.exe

• csc.exe - CSharpCompiler.exe

• vbc.exe – VisualBasicCompiler.exe

• C:\Windows\Microsoft.NET\Framework64\v4.0.30319

C# / VB.NET CodeCompiler

(csc.exe/vbc.exe)

Common Intermediate

Langue Code (CIL)

Page 5: Roslyn DDC Kompakt 2014

Roslyn

• Die neue Compiler-Plattform von Microsoft

• Open-Source https://roslyn.codeplex.com/

• Die Zukunft für uns C# und VB.NET - Entwickler

• C:\Program Files (x86)\MSBuild\14.0\Bin

Page 6: Roslyn DDC Kompakt 2014

Open-Source bedeutet…

• Ich geh mit meinem Visual Studio..• … und bau mir mal eben den Compiler von C#

• … studiere wie der Compiler funktioniert

• Microsoft öffnet sich für andere Betriebssysteme: Linux, Mac OS

• „Mono“ profitiert von Roslyn seit Anfang an

• Die Community hat die Möglichkeit Verbesserungen einzubringen und mitzuwirken

Page 7: Roslyn DDC Kompakt 2014

C# 6.0 Was kommt auf uns zu?

• Auto-Property Verbesserungen

• Expressions für Properties und Methoden

• Using static

• Null-Conditional Operator

• String Interpolation

• NameOf-Erweiterung

• Index initializers

• Exception Filters

• Await in catch/finally

Page 8: Roslyn DDC Kompakt 2014

VB.NET

• Auch VB.NET erhält Verbesserungen

• Roadmap zeigt welche Änderungen wahrscheinlich sind• Roadmap hat sich über das Jahr gesehen recht stark

verschoben

• Schwerpunkt liegt auf C#

• https://roslyn.codeplex.com/wikipage?title=Language%20Feature%20Status&referringTitle=Documentation

Page 9: Roslyn DDC Kompakt 2014

Compiler-as-a-service

• „Compiler-as-a-service“• Das gesamte (neuere) Tooling baut auf Roslyn auf

• Codeanalyse mit Roslyn

• http://referencesource.microsoft.com/

• Alles wird NuGet – … warum nicht auch Teile des Compiler?

Page 10: Roslyn DDC Kompakt 2014

Compiler-as-a-Service

Page 11: Roslyn DDC Kompakt 2014

Installation

• Was brauch ich für eigene Code-Analysen?• Visual Studio 2015 SDK

• Entweder lokal oder in der Cloud

• SDK Templates für Code-Analysen mit Roslyn• https://visualstudiogallery.msdn.microsoft.com/849f3ab1-

05cf-4682-b4af-ef995e2aa1a5

• .NET Compiler Platform Syntax Visualizer• https://visualstudiogallery.msdn.microsoft.com/70e184da-

9b3a-402f-b210-d62a898e2887

Page 12: Roslyn DDC Kompakt 2014

Roslyn – Unter der Motorhaube

• Roslyn wurde mit sehr viel Asynchronität und Parallelität versehen:• TPL und async/await

• Um die Synchronisation von Daten zu erleichtern sind alle Datenstrukturen unveränderlich(=immutable).

Page 13: Roslyn DDC Kompakt 2014

Eigene Diagnosen und Fehlerbehebungen

• Mit Roslyn wurde die Grundlage geschaffen, dass jeder Entwickler und jedes Entwicklerteam Ihre eigenen Diagnosen implementiert

• Visual Studio spielt dabei Out-Of-The-Box mit

Page 14: Roslyn DDC Kompakt 2014

Zusammenfassung

• Mit Roslyn kommt ein Compiler der in C#/VB.Net geschrieben ist

• Wird mit VS 2015 ausgeliefert

• Vollen Einblick in den Quellcode

• Neue Features in den Programmiersprachen

• Eigene Analysen per Roslyn/NuGet möglich

Page 15: Roslyn DDC Kompakt 2014

Twitter: @giessweinweb

Email: [email protected]

Web: www.giesswein-apps.at

… oder persönlich :-)

Vielen Dank für Ihre Aufmerksamkeit