Vamos criar um aplicativo ASP.NET Core CRUD com NoSQL.

Criarei uma API HTTP CRUD básica (CRUD é Create, Read, Update, Delete). Essa API estará operando em uma lista de desejos de presentes: todos os itens que eu quero que você compre para mim no meu aniversário. Não criarei uma interface de usuário, mas você pode usar essa API com a estrutura do lado do cliente de sua escolha (como React ou Blazor, etc.).

Esta primeira postagem incluirá toda a configuração do projeto ASP.NET Core NoSQL e o banco de dados de configuração. As próximas postagens criarão os pontos de extremidade CRUD reais.

Ferramentas de desenvolvedor de que você precisará

Estou usando o Visual Studio 2022 (Enterprise), mas você deve ser capaz de acompanhar o processo com o JetBrains Rider, VSCode ou qualquer outro programa que use normalmente. (Se precisar de ajuda, ficarei feliz em ajudar!)

Também estou usando Couchbase Capellaque é a oferta de DBaaS (banco de dados como serviço) do Couchbase.

Já me inscrevi em uma conta de avaliação. Você também pode, vá para: https://cloud.couchbase.com/sign-up

O amostra de viagem já está carregado quando você implanta o cluster de avaliação. Mas estou usando o outro balde que criei chamado demonstração.

Configure Couchbase buckets on Capella DBaaS

Dentro desse balde, há um Padrão portanto, vou usá-lo. E dentro desse escopo, criei um Lista de desejos coleção. (Saiba mais sobre escopos e coleções no Capella)

Configure Couchbase Collections on Capella DBaaS

Credenciais CRUD

Você também precisará criar credenciais de banco de dados com acesso de leitura/gravação a tudo no demonstração balde.

Configure Couchbase credentials on Capella DBaaS

Finalmente, colocar o endereço IP na lista de permissões a partir do qual você compilará e executará seu aplicativo, para que possa se conectar.

Configure Couchbase IP whitelist on Capella DBaaS

Iniciar um aplicativo ASP.NET Core

No Visual Studio, selecione File→New →Project→ASP.NET Core Web API. Eu o chamei de Tutorial do AspNetCore.

Setting up a ASP.NET project

Estou usando o .NET 6 e todos os outros padrões estão corretos (observe que o OpenAPI, também conhecido como Swagger, está ativado).

Default settings in a ASP.NET project

Esse processo cria um site shell básico.

Em seguida, vamos usar o NuGet para adicionar o Couchbase .NET SDK (CouchbaseNetClient).

Couchbase .NET SDK nuget

Notas sobre o SDK do .NET

O SDK do Couchbase .NET permite que nos conectemos a um cluster do Couchbase. O Couchbase é um banco de dados distribuído, portanto, normalmente, há vários servidores (chamados de "nós") em um grupo (chamado de "cluster") que atuam juntos. Um cluster tem um ou mais "buckets", que, como você viu anteriormente, contém escopos, que contêm coleções, que, por sua vez, contêm documentos.

Os dados em um bucket são distribuídos entre os nós do cluster, mas são tratados como uma única entidade lógica pelo SDK.

Em uma coleção, cada documento tem uma "chave" exclusiva e um "valor" JSON.

Na versão de teste do Capella, haverá apenas um único nó. No entanto, isso não afeta seu código: quando os nós são adicionados, o SDK é inteligente o suficiente para encontrá-los por conta própria.

Na produção, você normalmente terá pelo menos três nóspossivelmente alguns buckets e quantos escopos e coleções forem necessários (dentro do razoável).

Injeção de dependência

Também vou adicionar o Couchbase.Extensions.DependencyInjection pacote NuGet. Isso fornecerá métodos de extensão para adicionar facilmente os recursos do Couchbase à injeção de dependência integrada do ASP.NET Core.

(Esse pacote facilita o uso do Couchbase com o ASP.NET Core, mas é opcional).

Conectar o ASP.NET Core ao Couchbase Capella

Vamos escrever algum código no aplicativo ASP.NET para nos conectarmos ao cluster do Capella.

Em Program.csUse o método de extensão nos serviços:

(Neste exemplo, estou codificando as informações de conexão, mas você também pode usar a configuração em Configurações do aplicativo.json em vez disso).

Mais uma etapa: quando o aplicativo for interrompido, preciso que ele libere todos os recursos do Couchbase que o .NET estiver usando.

Você pode registrar o código a ser executado em eventos de tempo de vida, como ApplicationStopped.

Agora, o sistema de injeção de dependência do ASP.NET Core injetará automaticamente os objetos do Couchbase quando quisermos.

Modelagem de dados

Antes de escrevermos mais código, vamos pensar no modelo de dados. Será um modelo muito simples: apenas o nome de um item para a lista de desejos.

Em um banco de dados de documentos NoSQL, cada parte dos dados tem uma chave e um valor JSON. A chave pode ser apenas um GUID para nossos propósitos (você também pode criar uma chave mais significativa, se quiser). Cada item da lista de desejos tem um "nome", portanto, haverá um nome campo.

Criarei uma classe C# para representar um item:

Um modelo realmente simples, mas como o Couchbase não exige um esquema predefinido, adicionar mais campos pode ser tão fácil quanto adicioná-los aqui mesmo na classe C#.

Vamos "preparar" o banco de dados com alguns itens da lista de desejos.

Navegue até a coleção da lista de desejos no Couchbase Capella e adicione alguns documentos.

O primeiro documento terá uma chave "3ca6e87e-c3a6-4637-989d-33cbca5002b5", e darei a ele o nome de "Camiseta Skyline Chili“.

O segundo documento terá uma chave "31c9cc33-8dfe-440c-bd1b-bb038939d2e0", darei a ele o nome de "Joey Votto Jersey“.

Viewing Couchbase documents added to bucket

Você pode adicionar outros documentos, se desejar, mas, no final, criaremos um aplicativo em que os documentos serão adicionados/alterados por meio do aplicativo ASP.NET Core.

Controlador para ações CRUD NoSQL

Em seguida, crie um controlador ASP.NET para minhas operações CRUD. Eu o chamo de GiftsController.

No construtor, especifique um IBucketProvider parâmetro. Esse é um objeto que pode ser usado para obter um Bucket do Couchbase Injeção de dependência módulo. Eu o usarei para obter um Balde para o objeto demonstração balde.

Você pode executar o aplicativo neste momento, apenas para verificar se a conexão funciona. Ainda não haverá nenhum ponto de extremidade (exceto o Previsão do tempo exemplo que a Microsoft colocou como exemplo).

O que vem a seguir?

Agora temos um projeto ASP.NET Core, conectado ao Couchbase Capella. Na próxima postagem do blog, abordaremos a criação dos endpoints CRUD reais.

Enquanto isso, você pode:

Autor

A ordem da postagem em relação a outras postagens. Matthew Groves

Matthew D. Groves é um cara que adora programar. Não importa se é C#, jQuery ou PHP: ele enviará solicitações de pull para qualquer coisa. Ele tem programado profissionalmente desde que escreveu um aplicativo de ponto de venda QuickBASIC para a pizzaria de seus pais nos anos 90. Atualmente, ele trabalha como gerente sênior de marketing de produtos da Couchbase. Seu tempo livre é passado com a família, assistindo aos Reds e participando da comunidade de desenvolvedores. Ele é autor de AOP in .NET, Pro Microservices in .NET, autor da Pluralsight e Microsoft MVP.

Posição vertical a partir do topo para iniciar o corte como uma porcentagem da altura da imagem.