Se você desenvolve aplicações .NET usando o MongoDB, já deve ter passado por situações onde uma consulta LINQ ou uma expressão do MongoDB Builders não funcionava como esperado. Pior ainda, erros só apareciam em tempo de execução. Pensando nisso, a equipe do MongoDB lançou o MongoDB Analyzer para .NET, uma ferramenta que analisa seu código diretamente no Visual Studio e mostra como suas consultas são traduzidas para a API do MongoDB.
Pensando nisso, a equipe do MongoDB lançou o MongoDB Analyzer para .NET, uma ferramenta que analisa seu código diretamente no Visual Studio e mostra como suas consultas são traduzidas para a API do MongoDB.
O Que é o MongoDB Analyzer?
O MongoDB Analyzer é um analisador de código estático que interpreta consultas LINQ e expressões do Builders dentro do próprio editor de código. Com ele, você pode:
- Visualizar a consulta equivalente em MongoDB antes de rodar a aplicação
- Receber avisos sobre expressões não suportadas e otimizar o código
- Melhorar a performance, ajustando as consultas antes da execução
Ou seja, menos surpresas e mais produtividade.
Em vez de mapear mentalmente a versão idiomática da sua consulta em C# para a MongoDB Query API, o MongoDB Analyzer pode fazer isso por você – e até mesmo fornecer a expressão da Query API gerada diretamente no seu IDE. O MongoDB Analyzer ainda exibe informações úteis e avisos úteis sobre expressões inválidas em tempo de compilação, trazendo maior visibilidade às causas raiz dos bugs.
Vamos dar uma olhada em como instalar e usar o novo MongoDB Analyzer como um pacote NuGet. Seguiremos com alguns exemplos de código para que você possa ver por que essa é uma ferramenta essencial para o Visual Studio!
Instalando o MongoDB Analyzer como um pacote NuGet
No Visual Studio, instale oMongoDB.Analyzer
Pacote NuGet:
Package Manager
Install-Package MongoDB.Analyzer -Version 1.0.0
CLI .NET
dotnet add package MongoDB.Analyzer --version 1.0.0
Uma vez instalado, ele será adicionado à lista de dependências do seu projeto, em Analyzers:
Após a instalação e uma vez que o analisador tenha sido executado, você encontrará todos os avisos de diagnóstico de saída no painel Error List. Conforme você começa a inspecionar seu código, você também verá que quaisquer expressões não suportadas serão destacadas.
Inspecionando mensagens de informação e avisos
Ao escrever expressões LINQ ou Builders, uma dica de ferramenta de informações pode ser acessada passando o mouse sobre os três pontos cinzas abaixo da sua expressão:
Acessando o tooltip para uma expressão LINQ
Este tooltip exibe a linguagem da API de consulta correspondente à expressão que você está escrevendo e atualiza em tempo real! Com a consulta traduzid, você pode confirmar que a consulta que está sendo gerada (e executada!) é a que você espera.
Outro problema comum que o MongoDB Analyzer resolve é a exibição de expressões sem suporte e consultas inválidas em tempo de compilação. Você encontrará todos esses problemas listados como avisos:
Expressões sem suporte mostradas como avisos na Lista de Erros do Visual Studio
Isso é bem útil, pois nem todas as expressões LINQ são suportadas pelo driver MongoDB C#/.NET. Da mesma forma, as expressões suportadas serão diferentes dependendo de qual versão do LINQ você usa.
Amostras de código — Veja o MongoDB Analyzer para .NET em ação
Agora que sabemos o que o MongoDB Analyzer pode fazer por nós, vamos vê-lo ao vivo!
Builder Expressions
Estes são alguns exemplos que mostram como as expressões do Builder são analisadas. Como você verá, o MongoDB Analyzer fornece feedback imediato por meio da dica de ferramenta. Passar o mouse sobre seu código mostra a linguagem da API de consulta suportada que corresponde à consulta/expressão que você está escrevendo.
Definição do filtro do Builder – Filtre filmes por gênero correspondente, pontuação maior ou igual à pontuação mínima e uma correspondência no termo de pesquisa do título.
Definição de classificação do construtor – Classifique os filmes por pontuação (da menor para a maior) e título (de Z a A).
Expressão do Builder sem suporte – Destacada e exibida como aviso na Lista de Erros.
Query LINQ
O MongoDB Analyzer usa o provedor LINQ padrão do driver C#/.NET (LINQ2). Expressões que não são suportadas no LINQ2, mas são suportadas no LINQ3, mostrarão os avisos apropriados, como você verá em um dos exemplos a seguir. Se você quiser alternar o provedor LINQ que o MongoDB Analyzer usa, defina “DefaultLinqVersion”: “V3”
no mongodb.analyzer.json
arquivo.
Consulta de filtro LINQ – Pipeline de agregação.
Consulta LINQ – Obtenha estatísticas de gênero de filme; usa pipeline de agregação para agrupar e selecionar um objeto dinâmico.
Integre o MongoDB Analyzer para .NET em seus pipelines
O MongoDB Analyzer também pode ser usado a partir da CLI, o que significa que integrar essa ferramenta de análise estática em seus pipelines de integração e implantação contínuas é perfeito! Por exemplo, executar dotnet build
a partir da linha de comando emitirá avisos do MongoDB Analyzer para o terminal:
Adicionar isso como uma etapa no seu pipeline de build pode ser uma verificação de gate valiosa para seu build. Você vai se poupar de uma potencial dor de cabeça e pegar expressões sem suporte e consultas inválidas muito antes.
Recursos adicionais
Conclusão
O MongoDB Analyzer para .NET é uma ferramenta essencial para quem usa MongoDB com C#. Ele reduz erros em tempo de execução, melhora a eficiência das consultas e aumenta a produtividade.
Se você ainda não testou, vale a pena instalar e experimentar. Para mais detalhes, confira a documentação oficial.
E aí, o que achou da novidade? Deixe seu comentário e compartilhe sua experiência!