O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Novidades do .NET Core 2.1 e do ASP.NET Core 2.1

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 36 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

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

Anúncio

Mais de Giovanni Bassi (20)

Mais recentes (20)

Anúncio

Novidades do .NET Core 2.1 e do ASP.NET Core 2.1

  1. 1. Edição 2018 #mvpconf Giovanni Bassi Visual Studio/C# Novidades do .NET Core 2.1 ASP.NET Core 2.1
  2. 2. #mvpconf Patrocínio:
  3. 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. 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. 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. 6. 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:
  7. 7. 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
  8. 8. vagas.lambda3.com.br
  9. 9. 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
  10. 10. Usando os previews no Azure • Deploy auto contido • Contêineres • Extensão do site preview 1
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. 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/
  15. 15. 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
  16. 16. Razor via bibliotecas • Permite utilizar Razor via libs • É possível sobrescrever views, parciais ou não e templates • Identity como biblioteca
  17. 17. 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
  18. 18. Melhorias no servidor Kestrel • Saindo do libuv • Melhorias de sockets e Span<T> • Mais desempenho e consistência entre plataformas
  19. 19. 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
  20. 20. 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>
  21. 21. Demo
  22. 22. .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
  23. 23. 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
  24. 24. Melhoria no tempo de build
  25. 25. 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)
  26. 26. Desempenho de Sockets • Troca de socket nativo pra código gerenciado .NET • Uso de Span<T> e Memory<T> • Melhorias de desempenho
  27. 27. 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
  28. 28. 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ã
  29. 29. 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
  30. 30. 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+
  31. 31. Novidades com Docker • Imagens menores • Imagens mais seguras (menos superfície de ataque) • Imagens: • Alpine SDK e runtime • Ubuntu 18.04 • Runtime com
  32. 32. #mvpconf Encerramento: • Considerações Finais • Perguntas e Respostas • Agradecimentos
  33. 33. w w w. l a m b d a 3 . c o m . b r Obrigado! Giovanni Bassi Victor Cavalcante

×