Jeff Morris já escreveu um excelente publicação no blog para apresentar o SDK do Couchbase .NET Coreque agora está na visualização para desenvolvedores.
Vou mostrar a você algumas das ferramentas que estou usando para escrever o .NET Core no Windows: Visual Studio Code com NuGet e outras extensões.
Primeiros passos
Aqui está o que estou usando no Windows, mas observe que isso não deve ser muito diferente no Mac ou no Linux!
- Instalar .NET Core
- Instalar Código do Visual Studio (VSC) - isso é opcional, mas é uma ótima ferramenta e é gratuita!
Depois de instalar o Visual Studio Code, recomendo que você instale essas extensões:
- C# (desenvolvido pela OmniSharp) - Isso lhe dará alguns dos recursos normais do C# que você espera se já tiver usado o Visual Studio com o .Net Core antes: realce de sintaxe, IntelliSense e assim por diante.
- Gerente de projetos NuGet do .Net Core
Você pode instalar essas extensões diretamente no Visual Studio Code usando a interface do usuário, ou pode usar Ctrl+P e, em seguida, digite ext install net-core-project-manager
ou ext install csharp
. Manter Ctrl+P em sua mente, pois quando tiver o NuGet Project Manager instalado, você também o usará para instalar o um pacote NuGet no Visual Studio Code.
Vamos escrever um código
Use o Powershell ou o CMD para criar uma pasta de projeto. Quando você estiver lá:
dotnet new
Isso criará alguns arquivos: Program.cs
e project.json
.

Em seguida, para obter as dependências listadas em project.json
, execute outro comando:
restauração do dotnet
Agora você pode notar uma project.lock.json
arquivo. Ele é gerado pelo NuGet para calcular o gráfico de dependências. Não é necessário confirmá-lo no repositório de código-fonte, e eu o omiti do código-fonte do meu exemplo.
Agora, vou abrir essa pasta no Visual Studio Code, executando:
código .
Nesse ponto, o projeto está pronto para ser executado. Você pode voltar ao Powershell/CMD, se desejar, ou pode usar Ctrl+` para usar o Terminal integrado dentro do VSC. Para executar o programa:
execução do dotnet
Se você executasse isso agora, receberia um "Hello World". Vamos adicionar um pouco de Couchbase a esse projeto. Ctrl+Pe, em seguida, digite ">nuget" até que a opção "Add New Package" seja exibida. Digite um termo de pesquisa, como "couchbase". O "CouchbaseNetClient" deve aparecer na lista. Selecione-o e, em seguida, você poderá selecionar uma versão.

Atualmente, para o .NET Core, você precisará selecionar 2.4.0-dp2, pois o suporte ao .NET Core ainda é uma "prévia para desenvolvedores".
Depois de adicionar isso ao seu projeto, o trabalho com o SDK do .NET Core deverá ser familiar para você se já tiver usado o SDK do .NET. Dentro da seção Principal
veja como se conectar a um cluster e configurar um bucket:
1 2 3 4 5 |
// conectar-se a um cluster, obter um bucket Ajudante de cluster.Inicializar(novo Configuração de cliente { Servidores = novo Lista { novo Uri("couchbase://localhost")} }); var balde = Ajudante de cluster.GetBucket("default"); |
Em seguida, estou inserindo um documento "conta de luz" usando o objeto bucket. Observe que estou usando o método Async. De acordo com a publicação no blog de Jeff, a API síncrona pode estar desaparecendo, portanto, estou tentando me acostumar com a API assíncrona. Estou usando Task.WaitAll
portanto, ele ainda está sendo executado de forma síncrona para os fins deste aplicativo de console de amostra.
1 2 3 4 5 6 7 8 9 10 11 12 |
// inserir um documento com alguns valores aleatórios var documento = novo Documento { Id = Guia.NovoGuia().ToString(), Conteúdo = novo { invoiceNumber = Caminho.GetRandomFileName(), amountDue = novo Aleatório().Próximo(10,300), tipo = "electricbill" } }; Tarefa.WaitAll(balde.InsertAsync(documento)); // aguardar a conclusão do método assíncrono Console.WriteLine("Nova conta de energia elétrica criada."); Console.WriteLine(); |
Em seguida, estou executando uma consulta N1QL parametrizada com Consistência do RequestPlus para listar todas as contas de energia elétrica.
1 2 3 4 5 |
// obter todas as contas de energia elétrica com N1QL e listá-las var consulta = Couchbase.N1QL.Solicitação de consulta.Criar("SELECT b.* FROM `default` b WHERE type = $1"); consulta.AddPositionalParameter("electricbill"); consulta.Consistência de varredura(Consistência de varredura.RequestPlus); var resultado = balde.QueryAsync(consulta).Resultado; // chamando o QueryAsync de forma síncrona |
Novamente, isso está usando a API Async, mas como estou chamando Resultado
É funcionalmente síncrono. Por fim, com base nos resultados da consulta N1QL, estou enviando informações de erro ou fazendo um loop pelos resultados e gravando-os no console.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Console.WriteLine("Sucesso: " + resultado.Sucesso); se(!resultado.Sucesso) { Console.WriteLine("Mensagem: " + resultado.Mensagem); Console.WriteLine("Exceção: " + resultado.Exceção?.GetType().Nome); Console.WriteLine("Mensagem de exceção: " + resultado?.Exceção?.Mensagem); resultado.Erros.Para cada(e => Console.WriteLine("Error: " + e?.Mensagem)); retorno; } Console.WriteLine(); Console.WriteLine("Contas:"); Console.WriteLine("------"); antes de(var conta em resultado.Fileiras) { Console.WriteLine($"{bill.invoiceNumber} - {bill.amountDue.ToString("C")}"); } |
Quando eu executar esse programa, ele criará um novo documento (a cada vez) e listará todos os documentos criados cumulativamente.

Observação: se estiver tendo problemas para começar a usar o Couchbase Server, ou se estiver recebendo erros, especialmente em relação à indexação N1QL, talvez queira revisitar algumas das minhas postagens do blog "Getting Started" (Introdução): Couchbase com Windows Parte 1 e Couchbase com Windows Parte 2 em particular.
O que há de diferente?
Na maior parte do tempo, isso é muito parecido com trabalhar com o Visual Studio e o .NET completos. O Visual Studio Code ainda não tem recursos tão completos, mas já possui uma grande biblioteca de extensões. Para os desenvolvedores do Couchbase, trabalhar com o .NET Core SDK é praticamente idêntico.
Um aspecto com o qual pode levar algum tempo para se acostumar é a falta do ReSharper. Não sei se o ReSharper virá para o VSC (a JetBrains tem seu próprio IDE C# leve chamado Cavaleiro). Tenho o hábito de usar Alt+Enter para adicionar usando
e esse mesmo atalho de teclado não funciona no VSC (por padrão). As lâmpadas de refatoração ainda aparecem, e aqui estão os namespaces para o registro:
1 2 3 4 5 6 7 |
usando Sistema; usando Sistema.Coleções.Genéricos; usando Sistema.IO; usando Sistema.Rosqueamento.Tarefas; usando Couchbase; usando Couchbase.Configuração.Cliente; usando Couchbase.N1QL; |
Também é um pouco estranho criar um projeto com dotnet new
em vez de File→New, mas isso é algo com o qual posso me acostumar.
Resumo
Mesmo que não planeje escrever código .NET Core ainda, você deve dar uma olhada no Visual Studio Code. Ele é um ótimo editor de texto, se não houver mais nada. Se você estiver escrevendo .NET com o Couchbase, a parte do Couchbase da sua transição para o .NET Core deve ser tranquila (sua milhagem pode variar ao se acostumar com as novas ferramentas do .NET Core).
Do que você gosta ou não gosta no VSC e no .NET Core? Deixe um comentário abaixo ou me informe no Twitter. Eu sou @mgroves. Se você estiver tendo problemas com o .NET, o .NET Core ou o Couchbase Server, estou aqui para ajudá-lo.