SlideShare uma empresa Scribd logo
1 de 36
Edição 2018
#mvpconf
Giovanni Bassi
Visual Studio/C#
Novidades do .NET Core 2.1 ASP.NET Core 2.1
#mvpconf
Patrocínio:
#mvpconf
Beneficiários do Evento:
APAE-Associação de Pais e Amigos dos
Excepcionais
Lar da Criança Ninho de Paz
Para quem quiser doar outros valores além das inscrições:
CAIXA ECONÔMICA FEDERAL
AG: 0504
CC: 01823-0
CNPJ: 89.078.059/0001-06
ITAU UNIBANCO AS
Agência: 467
CC: 611109
CNPJ 53.372.454/0001-50
#mvpconf
Giovanni Bassi
Categorias de premiação:
Visual Studio/C#
Primeiro ano premiado:
2009
Número de prêmios MVPs:
9
/GBassi
/giggio.tech
/giggiobassi
@giovannibassi
Biografia
Programador, Microsoft MVP, Não gerente
blog.lambda3.com.br, podcast.lambda3.com.br, dotnetarchitects.net, nodebr, dockersp
Escalador e ciclista
blog.lambda3.com.br
podcast.lambda3.com.br
#mvpconf
Victor Cavalcante
Categorias de premiação:
Visual Studio/C#
Primeiro ano premiado:
2009
Número de prêmios MVPs:
9
/vcavalcante.tech
@vcavalcante
Biografia
Programador, Microsoft MVP, Não gerente
blog.lambda3.com.br, podcast.lambda3.com.br, dotnetarchitects.net
blog.lambda3.com.br
podcast.lambda3.com.br
podcast.lambda3.com.br
0 – Eventos
1 – Docker
2 – .NET Core RC2
3 – Git
4 – Estudo
5 – Open Source
6 – Xamarin
7 – Node.js
8 – Democracia organizacional
9 – O programador poliglota
...
Toda semana em:
Acreditamos que a diversidade, em
suas diversas expressões, deve ser
respeitada e valorizada, e que uma
sociedade mais diversa é uma
sociedade melhor.
diversidade.tech
vagas.lambda3.com.br
ASP.NET
• Using ASP.NET Core previews in Azure App Service
• Introducing HttpClientFactory
• Improvements for using HTTPS
• Improvements for building Web APIs
• Introducing compatibility version in MVC
• Getting started with SignalR
• Introducing global tools
• Using Razor UI in class libraries
• Improvements for GDPR
• Improvements to the Kestrel HTTP server
• Improvements to IIS hosting
• Functional testing of MVC applications
• Introducing Identity UI as a library
• Hosting non-server apps with GenericHostBuilder
Usando os previews no Azure
• Deploy auto contido
• Contêineres
• Extensão do site preview 1
Novo HttpClientFactory
• Auxilia no uso correto do HttpClient
• Tempo de vida do HttpClient, uso correto de portas de saída, etc
• HttpClient lógicos
• Novo “middleware de saída” com o uso de delegating handlers
• Uso do Polly
• Retry, circuit breaker, etc
Melhorias pra https
• Problemas de não usar https:
• Piora SEO
• Marca o site como inseguro
• GDPR
• Piora o uso do navegador (acesso a geolocalização, movimento, notificações,
cache, getUserMedia, e todas as novas funcionalidades)
• Https em dev (certificado auto assinado, middleware)
• Redirecionamento para https
• Suporte a HSTS
• Habitando https via configuração
Melhorias na construção de APIs Web
• Resposta automática com status 400 em caso de erro de validação
• Inferência inteligente dos parâmetros de ações
• Attribute routing obrigatório
• Retorno de ActionResult<T>
• Melhoria no uso de Swagger/OpenAPI spec
• Melhor processamento das entradas
• Melhores erros em caso de problemas na validação
• Problem details (RFC 7808)
• Suporte à operação “test” com Http Patch e Json
Compatibilidade para MVC
• Forma de evoluir sem quebrar todo mundo
em versão minor
• Correção de problemas históricos e melhorias
significativa com risco baixo
• Evolução controlada:
• Marca item/comportamento como obsoleto
• Evolui comportamento via configuração
• Remove comportamento na próxima major
• No template:
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
xkcd.com/1172/
SignalR de volta!
• Reescrito mas familiar
• Lições aprendidas
• Sem necessidade de pacotes de Nuget adicionais
• Frontend no pacote npm @aspnet/signalr
• Independência do jQuery
Razor via bibliotecas
• Permite utilizar Razor via libs
• É possível sobrescrever views, parciais ou não e templates
• Identity como biblioteca
Suporte ao GDPR
• Lei da UE que começa a valer esse ano e toca privacidade
• Https
• Consentimento de cookies
• Cookie essencial
• Controle de download de dados
Melhorias no servidor Kestrel
• Saindo do libuv
• Melhorias de sockets e Span<T>
• Mais desempenho e consistência entre plataformas
Melhorias na hospedagem via IIS
• Request handler via Nuget
• Aplicação in-process, ganho de 440% de desempenho
• Troca pra out-of-process é configuração
• Debug direto do w3wp
Testes funcionais de aplicações MVC
• Já era possível desde a versão 1.0
• Pacote Microsoft.AspNetCore.Mvc.Testing
• Auxilia em problemas comuns de testes funcionais com ASP.NET Core
• Arquivo .deps
• Raiz do projeto
• Cria WebApplicationTestFixture<TStartup>
Demo
.NET
• Global tools
• Melhoria no tempo de build
• Minor-Version Roll-forward
• Desempenho de Sockets
• HTTP handler gerenciado
• Span<T>, Memory<T> e seus amigos
• Windows Compatibility Pack
• Mais plataformas
• Novidades com Docker
http://bit.ly/novidadesnet21
Global Tools
• dotnet install tool -g <ferramenta>
• Semelhante às ferramentas globais do npm
• Exemplos:
• github.com/lambda3/dotnetps
• github.com/lambda3/dx
• Multiplataforma
• Referências:
• bit.ly/net21globaltools
• bit.ly/criandoglobaltools
Melhoria no tempo de build
Minor-Version Roll-forward
• Uso automático de versão superior do runtime
• Somente em caso de ausência da versão especificada
• Somente minor ou patch, nunca major
• Pode-se optar por não fazer
• Exemplo: 2.1.0 => 2.1.1 (ou 2.2.0)
Desempenho de Sockets
• Troca de socket nativo pra código gerenciado .NET
• Uso de Span<T> e Memory<T>
• Melhorias de desempenho
Http handler gerenciado
• Utilizando a nova implementação de sockets
• Mais desempenho
• Sem dependência do ies libcurl (Linux) e WinHTTP (Windows)
• Comportamento consistente entre plataformas
Span<T>, Memory<T> e seus amigos
• Mais eficiência no uso da memória
• Projeção de arrays
• Mais informações na palestra de C# amanhã
Windows Compatibility Pack
• Facilita portar aplicações para o .NET Core
• Algumas dependências são somente pro Windows
• Caminho:
• Porte com o WCP (somente Windows)
• Troque as dependências exclusiva de Windows
• Remova o WCP
• nuget.org/packages/Microsoft.Windows.Compatibility
Mais plataformas
• Windows Client: 7, 8.1, 10 (1607+)
• Windows Server: 2008 R2 SP1+
• macOS: 10.12+
• RHEL: 7+
• Fedora: 26+
• openSUSE: 42.3+
• Debian: 8+
• Ubuntu: 14.04, 16.04, 17.10+
• SLES: 12+
• Alpine: 3.6+
Novidades com Docker
• Imagens menores
• Imagens mais seguras (menos superfície de ataque)
• Imagens:
• Alpine SDK e runtime
• Ubuntu 18.04
• Runtime com
#mvpconf
Encerramento:
• Considerações Finais
• Perguntas e Respostas
• Agradecimentos
w w w. l a m b d a 3 . c o m . b r
Obrigado!
Giovanni Bassi
Victor Cavalcante

Mais conteúdo relacionado

Mais procurados

NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.Filipe Morelli
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasRodrigo Branas
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front endDouglas Matoso
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Renato Groff
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?akamud
 
Offline apps Using Ionic Framework and PouchDB
Offline apps  Using Ionic Framework and PouchDBOffline apps  Using Ionic Framework and PouchDB
Offline apps Using Ionic Framework and PouchDBAlvaro Viebrantz
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panosLaís Lima
 
.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?Victor Cavalcante
 
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...Fabrízio Mello
 
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...Renato Groff
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terEmerson Macedo
 
Quasar Framework - Uma visão Geral
Quasar Framework - Uma visão GeralQuasar Framework - Uma visão Geral
Quasar Framework - Uma visão GeralPatrick Monteiro
 
Drupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosDrupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosPaulino Michelazzo
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp netAnderson Wernek
 

Mais procurados (20)

NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.NodeJS - Tutorial de forma simples e pratica.
NodeJS - Tutorial de forma simples e pratica.
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
 
Por que Node JS?
Por que Node JS?Por que Node JS?
Por que Node JS?
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
Offline apps Using Ionic Framework and PouchDB
Offline apps  Using Ionic Framework and PouchDBOffline apps  Using Ionic Framework and PouchDB
Offline apps Using Ionic Framework and PouchDB
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Protractor
ProtractorProtractor
Protractor
 
.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?.NET Core Internals. O que é o .NET Platform Standard?
.NET Core Internals. O que é o .NET Platform Standard?
 
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...
URCAMP (Jun2017) - Como o papel e atividades de DBA ficam no contexto da cult...
 
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET C...
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
Quasar Framework - Uma visão Geral
Quasar Framework - Uma visão GeralQuasar Framework - Uma visão Geral
Quasar Framework - Uma visão Geral
 
Mc56 gwt
Mc56 gwtMc56 gwt
Mc56 gwt
 
Drupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosDrupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos Desafios
 
Groovy e Grails 2
Groovy e Grails 2Groovy e Grails 2
Groovy e Grails 2
 
Criar um sistema com asp net
Criar um sistema com asp netCriar um sistema com asp net
Criar um sistema com asp net
 

Semelhante a Novidades .NET Core 2.1 e ASP.NET Core 2.1

ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - MarçoASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - MarçoRenato Groff
 
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Renato Groff
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Renato Groff
 
Cloud Solutions com o Microsoft Azure - TDC Online Especial BH
Cloud Solutions com o Microsoft Azure - TDC Online Especial BHCloud Solutions com o Microsoft Azure - TDC Online Especial BH
Cloud Solutions com o Microsoft Azure - TDC Online Especial BHRenato Groff
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...Renato Groff
 
Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019
Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019
Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019Renato Groff
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Renato Groff
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Renato Groff
 
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Renato Groff
 
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Renato Groff
 
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...Renato Groff
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
 
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...Renato Groff
 
.NET Core e ASP.NET Core: Dicas e Truques
.NET Core e ASP.NET Core: Dicas e Truques.NET Core e ASP.NET Core: Dicas e Truques
.NET Core e ASP.NET Core: Dicas e TruquesRenato Groff
 
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
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Renato Groff
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...Renato Groff
 
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...Renato Groff
 
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...Renato Groff
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
 

Semelhante a Novidades .NET Core 2.1 e ASP.NET Core 2.1 (20)

ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - MarçoASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
ASP.NET Core 3.1: Desenvolvimento de APIs Multiplataforma - Março
 
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
 
Cloud Solutions com o Microsoft Azure - TDC Online Especial BH
Cloud Solutions com o Microsoft Azure - TDC Online Especial BHCloud Solutions com o Microsoft Azure - TDC Online Especial BH
Cloud Solutions com o Microsoft Azure - TDC Online Especial BH
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
 
Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019
Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019
Cloud Solutions com Microsoft Azure - Azure Talks - Novembro-2019
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
 
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
 
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
 
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
 
.NET Core e ASP.NET Core: Dicas e Truques
.NET Core e ASP.NET Core: Dicas e Truques.NET Core e ASP.NET Core: Dicas e Truques
.NET Core e ASP.NET Core: Dicas e Truques
 
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
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
 
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
 
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
Bancos de dados no Azure: conhecendo as opções relacionais e NoSQL disponívei...
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 

Mais de Giovanni Bassi

O que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviçosO que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviçosGiovanni Bassi
 
Analisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NETAnalisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NETGiovanni Bassi
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraGiovanni Bassi
 
C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8Giovanni Bassi
 
Engenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployEngenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployGiovanni Bassi
 
Entrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresEntrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresGiovanni Bassi
 
.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2Giovanni Bassi
 
.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux.NET com contêineres Windows e Linux
.NET com contêineres Windows e LinuxGiovanni Bassi
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraGiovanni Bassi
 
Compartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.jsCompartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.jsGiovanni Bassi
 
Construindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsConstruindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsGiovanni Bassi
 
Um mergulho nos containers windows
Um mergulho nos containers windowsUm mergulho nos containers windows
Um mergulho nos containers windowsGiovanni Bassi
 
Por dentro do .NET Core
Por dentro do .NET CorePor dentro do .NET Core
Por dentro do .NET CoreGiovanni Bassi
 
Build e release pipeline com docker
Build e release pipeline com dockerBuild e release pipeline com docker
Build e release pipeline com dockerGiovanni Bassi
 
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Giovanni Bassi
 
Backend na nuvem com docker
Backend na nuvem com dockerBackend na nuvem com docker
Backend na nuvem com dockerGiovanni Bassi
 
Conhecendo, explorando e usando azure container service
Conhecendo, explorando e usando azure container serviceConhecendo, explorando e usando azure container service
Conhecendo, explorando e usando azure container serviceGiovanni Bassi
 

Mais de Giovanni Bassi (20)

O que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviçosO que aprendi montando a arquitetura de microsserviços
O que aprendi montando a arquitetura de microsserviços
 
Sendo ágil com git
Sendo ágil com gitSendo ágil com git
Sendo ágil com git
 
Analisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NETAnalisando dumps de memória de aplicações .NET
Analisando dumps de memória de aplicações .NET
 
Novidades do c# 7 e 8
Novidades do c# 7 e 8Novidades do c# 7 e 8
Novidades do c# 7 e 8
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agora
 
C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8C#7, 7.1, 7.2, 7.3 e C# 8
C#7, 7.1, 7.2, 7.3 e C# 8
 
Engenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployEngenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deploy
 
Entrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresEntrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineres
 
.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2.NET Core, ASP.NET Core e .NET Standard 2
.NET Core, ASP.NET Core e .NET Standard 2
 
.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux.NET com contêineres Windows e Linux
.NET com contêineres Windows e Linux
 
Async e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agoraAsync e await com JavaScript: entenda e use agora
Async e await com JavaScript: entenda e use agora
 
Compartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.jsCompartilhando código entre frontend e backend com Node.js
Compartilhando código entre frontend e backend com Node.js
 
Construindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.jsConstruindo uma ferramenta CLI multiplataforma com Node.js
Construindo uma ferramenta CLI multiplataforma com Node.js
 
O Futuro do C#: C#8
O Futuro do C#: C#8O Futuro do C#: C#8
O Futuro do C#: C#8
 
Um mergulho nos containers windows
Um mergulho nos containers windowsUm mergulho nos containers windows
Um mergulho nos containers windows
 
Por dentro do .NET Core
Por dentro do .NET CorePor dentro do .NET Core
Por dentro do .NET Core
 
Build e release pipeline com docker
Build e release pipeline com dockerBuild e release pipeline com docker
Build e release pipeline com docker
 
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
Release contínuo de um microsserviço com Docker ASP.net core e Azure Containe...
 
Backend na nuvem com docker
Backend na nuvem com dockerBackend na nuvem com docker
Backend na nuvem com docker
 
Conhecendo, explorando e usando azure container service
Conhecendo, explorando e usando azure container serviceConhecendo, explorando e usando azure container service
Conhecendo, explorando e usando azure container service
 

Novidades .NET Core 2.1 e ASP.NET Core 2.1

  • 1. Edição 2018 #mvpconf Giovanni Bassi Visual Studio/C# Novidades do .NET Core 2.1 ASP.NET Core 2.1
  • 3. #mvpconf Beneficiários do Evento: APAE-Associação de Pais e Amigos dos Excepcionais Lar da Criança Ninho de Paz Para quem quiser doar outros valores além das inscrições: CAIXA ECONÔMICA FEDERAL AG: 0504 CC: 01823-0 CNPJ: 89.078.059/0001-06 ITAU UNIBANCO AS Agência: 467 CC: 611109 CNPJ 53.372.454/0001-50
  • 4. #mvpconf Giovanni Bassi Categorias de premiação: Visual Studio/C# Primeiro ano premiado: 2009 Número de prêmios MVPs: 9 /GBassi /giggio.tech /giggiobassi @giovannibassi Biografia Programador, Microsoft MVP, Não gerente blog.lambda3.com.br, podcast.lambda3.com.br, dotnetarchitects.net, nodebr, dockersp Escalador e ciclista blog.lambda3.com.br podcast.lambda3.com.br
  • 5. #mvpconf Victor Cavalcante Categorias de premiação: Visual Studio/C# Primeiro ano premiado: 2009 Número de prêmios MVPs: 9 /vcavalcante.tech @vcavalcante Biografia Programador, Microsoft MVP, Não gerente blog.lambda3.com.br, podcast.lambda3.com.br, dotnetarchitects.net blog.lambda3.com.br podcast.lambda3.com.br
  • 6.
  • 7. podcast.lambda3.com.br 0 – Eventos 1 – Docker 2 – .NET Core RC2 3 – Git 4 – Estudo 5 – Open Source 6 – Xamarin 7 – Node.js 8 – Democracia organizacional 9 – O programador poliglota ... Toda semana em:
  • 8.
  • 9. Acreditamos que a diversidade, em suas diversas expressões, deve ser respeitada e valorizada, e que uma sociedade mais diversa é uma sociedade melhor. diversidade.tech
  • 11. ASP.NET • Using ASP.NET Core previews in Azure App Service • Introducing HttpClientFactory • Improvements for using HTTPS • Improvements for building Web APIs • Introducing compatibility version in MVC • Getting started with SignalR • Introducing global tools • Using Razor UI in class libraries • Improvements for GDPR • Improvements to the Kestrel HTTP server • Improvements to IIS hosting • Functional testing of MVC applications • Introducing Identity UI as a library • Hosting non-server apps with GenericHostBuilder
  • 12. Usando os previews no Azure • Deploy auto contido • Contêineres • Extensão do site preview 1
  • 13. Novo HttpClientFactory • Auxilia no uso correto do HttpClient • Tempo de vida do HttpClient, uso correto de portas de saída, etc • HttpClient lógicos • Novo “middleware de saída” com o uso de delegating handlers • Uso do Polly • Retry, circuit breaker, etc
  • 14. Melhorias pra https • Problemas de não usar https: • Piora SEO • Marca o site como inseguro • GDPR • Piora o uso do navegador (acesso a geolocalização, movimento, notificações, cache, getUserMedia, e todas as novas funcionalidades) • Https em dev (certificado auto assinado, middleware) • Redirecionamento para https • Suporte a HSTS • Habitando https via configuração
  • 15. Melhorias na construção de APIs Web • Resposta automática com status 400 em caso de erro de validação • Inferência inteligente dos parâmetros de ações • Attribute routing obrigatório • Retorno de ActionResult<T> • Melhoria no uso de Swagger/OpenAPI spec • Melhor processamento das entradas • Melhores erros em caso de problemas na validação • Problem details (RFC 7808) • Suporte à operação “test” com Http Patch e Json
  • 16. Compatibilidade para MVC • Forma de evoluir sem quebrar todo mundo em versão minor • Correção de problemas históricos e melhorias significativa com risco baixo • Evolução controlada: • Marca item/comportamento como obsoleto • Evolui comportamento via configuração • Remove comportamento na próxima major • No template: services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); xkcd.com/1172/
  • 17. SignalR de volta! • Reescrito mas familiar • Lições aprendidas • Sem necessidade de pacotes de Nuget adicionais • Frontend no pacote npm @aspnet/signalr • Independência do jQuery
  • 18. Razor via bibliotecas • Permite utilizar Razor via libs • É possível sobrescrever views, parciais ou não e templates • Identity como biblioteca
  • 19. Suporte ao GDPR • Lei da UE que começa a valer esse ano e toca privacidade • Https • Consentimento de cookies • Cookie essencial • Controle de download de dados
  • 20. Melhorias no servidor Kestrel • Saindo do libuv • Melhorias de sockets e Span<T> • Mais desempenho e consistência entre plataformas
  • 21. Melhorias na hospedagem via IIS • Request handler via Nuget • Aplicação in-process, ganho de 440% de desempenho • Troca pra out-of-process é configuração • Debug direto do w3wp
  • 22. Testes funcionais de aplicações MVC • Já era possível desde a versão 1.0 • Pacote Microsoft.AspNetCore.Mvc.Testing • Auxilia em problemas comuns de testes funcionais com ASP.NET Core • Arquivo .deps • Raiz do projeto • Cria WebApplicationTestFixture<TStartup>
  • 23. Demo
  • 24. .NET • Global tools • Melhoria no tempo de build • Minor-Version Roll-forward • Desempenho de Sockets • HTTP handler gerenciado • Span<T>, Memory<T> e seus amigos • Windows Compatibility Pack • Mais plataformas • Novidades com Docker http://bit.ly/novidadesnet21
  • 25. Global Tools • dotnet install tool -g <ferramenta> • Semelhante às ferramentas globais do npm • Exemplos: • github.com/lambda3/dotnetps • github.com/lambda3/dx • Multiplataforma • Referências: • bit.ly/net21globaltools • bit.ly/criandoglobaltools
  • 26. Melhoria no tempo de build
  • 27. Minor-Version Roll-forward • Uso automático de versão superior do runtime • Somente em caso de ausência da versão especificada • Somente minor ou patch, nunca major • Pode-se optar por não fazer • Exemplo: 2.1.0 => 2.1.1 (ou 2.2.0)
  • 28. Desempenho de Sockets • Troca de socket nativo pra código gerenciado .NET • Uso de Span<T> e Memory<T> • Melhorias de desempenho
  • 29. Http handler gerenciado • Utilizando a nova implementação de sockets • Mais desempenho • Sem dependência do ies libcurl (Linux) e WinHTTP (Windows) • Comportamento consistente entre plataformas
  • 30. Span<T>, Memory<T> e seus amigos • Mais eficiência no uso da memória • Projeção de arrays • Mais informações na palestra de C# amanhã
  • 31. Windows Compatibility Pack • Facilita portar aplicações para o .NET Core • Algumas dependências são somente pro Windows • Caminho: • Porte com o WCP (somente Windows) • Troque as dependências exclusiva de Windows • Remova o WCP • nuget.org/packages/Microsoft.Windows.Compatibility
  • 32. Mais plataformas • Windows Client: 7, 8.1, 10 (1607+) • Windows Server: 2008 R2 SP1+ • macOS: 10.12+ • RHEL: 7+ • Fedora: 26+ • openSUSE: 42.3+ • Debian: 8+ • Ubuntu: 14.04, 16.04, 17.10+ • SLES: 12+ • Alpine: 3.6+
  • 33. Novidades com Docker • Imagens menores • Imagens mais seguras (menos superfície de ataque) • Imagens: • Alpine SDK e runtime • Ubuntu 18.04 • Runtime com
  • 34.
  • 35. #mvpconf Encerramento: • Considerações Finais • Perguntas e Respostas • Agradecimentos
  • 36. w w w. l a m b d a 3 . c o m . b r Obrigado! Giovanni Bassi Victor Cavalcante