O Couchbase .NET SDK 2.3.5 já está disponível!
Hoje estamos lançando o Couchbase .NET SDK 2.3.5, outra versão de manutenção e correção de bugs. Nesta versão, adicionamos um modelo de segurança novo e aprimorado para passar credenciais para o servidor: SCRAM-SHA1. Também adicionamos alguns commits em direção ao nosso objetivo de lançar um SDK compatível com o .NET Core em um futuro próximo. Aguarde uma prévia para desenvolvedores em algum momento do próximo mês!
Novos recursos e alterações
Suporte a SCRAM-SHA1
Com o lançamento do Couchbase Server 4.5, temos um recurso de segurança novo e aprimorado chamado SCRAM-SHA. SCRAM significa Salted Challenge Request Authentication Mechanism (Mecanismo de autenticação de solicitação de desafio salgado) e SHA representa o algoritmo usado para fazer o hash da senha antes de ser enviada ao servidor. O servidor é compatível com SHA-1, SHA-256 e SHA-512 (juntamente com plain e CRAM-MD5 para versões mais antigas do servidor). Quanto maior o número de SHA, mais seguro é o hash. Dito isso, o cliente só é compatível com SHA1 a partir desta versão. O motivo disso é que o .NET só é fornecido com versões SHA1 do PBKDF2, que é parte necessária do processo SCRAM para salgar a senha. É possível que, no futuro, ofereçamos suporte a SHA-256 e SHA-512 usando uma biblioteca de terceiros.
A melhor parte do SCRAM-SHA1, do ponto de vista do cliente, é que você não precisa fazer nenhuma alteração na configuração! Se o cliente detectar que o servidor suporta SHA1, ele o usará em vez de CRAM-MD5 (que é menos seguro).
Suporte ao .NET Core - Atualização!
Esta versão inclui três commits destinados especificamente a fornecer suporte ao .NET Core:
- NCBC-1152: O Net Core não oferece suporte a Socket.BeginConnect
- NCBC-1125: Mudar o SslStream para usar o padrão Async TPL
- NCBC-1159: Impasse nas chamadas assíncronas durante a execução de testes no NUnit 3
Um agradecimento especial a Brant Burnett de Software Centeredge com a ajuda do projeto Couchbase SDK .Net Core! Além disso, ele está de parabéns por ter sido promovido a Especialista em Couchbase como parte do nosso programa de colaboradores da Comunidade!
Mais uma vez, aguarde uma prévia do SDK do Couchbase .Net Core para desenvolvedores em um futuro próximo!
Tempo de consulta N1QL
O N1QL Query Timing é um acréscimo à infraestrutura de registro do SDK e é útil para diagnosticar problemas de rede entre o cliente e o servidor. Ele é desativado por padrão e pode ser ativado definindo a propriedade EnableQueryTiming como true na classe ClientConfiguration:
1 2 3 4 5 6 7 |
var configuração = novo Configuração de cliente { Servidores = novo Lista<Uri>{novo Uri("http://yourbootstrapserver:8091"), EnableQueryTiming = verdadeiro } Ajudante de cluster.Inicializar(configuração); |
Um grande agradecimento a Mike Goldsmith por contribuir com esse recurso! Mike também fez algumas correções nesta versão e prevemos que ele fará mais no futuro!
Convergência de SDKs
Uma coisa à qual nós da equipe de SDK da Couchbase temos sido particularmente sensíveis é garantir a consistência do modelo de programação entre os vários SDK's: Java, Go, Node.js, Python, PHP, Libcouchbase e .NET. Embora as diferenças idiomáticas entre as plataformas tornem essa meta difícil de ser alcançada, estamos sempre buscando aprimorá-la. Nesta versão, adicionamos um commit NCBC-1170que faz duas coisas:
- Garante que cada DocumentResult ou OperationResult obtenha uma cópia da chave do documento em sua propriedade Id.
- Adiciona o documento ao DocumentResult quando uma operação Insert, Upsert ou Replace é executada
Isso deve facilitar a passagem para a próxima etapa da lógica do aplicativo, pois o conteúdo (o documento), a chave e o valor CAS estarão todos disponíveis no DocumentResult.
Notas de versão - Biblioteca cliente do Couchbase .NET - Versão 2.3.5
- [NCBC-1125] - Mudar o SslStream para usar o padrão Async TPL
- [NCBC-1152] - O Net Core não oferece suporte a Socket.BeginConnect
- [NCBC-1080] - Os buckets são abertos com uma senha fornecida para outro no SDK .NET de configuração
- [NCBC-1108] - Os métodos do Index Mgmt não têm ContinueOnAnyContext e podem causar deadlock
- [NCBC-1157] - As consultas falharão se DefaultSerializer.ContractResolver for nulo
- [NCBC-1158] - Exceção para obtenção de subdoc durante o rb2out
- [NCBC-1159] - Deadlock de chamadas assíncronas durante a execução de testes no NUnit 3
- [NCBC-1161] - Subdocumento - MutateIn não é compatível com POCO's
- [NCBC-1162] - Tornar o Observe fail-fast quando a mutação de documentos for encontrada
- [NCBC-1163] - MUX IO - OperationTimeout quando a durabilidade aprimorada está ativada
- [NCBC-1164] - A mutação do documento foi indicada incorretamente ao realizar a observação baseada em CAS
- [NCBC-1167] - garantir que o README no github aponte claramente para o início atual usando
- [NCBC-1170] - Fazer com que o Insert e o Upsert retornem o documento - semelhante ao Java SDK
- [NCBC-1094] - Implementar suporte a SCRAM-SHA1
- [NCBC-1160] - Adicionar opção para ativar o registro de tempo do N1QL
- [NCBC-1111] - Remover backoff exp. para NMV e substituir por backoff estático de 100 ms
Como obtê-lo
Como sempre, o SDK do Couchbase .NET está disponível em/por: