SlideShare uma empresa Scribd logo
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
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
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:
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
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
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
#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

PPTX
Conhecendo o AKS, o azure container services com kubernetes
PDF
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
PPTX
9 erros que desenvolvedores Node.js cometem
PDF
React Native na globo.com
PPTX
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
PDF
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
PDF
Curso de ReactJS
ODP
Palestra parse
Conhecendo o AKS, o azure container services com kubernetes
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
9 erros que desenvolvedores Node.js cometem
React Native na globo.com
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
DevCommerce Conference 2016: Vantagens e resultados de containers e VMs para ...
Curso de ReactJS
Palestra parse

Mais procurados (20)

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

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

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

Mais de Giovanni Bassi (20)

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

Último (20)

PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PDF
Processos na gestão de transportes, TM100 Col18
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Aula sobre desenvolvimento de aplicativos
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
Apple Pippin Uma breve introdução. - David Glotz
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Aula 18 - Manipulacao De Arquivos python
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Processos na gestão de transportes, TM100 Col18
COBITxITIL-Entenda as diferença em uso governança TI
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Aula sobre desenvolvimento de aplicativos
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Curso de Java 9 - (Threads) Multitarefas.pptx

Novidades do .NET Core 2.1 e do 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
  • 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:
  • 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
  • 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