O Couchbase.NET SDK v2.2.7 com visualização para desenvolvedores do gerenciamento de índices já está disponível!

Hoje estamos lançando a versão 2.2.7 do SDK oficial do Couchbase .NET! Essa versão contém suporte para o gerenciamento de índices e adiciona a API de subdocumentos, que foi lançada como uma prévia para desenvolvedores na versão 2.2.6, bem como uma correção de bugs e melhorias no suporte futuro do .NET Core.

Gerenciamento de índices

Os índices secundários globais (GSIs) são uma parte importante da arquitetura de consulta N1QL no servidor Couchbase, permitindo consultas rápidas e de baixa latência. Você pode colocar índices em elementos JSON, expressões N1QL e usar filtros por meio de uma cláusula WHERE. Para a versão 2.2.7 do SDK do .NET, criamos uma abstração sobre o serviço de indexação do Couchbase Server que facilita muito a criação de índices primários e secundários. Essa abstração estende e amplia a classe BucketManager, que inclui suporte para a criação e o gerenciamento de Buckets do Couchbase.

O BucketManager é criado abrindo um objeto Bucket em uma instância do Cluster e passando a configuração correta para o seu ambiente.

Criação e eliminação de índices primários

Você pode criar índices primários nomeados e não nomeados chamando o método CreatePrimaryIndex e CreateNamedPrimaryIndex depois de ter a instância do BucketManager:

Observe que você está sempre trabalhando com o contexto do bucket que abriu. Portanto, esses índices serão criados no bucket "beer-sample" que abrimos anteriormente. Além disso, observe que esses dois métodos usam um campo booleano chamado "defer"; na verdade, como você verá, todos os métodos de criação contêm um parâmetro "defer". Se "defer" for verdadeiro, o índice será criado, mas não será construído até que o método BuildDeferredIndexes seja chamado. Mais informações sobre os índices diferidos mais adiante!

Eliminar um índice primário nomeado ou não nomeado é praticamente o mesmo que criar um índice, com exceção dos nomes dos métodos:

Observe que, se o índice não existir, result.Success será falso.

Criação e eliminação de índices secundários

A criação e o descarte de índices secundários são semelhantes aos índices primários, exceto pelo fato de que você também pode indexar em um ou mais campos.

Observe que, nesse caso, estou passando "true" para que a criação do índice seja adiada. Além disso, se o índice já existir ou se ele não existir e você tentar removê-lo, result.Success será falso.

Atualizações na API do subdocumento

Esta versão também contém alterações internas na API SubDocument lançada como Developer Preview na versão 2.2.6. Foram adicionados dois grandes aprimoramentos relacionados ao desempenho:

  1. Se uma única mutação ou operação de pesquisa for executada, o SDK usará uma única operação, em vez de uma operação múltipla que economiza alguns bytes na conexão.
  2. A desserialização do corpo da resposta é adiada até que você chame o Content

Expressões Lambda para navegação no caminho do subdocumento

Além dessas alterações, outro novo recurso foi incluído na versão por meio de uma contribuição do comunidade: Navegação de expressão lambda para caminhos de subdocumentos. Esse recurso permite que você use a sintaxe familiar com suporte ao intellisense e à segurança de tipos que você aprecia no linq, em vez de apenas passar caminhos de string.

Supondo um documento que se pareça com:

Em seguida, você recupera o valor no caminho "geo.accuracy" da seguinte forma:

É claro que você poderia encadear vários "Gets" para recuperar cada elemento individual do documento.

Notas de versão da v2.2.7

Bug

  • [NCBC-1099] - Adicionar atributo DataContract às classes Error, Warning e Metrics

Melhoria

  • [NCBC-1103] - Suporte para operações assíncronas em subdocumentos
  • [NCBC-994] - Atualizar o ambiente de desenvolvimento e os projetos para o VS2015
  • [NCBC-1089] - Aguardar todos os caminhos de código não bem-sucedidos
  • [NCBC-1095] - Não tentar novamente com NodeUnavailableException

Novo recurso

  • [NCBC-1067] - Estender o BucketManager para oferecer suporte ao gerenciamento de índices
  • [NCBC-1093] - Incluir suporte para a API de subdocumentos - Comandos únicos da Parte 2 DP2

Como obter a versão 2.2.7

  • Faça o download dos binários aqui.
  • O pacote NuGet pode ser encontrado aqui.
  • O repositório do Github é aqui.

Autor

Postado por Jeff Morris, engenheiro de software sênior, Couchbase

Jeff Morris é engenheiro de software sênior da Couchbase. Antes de ingressar na Couchbase, Jeff passou seis anos na Source Interlink como arquiteto da Web corporativa. Jeff é responsável pelo desenvolvimento dos SDKs do Couchbase e pela integração com o N1QL (linguagem de consulta).

Deixar uma resposta