roslyn: alla scoperta dei compilatori open source c# e vb - alessandro del sole - codemotion milan...

Post on 07-Jan-2017

42 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Roslyn: Alla scoperta dei compilatori open source C# e VB

Alessandro Del Sole

MILAN 25-26 NOVEMBER 2016

Chi sono?

• Alessandro Del Sole da Cremona • Senior .NET Developer• Microsoft MVP dal 2008, MCP e Specialist: C#• Autore di libri ed ebook tecnici (serie Unleashed di

SAMS/Pearson e Succinctly di Syncfusion)• Autore per MSDN Magazine e altri portali• Frequent speaker• Community leader di «Visual Basic Tips & Tricks»

Cos’è Roslyn?

• Microsoft abbraccia l’open source in modo forte• Apre il codice di buona parte dello stack della

tecnologia .NET• Ciò include i compilatori C# e Visual Basic -> Project

«Roslyn»• Nome prodotto: .NET Compiler Platform,

https://github.com/dotnet/roslyn• Ad oggi: per .NET/.NET Core (full support) e per Mono

(full support quasi completato)• Obiettivo raggiunto: C# su altri OS (Linux e Mac)

Cos’è Roslyn?

• Il compilatore diventa un servizio che espone «rich code analysis APIs» (classi, strutture e loro membri)

• Diventa una libreria portabile -> Mac & Linux inclusi• Scenari di• Code Analysis (Diagnostics, Code Fix, Refactorings)• Code Generation + Emit• Scripting e meta-programming• In generale: laddove ho bisogno di elaborare codice sorgente

• Non è più l’IDE o il tool che espone funzionalità, l’IDE fruisce del compilatore

Esempi di tool che usano Roslyn

• Microsoft Visual Studio 2015 e superiori (Windows)• Visual Studio for Mac (Mac OSX)• Xamarin Studio (Mac, Linux, Windows)• Visual Studio Code (Mac, Linux, Windows)• Continuous for iPad (iOS)

Continuous for iOS

Visual Studio (Windows)Visual Studio Code (Linux, Mac, Windows)

Xamarin Studio (Linux, Mac, Windows)Visual Studio for Mac

Pipeline, API e Servizi

Sulla Code Analysis

• Rappresentazione di ogni singolo elemento del sorgente tramite classi e strutture -> inclusi gli spazi bianchi

• Il compilatore sa analizzare e gestire il codice attraverso queste classi anche se con errori

• Fornisce informazioni sul codice in ogni singolo momento

• Mi permette di analizzare, generare, riscrivere porzioni di codice

• Concetti di diagnostic, code fix, refactoring

Sulla Code Analysis

• Microsoft.CodeAnalysis• CompilationUnit (intero file di codice)• SyntaxTree (intera struttura sintattica)• SyntaxNode (blocco di codice completo)• Code blocks• Modifiers• Keywords• SyntaxTrivia (spazi bianchi)

• SyntaxGenerator• API unificata di code generation

DEMO: Roslyn e C# con Visual Studio Code su Ubuntu

Risorse

• Workspace su GitHub: https://github.com/dotnet/roslyn• I miei ebook gratuiti «Roslyn Succinctly» e «VS Code Succinctly»

https://www.syncfusion.com/resources/techportal/ebooks

Contatti

• Email: alessandro.delsole@visual-basic.it• Twitter: @progalex• Blog:

http://community.visual-basic.it/Alessandro

top related