.NET Core 2.0 + NoSQL: exemplos utilizando MongoDB, DocumentDB e Redis

Bancos de dados NoSQL têm sido utilizados com sucesso dentro do mundo .NET, oferecendo respostas a cenários nos quais SGBDs relacionais apresentam limitações (como a manipulação de agrupamentos de dados com um formato variável, por exemplo).

Neste novo post trago todos os exemplos que implementei anteriormente em artigos e palestras cobrindo soluções como MongoDB, DocumentDB e Redis. As aplicações correspondentes já foram convertidas para o .NET Core 2.0 e o ASP.NET Core 2.0, estando disponíveis no GitHub (com os repositórios correspondentes sendo referenciados nas próximas seções).

Abordei inclusive o uso do MongoDB em .NET em um Live Demo do Canal .NET:

Retomei ainda o tema NoSQL em uma apresentação sobre o Azure Cosmos DB durante o Azure Tech Nights v2, outro evento realizado neste ano pelo Canal .NET. O Cosmos DB é um serviço NoSQL multi-model que integra o Microsoft Azure, suportando tecnologias como MongoDB, DocumentDB, Azure Tables e Gremlin. A gravação dessa apresentação que focou no uso do DocumentDB e do MongoDB a partir da nuvem também está no YouTube:

Recentemente abordei o uso de tecnologias NoSQL com .NET, em um meetup promovido pelo grupo Developers-SP. Os slides utilizados durante esta apresentação podem ser visualizados a seguir:


MongoDB

Orientado a documentos e compatível com as principais plataformas de desenvolvimento, o MongoDB é sem sombra de dúvidas uma das soluções NoSQL mais populares da atualidade.

Para utilizá-lo em um projeto .NET Core será necessário adicionar o package MongoDB.Driver:

Os exemplos de uso do MongoDB em .NET Core 2.0 estão no seguinte endereço:

https://github.com/renatogroffe/MongoDB-DotNetCore2

Ao acessar o repositório MongoDB-DotNetCore2 você encontrará os seguintes projetos:

  • CargaCatalogo: Console Application que criará um banco de dados e uma coleção (com um catálogo de produtos e serviços), além de incluir documentos nesta última estrutura;
  • APICatalogo: API REST destinada à consulta de produtos e serviços armazenados na coleção criada em CargaCatalogo.

DocumentDB

O DocumentDB é também um banco de dados orientados a documentos, correspondendo a uma das opções oferecidas através do Azure Cosmos DB. O package Microsoft.Azure.DocumentDB.Core permitirá a utilização deste NoSQL em projetos baseados no .NET Core:

Para consultar os exemplos de uso do DocumentDB com .NET Core 2.0 acesse:

https://github.com/renatogroffe/DocumentDB-DotNetCore2

No repositório DocumentDB-DotNetCore2 estão projetos similares àqueles apresentados na seção sobre MongoDB:

  • CargaCatalogo: Console Application para carga de dados de produtos e serviços;
  • APICatalogo: API REST de consulta de produtos e serviços carregados a partir do projeto CargaCatalogo.

Redis

Solução NoSQL open source e do tipo chave-valor, o Redis é bastante utilizado para a implementação de cache distribuído em aplicações Web. Isto se deve principalmente à performance oferecida pelo mesmo, partindo para isto do armazenamento em memória de conjuntos de dados formados por chaves e valores.

No caso específico do ASP.NET Core 2.0, esta versão conta com suporte nativo ao Redis e dependerá apenas de ajustes na classe Startup para habilitar o uso desse NoSQL. A interação acontecerá por meio da interface IDistributedCache, a qual integra o namespace Microsoft.Extensions.Caching.Distributed. Um exemplo de utilização desta estrutura está no projeto ExemploRedisCache, pertencente ao repositório Exemplos_ASPNETCore2.0:

https://github.com/renatogroffe/Exemplos_ASPNETCore2.0


E como o assunto deste post é NoSQL, deixo aqui um convite. No dia 17/10 (terça) teremos mais um evento online no Canal .NET a partir de 21h30 - horário de Brasília.

Desta vez receberemos o MVP Jhonathan Soares, que fará uma apresentação focada no uso do Neo4j (a solução NoSQL orientada a grafos mais popular entre desenvolvedores).

Para efetuar sua inscrição acesse a página do evento no Facebook ou então o Meetup, a transmissão será via YouTube em um link a ser divulgado futuramente.

E para concluir, ainda não segue o Canal .NET nas redes sociais? Faça sua inscrição então, para ficar por dentro de novidades sobre eventos, tecnologias Microsoft e outros conteúdos gratuitos:


One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.