Banco de Dados

23 nov, 2017

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

Publicidade

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 artigo, 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 à 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:

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 orientado à 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:

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 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:

E como o assunto deste artigo é 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.

Referências