SlideShare uma empresa Scribd logo
1 de 22
Entendendo o impacto do
Roslyn no C# e no Visual Basic
DEV301
Quem é o palestrante?
Giovanni Bassi
Desenvolvedor na Lambda3
@giovannibassi
Palestra
Carlos dos Santos
Desenvolvedor na CDS Iniformática
@cdssoftware
Projeto Roslyn
• Em C# e VB
• Com APIs ricas e públicas
• Free and Open Source no Github
Evolução
Código gerenciado
Generics
Language Integrated Query
Dinamismo + paridade nas
linguagens
C# 5.0 + VB 11.0
Programaçã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
Roslyn
C# 6.0 + VB 13.0
Porque o Roslyn?
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
Demo
Analisadores, refatorações
e corretores de código
Imutabilidade: Green e Red Trees
Imutável
Persistente
Sem referência aos pais
Construída de baixo pra cima
Nós conhecem largura mas
não posição
Edição: O(log n)
Façade “imutável”
Não persistente
Referência aos pais e filhos
Construída de cima pra baixo
Nós conhecem largura e posição
Remontada 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
Demo
Escrevendo 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
• Github
http://github.com/dotnet/roslyn
• Roslyn source browser
http://source.roslyn.io/
• Vídeo sobre as novidades no Youtube em pt
http://bit.ly/youtuberoslyn
• Posts sobre o Roslyn no blog da Lambda3
https://blog.lambda3.com.br/tag/roslyn/
Continue sua capacitação
Microsoft Virtual
Academy
http://aka.ms/ch9 http://aka.ms/mva

Mais conteúdo relacionado

Semelhante a Impacto do Roslyn no C# e VB

Todos os recursos do RAD Studio 10.3 RIO
Todos os recursos do RAD Studio 10.3 RIOTodos os recursos do RAD Studio 10.3 RIO
Todos os recursos do RAD Studio 10.3 RIOFernando Rizzato
 
Visual Studio Code
Visual Studio CodeVisual Studio Code
Visual Studio CodeCDS
 
Linux Con2010
Linux Con2010Linux Con2010
Linux Con2010Ambev
 
Como desenvolver softwares utilizando tecnologias microsoft
Como desenvolver softwares utilizando tecnologias microsoftComo desenvolver softwares utilizando tecnologias microsoft
Como desenvolver softwares utilizando tecnologias microsoftJucinei Pereira Dos Santos
 
Kotlin on Android
Kotlin on AndroidKotlin on Android
Kotlin on AndroidAline Ayres
 
python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfProfIvanSaboia
 
Cogroo Google Oss Jam Sao Paulo V01
Cogroo Google Oss Jam Sao Paulo V01Cogroo Google Oss Jam Sao Paulo V01
Cogroo Google Oss Jam Sao Paulo V01William Colen
 
Jenkins por dentro e por fora
Jenkins por dentro e por fora Jenkins por dentro e por fora
Jenkins por dentro e por fora Fernando Boaglio
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o MercadoJulio Monteiro
 
Novidades sobre o C# 7.0 e sua evolução
Novidades sobre o C# 7.0 e sua evoluçãoNovidades sobre o C# 7.0 e sua evolução
Novidades sobre o C# 7.0 e sua evoluçãoRafael Cruz, MCT, MBA
 
Palestra: Novidades do C# 7.0 - O FUTURO DO .NET E DO C#
Palestra: Novidades do C# 7.0  - O FUTURO DO .NET E DO C#Palestra: Novidades do C# 7.0  - O FUTURO DO .NET E DO C#
Palestra: Novidades do C# 7.0 - O FUTURO DO .NET E DO C#Glaucia Lemos
 
Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Renato Groff
 

Semelhante a Impacto do Roslyn no C# e VB (20)

Todos os recursos do RAD Studio 10.3 RIO
Todos os recursos do RAD Studio 10.3 RIOTodos os recursos do RAD Studio 10.3 RIO
Todos os recursos do RAD Studio 10.3 RIO
 
Apostila de devc++ novo
Apostila de devc++ novoApostila de devc++ novo
Apostila de devc++ novo
 
Visual Studio Code
Visual Studio CodeVisual Studio Code
Visual Studio Code
 
Linux Con2010
Linux Con2010Linux Con2010
Linux Con2010
 
Como desenvolver softwares utilizando tecnologias microsoft
Como desenvolver softwares utilizando tecnologias microsoftComo desenvolver softwares utilizando tecnologias microsoft
Como desenvolver softwares utilizando tecnologias microsoft
 
Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 
Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 
apostila de dev.pdf
apostila de dev.pdfapostila de dev.pdf
apostila de dev.pdf
 
Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 
Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 
Kotlin on Android
Kotlin on AndroidKotlin on Android
Kotlin on Android
 
Cobol
CobolCobol
Cobol
 
python_para_desenvolvedores.pdf
python_para_desenvolvedores.pdfpython_para_desenvolvedores.pdf
python_para_desenvolvedores.pdf
 
02 - Introdução a linguagem C# v1.0
02 - Introdução a linguagem C# v1.002 - Introdução a linguagem C# v1.0
02 - Introdução a linguagem C# v1.0
 
Cogroo Google Oss Jam Sao Paulo V01
Cogroo Google Oss Jam Sao Paulo V01Cogroo Google Oss Jam Sao Paulo V01
Cogroo Google Oss Jam Sao Paulo V01
 
Jenkins por dentro e por fora
Jenkins por dentro e por fora Jenkins por dentro e por fora
Jenkins por dentro e por fora
 
Ruby on Rails e o Mercado
Ruby on Rails e o MercadoRuby on Rails e o Mercado
Ruby on Rails e o Mercado
 
Novidades sobre o C# 7.0 e sua evolução
Novidades sobre o C# 7.0 e sua evoluçãoNovidades sobre o C# 7.0 e sua evolução
Novidades sobre o C# 7.0 e sua evolução
 
Palestra: Novidades do C# 7.0 - O FUTURO DO .NET E DO C#
Palestra: Novidades do C# 7.0  - O FUTURO DO .NET E DO C#Palestra: Novidades do C# 7.0  - O FUTURO DO .NET E DO C#
Palestra: Novidades do C# 7.0 - O FUTURO DO .NET E DO C#
 
Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018
 

Mais de CDS

Web App Container
Web App ContainerWeb App Container
Web App ContainerCDS
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de MemóriaCDS
 
Azure DevOps Pipeline
Azure DevOps PipelineAzure DevOps Pipeline
Azure DevOps PipelineCDS
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions SpanishCDS
 
C Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaC Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaCDS
 
GitHub Boas Práticas
GitHub Boas PráticasGitHub Boas Práticas
GitHub Boas PráticasCDS
 
MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure FunctionsCDS
 
Microsoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSMicrosoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSCDS
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraCDS
 
Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#CDS
 
C# 7
C# 7C# 7
C# 7CDS
 
SonarQube
SonarQubeSonarQube
SonarQubeCDS
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensourceCDS
 
.Net Core - Visão Geral
.Net Core - Visão Geral.Net Core - Visão Geral
.Net Core - Visão GeralCDS
 
Raspberry PI
Raspberry PIRaspberry PI
Raspberry PICDS
 
Sonarqube
SonarqubeSonarqube
SonarqubeCDS
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensourceCDS
 
Microsoft Azure Overview
Microsoft Azure OverviewMicrosoft Azure Overview
Microsoft Azure OverviewCDS
 
C# 6
C# 6C# 6
C# 6CDS
 
Application Insights
Application Insights Application Insights
Application Insights CDS
 

Mais de CDS (20)

Web App Container
Web App ContainerWeb App Container
Web App Container
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de Memória
 
Azure DevOps Pipeline
Azure DevOps PipelineAzure DevOps Pipeline
Azure DevOps Pipeline
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions Spanish
 
C Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaC Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de Memória
 
GitHub Boas Práticas
GitHub Boas PráticasGitHub Boas Práticas
GitHub Boas Práticas
 
MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure Functions
 
Microsoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSMicrosoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMS
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infra
 
Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#
 
C# 7
C# 7C# 7
C# 7
 
SonarQube
SonarQubeSonarQube
SonarQube
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensource
 
.Net Core - Visão Geral
.Net Core - Visão Geral.Net Core - Visão Geral
.Net Core - Visão Geral
 
Raspberry PI
Raspberry PIRaspberry PI
Raspberry PI
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensource
 
Microsoft Azure Overview
Microsoft Azure OverviewMicrosoft Azure Overview
Microsoft Azure Overview
 
C# 6
C# 6C# 6
C# 6
 
Application Insights
Application Insights Application Insights
Application Insights
 

Impacto do Roslyn no C# e VB

Notas do Editor

  1. Initializers for auto-properties Primary Constructors Parameters on classes and structs Field parameters Explicit constructors Base Initializers Partial types Using static Entension methods Declaration expressions Exception filters (agora no C#) Binary Literals Indexed members and elemento initializers Await in catch and finally blocks Extension Add methods in collection initializers (agora no C#)