Hoje lançamos o Beta 3 dos pacotes de integração do Couchbase ASP.NET no NuGet! Formalmente conhecido como Couchbase Caching e Session providers, esse projeto contém ou conterá implementações de várias APIs (Caching/Session providers, Identity, etc.) para integração entre o Couchbase Server e o Microsoft ASP.NET. Eventualmente, o suporte para o .NET Core provavelmente será adicionado, mas isso será feito algum tempo depois que o SDK do .NET oferecer suporte a ele.
Mudanças significativas
Em primeiro lugar, infelizmente, há algumas mudanças significativas entre o Beta 2 e o Beta 3. Na versão beta anterior, usávamos o Ajudante de cluster para gerenciar o escopo/vida útil dos objetos Cluster e Bucket usados pelo provedor de sessão. Isso funcionou bem, mas com o ClusterHelper, você está limitado a abrir um cluster do Couchbase Server por aplicativo. Na maioria dos cenários, isso não é problema - um cluster pode ter vários buckets e você pode abri-los por meio de GetBucket. Em alguns casos, no entanto, você pode ter um aplicativo que abre buckets de vários clusters. Com a versão beta 3, voltamos a abrir e definir o escopo do cluster e do bucket para a instância do provedor de cache ou de sessão. Isso significa que você pode configurar buckets em diferentes clusters para as instâncias do provedor de cache e de sessão.
Para isso, o ClusteHelper foi removido (além de exigir que você o inicialize nas classes Global.asax ou Setup.cs) e a configuração foi reformulada. Portanto, infelizmente, não se trata de uma substituição imediata do Beta 2. Para ver a "nova" forma de configuração, consulte a seção "Como usá-la" abaixo.
O que há no Beta 3?
Observe que os problemas são rastreados em Jira - Se você encontrar um bug ou quiser solicitar um recurso, poderá fazê-lo lá. Aqui está uma lista dos tíquetes que foram resolvido para o Beta 3:
Bug
- [CBASP-1] - O provedor de estado de sessão do Couchbase não funciona com o projeto WebForm
- [CBASP-14] - O AspNet não está gerando erro quando o comentário diz que deveria
- [CBASP-16] - O AspNet tenta fazer referência a dados em uma condição de erro
- [CBASP-21] - System.ArgumentNullException com o gerenciamento de sessão do ASP.NET
Melhoria
- [CBASP-17] - Atualizar os pacotes NuGet para o Couchbase.NetClient 2.2.5
- [CBASP-18] - Adicionar o projeto Couchbase.AspNet.UnitTests
- [CBASP-19] - Atualizar as dependências de Common.Logging e JSON.NET
- [CBASP-23] - Inicialização e instalação/configuração do Refactor
Como usá-lo
Observe que estou supondo que você já tenha criado um cluster do Couchbase com dois nós e um bucket do Memcached chamado "my-memcached-bucket"
. Se você não tiver feito isso, vá agora e faça isso.
Depois de definir sua configuração para o SDK do Couchbase (nas últimas etapas), você precisará fazer três coisas:
- Instale o Integração do Couchbase ASP.NET pacote de NuGet
- Configure o SDK do Couchbase .NET para usar seu cluster
- Configure seu projeto ASP.NET para usar o provedor de sessão personalizado do pacote Couchbase ASP.NET Integration e configure o provedor de sessão personalizado para usar o
CouchbaseClientSection
que você definiu em etapa 1.
1. Instale o pacote Couchbase ASP.NET Integration do NuGet
Crie ou abra um projeto ASP.NET MVC usando o Visual Studio. Clique em "Tools" (Ferramentas), "NuGet Package Manager" (Gerenciador de pacotes NuGet) e, em seguida, em "Package Manager Console" (Console do gerenciador de pacotes) na barra de menu principal. Em seguida, digite o seguinte:
1 2 |
Instalar-Pacote CouchbaseAspNet -Pré |
Isso instalará o Pacote de integração ASP.NET do Couchbase
juntamente com todas as dependências necessárias (Couchbase .NET SDK, etc.).
2. Configurar o SDK do Couchbase .NET
Os provedores de cache e de sessão exigem configuração por meio de App.Config ou Web.Config (a configuração JSON, conforme o .NET Core 1.0, ainda não é compatível, mas será em breve!) A primeira coisa que você precisará fazer é adicionar o suporte de configuração para inicializar os objetos de cluster e de bucket. Isso é feito por meio do API de configuração do SDK do Couchbase assim:
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
... |
Nesse caso, estamos definindo um CouchbaseClientSection
chamado "couchbase-session"
na parte superior do nosso App.config ou Web.config e, em seguida, fornecendo a seção de configuração real e a configuração que pretendemos usar para o Aglomerado
e Balde
que o provedor de sessão usará. Nesse caso, temos dois URIs http://a-couchbase-server1:8091/
e http://a-couchbase-server2:8091/
que usaremos para fazer o bootstrap. Também temos uma configuração de bucket definida que abrirá o bucket do Memcached chamado "my-memcached-bucket"
.
3. Configure o provedor de sessão personalizado
Em seu Web.Config, insira o seguinte:
1 2 3 4 5 6 |
Isso dirá ao ASP.NET para usar o personalizado provedor de sessão que vem do Integração do Couchbase ASP.NET
em vez do projeto padrão, na memória. Também muito IMPORTANTE Observe que o nome do provedor personalizado tem o mesmo nome ("couchbase-session"
) como o CouchbaseConfigurationSection (Seção de configuração do Couchbase)
que você definiu anteriormente e que o valor do balde
é o nome ("my-memcached-bucket"
) do balde que você usará.
Depois de fazer isso, execute seu aplicativo e, em vez de usar o armazenamento de sessão padrão na memória, o ASP.NET usará o servidor Couchbase distribuído e altamente escalável!
Se eu tiver vários aplicativos ASP.Net, preciso criar um bucket separado para cada um ou todos podem usar o mesmo?
Você pode usar o mesmo bucket para vários aplicativos.
oi, esse código funciona bem para mim até eu atualizar o couchbase para o Couchbase Server 5.0.1
O que estou perdendo?
doronps -
Dê uma olhada aqui para usar o Couchbase.Extensions com o CB Server 5.0: https://github.com/couchbaselabs/couchbase.extensions
Se ainda assim não conseguir fazê-lo funcionar, publique em forums.couchbase.com - você receberá mais ajuda lá!
-Jeff
Jeff, para aqueles de nós que ainda estão presos na Idade das Trevas, quando você espera que as integrações ASP.NET sejam atualizadas para funcionar com o CB Server 5?
Oi ash614 -
Estamos prestes a lançar uma versão beta do ASP.NET Integration 3.0 com suporte para o servidor CB 5.0 e superior: https://github.com/couchbaselabs/couchbase-aspnet/tree/3.0
Observe que não se trata de um substituto (por isso o 3.0), pois o bootstrapping foi alterado consideravelmente (para melhor, acredito). Os bits devem estar disponíveis no NuGet na próxima semana.
-Jeff
Oi Jeff,
Desculpe-me por continuar incomodando, mas você espera que a versão beta 3.0 seja lançada em breve?
-Ash
Oi Ash -
A versão beta do 3.0 está disponível no NuGet: https://www.nuget.org/packages/CouchbaseAspNet/3.0.0-beta
Trata-se de uma versão beta bastante crua, portanto, espere mudanças. Fique à vontade para postar em forums.couchbase.com ou https://github.com/couchbaselabs/couchbase-aspnet/issues se você tiver algum problema.
Obrigado,
Jeff