Upload
codemotion
View
42
Download
0
Embed Size (px)
Citation preview
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: [email protected]• Twitter: @progalex• Blog:
http://community.visual-basic.it/Alessandro