Entendendo o impacto do Roslyn no C# e no Visual Basic
DEV301
Quem é o palestrante?Giovanni BassiDesenvolvedor na Lambda3@giovannibassi
Palestra
Carlos dos SantosDesenvolvedor na CDS Iniformática@cdssoftware
Projeto RoslynReimplementação dos compiladores de C# e VB• Em C# e VB• Com APIs ricas e públicas• Free and Open Source no Github
A plataforma de compilação do .NET
Evolução
Código gerenciado
Generics
Language Integrated Query
Dinamismo + paridade nas linguagens
C# 5.0 + VB 11.0Programação assíncrona
C# 1.0 + VB 7.0
C# 2.0 + VB 8.0
C# 3.0 + VB 9.0
C# 4.0 + VB 10.0
RoslynC# 6.0 + VB 13.0
.NET 2015
Linguagens no .NET e o Roslyn
Porque o Roslyn?
TimeArquitetura limpa para evoluir
ParceirosFerramentas e extensões focadas em código fonte
DesenvolvedoresExperiência rica na IDE
OSS
1,000,000s
1,000s
10s
Language Service
using System;using static System.Console;
namespace ConsoleApplication4{ class Program { static void Main(string[] args) { var ola = "ola"; WriteLine(ola); } }}
Language Service (Exemplo)
Analisadores, refactorings e code fixes
DemoAnalisadores, refatoraçõese corretores de código
Imutabilidade: Green e Red TreesImutávelPersistenteSem referência aos paisConstruída de baixo pra cimaNós conhecem largura mas não posiçãoEdição: O(log n)
Façade “imutável”Não persistenteReferência aos pais e filhosConstruída de cima pra baixoNós conhecem largura e posiçãoRemontada sob demanda a cada edição a partir da verde
Estrutura
Projeto CodeCracker• O maior projeto de analisadores e code fixes escrito com Roslyn fora
da Microsoft• ~100 analisadores até o momento (VB e C#)• Open Source• Uma alternativa leve e gratuita a ferramentas já existentes• Portable (Windows, Linux, Mac)• Mais de 90% de cobertura de código com testes
Escrevendo um analisador• Utilize o SDK do Visual Studio e da plataforma de compilação• Templates prontos• Syntax Visualizer
Syntax Visualizer
DemoEscrevendo um analisador
Q&A
Visite o espaço Ask the Experts, próximo dos expositores
Sessões relacionadas
• DEV101 – O que há de novo no C# 6.0
Recursos
• MSDN http://www.msdn.com/roslyn
• Githubhttp://github.com/dotnet/roslyn
• Roslyn source browserhttp://source.roslyn.io/
• Vídeo sobre as novidades no Youtube em pthttp://bit.ly/youtuberoslyn
• Posts sobre o Roslyn no blog da Lambda3https://blog.lambda3.com.br/tag/roslyn/
Continue sua capacitação
Microsoft Virtual Academy
http://aka.ms/ch9 http://aka.ms/mva