O documento apresenta uma visão geral do .NET Core 3.0 e do ASP.NET Core 3.0, incluindo novas funcionalidades como Worker Services, gRPC e suporte a JSON melhorado. Também fornece exemplos e dicas úteis sobre tópicos como diagnósticos, Docker, acesso a dados e tratamento de falhas.
5. • Microsoft Most Valuable Professional (MVP)
• Multi-Plataform Technical Audience
Contributor (MTAC)
• Mais de 15 anos de experiência na área de
Tecnologia
• Autor Técnico e Palestrante
• Um dos organizadores do Canal .NET e do
.NET SP
Renato Groffe
h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e /
6. Renato Groffe - Contatos
h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e /
/renatogroffe /in/renatogroffe
/canaldotnet
/renatogroffe
/canaldotnet
/renatogroff
7. Agenda
• .NET Core 3.0 e ASP.NET Core 3.0: uma visão geral
• Dicas úteis
• Exemplos práticos
8. Escolhendo a versão utilizada pelo comando dotnet new
• Criando um novo arquivo global.json a partir de um diretório-
base será possível selecionar a versão do .NET Core empregada
na criação de um novo projeto
dotnet new globaljson --sdk-version <VERSÃO>
• Lista dos SDKs disponíveis:
dotnet --list-sdks
9. .NET Core 3.0 – Visão Geral
• Versão oficial lançada em
Setembro/2019
• Compatível com o Visual Studio
2019, Visual Studio for Mac e o
Visual Studio Code
• Novos Templates
10. .NET Core 3.0 – Windows Forms e WPF
• As tecnologias Windows Forms e WPF
(Windows Presentation Foundation) se
tornaram open source
• Ainda não há a possibilidade de
utilizar o designer da IDE em projetos
Windows Forms; Preview já disponível
para projetos WPF baseados no .NET
Core 3
11. ASP.NET Core 3.0 – Visão Geral
• Novos tipos de projetos Web como
Worker Service, gRPC Service e Blazor
(server-side)
• Alterações na classe Startup
• Não é mais possível utilizar ASP.NET
Core em conjunto com o .NET
Framework (Full)
12. ASP.NET Core 3.0 – Worker Service
• Novo template
• Alternativa para o desenvolvimento de
Windows Services
• Possibilidade de implementação de
processos em Windows e Linux
github.com/renatogroffe/DotNetCore3.0_WorkerService
13. .NET Core 3.0 – Diagnostics
• Novas ferramentas de linha de comando
para monitoramento (ainda em
desenvolvimento e com limitações)
• dotnet-counters
• dotnet-trace
• dotnet-dump
14. .NET Core 3.0 – Suporte a Docker
• Redução no tamanho das imagens em
relação a versões anteriores
• Imagens do SDK contém agora o PowerShell
Core (é possível invocar este utilitário
durante a geração da imagem de uma
aplicação)
github.com/renatogroffe/ASPNETCore3.0_Docker
15. .NET Core 3.0 – Novo provider de acesso a dados
• Package Microsoft.Data.SqlClient
• Suporte a novos recursos do SQL
Server (Always Encrypted, Data
Classification)
github.com/renatogroffe/ASPNETCore3.0_SQLServer-JSON_NewProvider
16. Dica – Suporte a JSON no SQL Server
• Evitar a escrita de várias classes para retorno de
informações e operações de transformação de
dados
github.com/renatogroffe/ASPNETCore3.0_SQLServer-JSON_Dapper
17. Dica – Table Splitting no EF Core
• Permite separar dados de uma mesma tabela
entre diferentes objetos relacionados
github.com/renatogroffe/ASPNETCore3.0_EFCore_TableSplitting
18. .NET Core 3 – Suporte a JSON
• Namespace System.Text.Json e suas novas classes
mais performáticas: Utf8JsonReader,
Utf8JsonWriter, JsonDocument e JsonSerializer
• Projetos Web ao serem criados não contam mais
com uma referência para o package
Microsoft.AspNetCore.Mvc.NewtonsoftJson
• Possibilidade de customizar o uso do novo
Serializer
github.com/renatogroffe/ASPNETCore3.0_JsonSerializerOptions
19. Dicas – Visual Studio 2019 – Debugging
• Novidades na execução de Console
Applications
• Debug Search
• Data Breakpoints (apenas .NET Core 3.0 no
momento)
20. Dica – Removendo valores nulos no retorno de APIs
• Diminuição do tamanho das respostas geradas
por APIs
github.com/renatogroffe/ASPNETCore3.0_JsonSerializerOptions
21. ASP.NET Core 3.0 + gRPC
• Comunicação via HTTP/2 utilizando
um formato binário
• Uso do formato binário Protobuf para
serialização
• Maior performance
github.com/renatogroffe/ASP.NETCore3.0_gRPCContagem
github.com/renatogroffe/DotNetCore3.0_ClientContagem-gRPC
22. Dica – Health Checks
• Recurso disponível a partir do ASP.NET Core 2.2
que permite monitorar a saúde de uma aplicação
Web
github.com/renatogroffe/ASPNETCore3.0_WebApp_Monitoramento
23. Dica – IHttpClientFactory + Typed Client
• Alternativa para simplificar o consumo de APIs
REST em projetos ASP.NET Core e que utiliza a
classe HttpClient
github.com/renatogroffe/ASPNETCore3.0_WebApp_Polly
24. Dica – Código Resiliente com Polly
• Biblioteca para a implementação de tratamentos
de falha de maneira descomplicada
github.com/renatogroffe/ASPNETCore3.0_WebApp_Polly
github.com/renatogroffe/DotNetCore3.0_HttpClient-JWT-Polly
25. Dica – Simulação de caos com Polly + Simmy
• Simulação de forma configurável de falhas e
problemas de latência com a biblioteca Simmy
github.com/renatogroffe/ASPNETCore3.0_WorkerService_Polly-Simmy