ASP.NET Core: dicas úteis para o dia a dia de um Desenvolvedor - Parte 10
Neste post retomo a série com dicas úteis para o dia a dia de Desenvolvedores ASP.NET Core. Até o momento já são 10 artigos com dezenas de dicas. Caso ainda não tenha acessado os 9 posts anteriores ou, até mesmo, gostaria de revê-los consulte os links a seguir:
ASP.NET Core: dicas úteis para o dia a dia de um Desenvolvedor | Parte 1
ASP.NET Core: dicas úteis para o dia a dia de um Desenvolvedor | Parte 2
ASP.NET Core: dicas úteis para o dia a dia de um Desenvolvedor | Parte 3
ASP.NET Core: dicas úteis para o dia a dia de um Desenvolvedor | Parte 4
ASP.NET Core: dicas úteis para o dia a dia de um Desenvolvedor | Parte 5
ASP.NET Core: dicas úteis para o dia a dia de um Desenvolvedor | Parte 6
ASP.NET Core: dicas úteis para o dia a dia de um Desenvolvedor | Parte 7
ASP.NET Core: dicas úteis para o dia a dia de um Desenvolvedor | Parte 8
ASP.NET Core: dicas úteis para o dia a dia de um Desenvolvedor | Parte 9
E aproveito este espaço para um convite…
No dia 12/04/2021 (segunda) às 21:00 — horário de Brasília — teremos mais um evento online e gratuito no Canal .NET.
Desta vez farei uma apresentação com dicas, truques e alternativas úteis para o desenvolvimento Back-End e de APIs REST com .NET 5, ASP.NET Core e Azure Functions. Ao longo da live será coberto o uso de diferentes frameworks, serviços na nuvem, mensageria, bancos de dados e boas práticas de forma a facilitar e tornar mais dinâmica a implementação de soluções baseadas na plataforma .NET no seu dia a dia.
Para participar faça sua inscrição no link a seguir, a transmissão acontecerá via YouTube:
Redis: indo além do armazenamento de chaves + valores
Embora muitos desconheçam, o Redis vai muito além do simples armazenamento de dados em cache. No caso específico do ASP.NET Core e mesmo da plataforma .NET em geral, podemos tirar proveito de diversas estruturas oferecidas por esta tecnologia a partir do package StackExchange.Redis.
Uma dessas possibilidades está no uso de Hashes, com a definição de conjuntos formados por chaves e valores. Trata-se de uma alternativa interessante para representar os diferentes valores que constituem um objeto. No exemplo a seguir podemos observar a manipulação de uma estrutura deste tipo através dos métodos HashExists, HashSet (em conjunto com o tipo HashEntry) e HashGet:
Este projeto foi inclusive disponibilizado no seguinte repositório do GitHub:
E descrito em maiores detalhes em um vídeo do canal Azure na Prática no YouTube:
Remoção de packages que não estão em uso em um projeto
Um dos Previews mais recentes do Visual Studio 2019 trouxe uma funcionalidade há muito esperada: a possibilidade de remover packages que não estejam em uso (ou mesmo indicar tais ocorrências) com poucos cliques no mouse. A seguir podemos observar isto no Preview 1 da versão 16.10 desta IDE:
Maiores detalhes sobre este novo recurso (inclusive como habilitá-lo) podem ser encontrados no artigo:
Visual Studio 2019: removendo packages NuGet que não estão em uso em um projeto
Suporte a IntelliSense no arquivo appsettings.json
Outra novidade recente da qual muitos Desenvolvedores ASP.NET Core podem se beneficiar está presente tanto no Visual Studio 2019, quanto no Visual Studio Code: o suporte a IntelliSense no arquivo appsettings.json para alguns itens de configuração utilizados com maior frequência.
Na imagem a seguir temos esta capacidade demonstrada no Visual Studio Code:
Apresento maiores detalhes sobre esta novidade (inclusive um exemplo envolvendo o Visual Studio 2019) no seguinte artigo:
Novidade no Visual Studio: suporte a IntelliSense no arquivo appsettings.json
Simplificando a implementação de testes de APIs REST com Refit
Excelente opção para simplificar a codificação de instruções envolvendo chamadas HTTP, podemos nos beneficiar também da biblioteca Refit na implementação de testes automatizados validando APIs REST.
A próxima listagem traz um exemplo de client HTTP baseado no Refit; apenas uma interface com um método corresponde a uma chamada HTTP GET (não há sequer implementação para a mesma):
Para saber mais como codifiquei os testes acesse o artigo a seguir, em que apresento validações com os dados devolvidos pela API e até com códigos de retorno HTTP:
Testes de APIs REST com .NET 5, xUnit, Refit e Fluent Assertions
Simplificando a gravação de logs no Elasticsearch com Serilog
Solução comumente adotada em implementações para logging, o Elasticsearch pode ser combinado ao Serilog a fim de simplificar a coleta de informações deste tipo em aplicações .NET.
Na imagem a seguir estão alguns logs gerados em projeto ASP.NET Core e enviados ao Elasticsearch:
Detalhes sobre esta implementação podem ser encontrados no seguinte artigo:
.NET 5 + Serilog: implementando Logs com Elasticsearch, SQLite, …