Hoy hemos lanzado la Beta 3 de los paquetes Couchbase ASP.NET Integration en NuGet. Formalmente conocido como Couchbase Caching and Session providers, este proyecto contiene o contendrá implementaciones de varias APIs (Caching/Session providers, Identity, etc) para la integración entre Couchbase Server y Microsoft ASP.NET. Eventualmente se añadirá soporte para .NET Core, pero eso será dentro de un tiempo después de que el SDK de .NET lo soporte.
Cambios de última hora
En primer lugar, lamentablemente hay un par de cambios de última hora entre la Beta 2 y la Beta 3. En la beta anterior, utilizábamos el ClusterHelper para gestionar el alcance/tiempo de vida de los objetos Cluster y Bucket utilizados por el Session Provider. Esto funcionaba bien, pero con el ClusterHelper, estás limitado a abrir un cluster de Couchbase Server por aplicación. En la mayoría de los escenarios, esto está bien - un cluster puede tener múltiples buckets y puedes abrirlos vía GetBucket. En algunos casos, sin embargo, puedes tener una aplicación que abra buckets desde múltiples clusters. Con Beta 3, volvimos a abrir y asignar el Cluster y el bucket a la instancia del proveedor de Caching o de Sesión. Esto significa que puedes configurar buckets en diferentes clusters para tus instancias de Caching y Session provider.
Para ello, se ha eliminado el ClusteHelper (junto con el requisito de inicializarlo en las clases Global.asax o Setup.cs) y se ha refactorizado la configuración. Así que, desafortunadamente, no es un reemplazo para Beta 2. Para ver la "nueva" forma de configuración, consulte la sección "Cómo usarlo" a continuación.
¿Qué hay en la Beta 3?
Tenga en cuenta que el seguimiento de las incidencias se realiza en Jira - Si encuentra un error o desea solicitar una función, puede hacerlo allí. Esta es una lista de los tickets que fueron resuelto para la Beta 3:
Error
- [CBASP-1] - Couchbase session state provider no funciona con el proyecto WebForm
- [CBASP-14] - AspNet no arroja error cuando el comentario dice que debería hacerlo
- [CBASP-16] - AspNet intenta hacer referencia a datos en una condición de error
- [CBASP-21] - System.ArgumentNullException con ASP.NET Session Management
Mejora
- [CBASP-17] - Actualizar paquetes NuGet a Couchbase.NetClient 2.2.5
- [CBASP-18] - Añadir proyecto Couchbase.AspNet.UnitTests
- [CBASP-19] - Actualizar las dependencias de Common.Logging y JSON.NET
- [CBASP-23] - Refactorizar la inicialización y la configuración
Cómo utilizarlo
Ten en cuenta que estoy asumiendo que ya has creado un Cluster Couchbase con dos nodos y un bucket Memcached llamado "mi-memcached-bucket". Si no lo has hecho, ve ahora y haz esto.
Una vez que tengas tu configuración para el SDK de Couchbase (de los últimos pasos), necesitarás hacer tres cosas:
- Instale el Integración ASP.NET de Couchbase paquete de NuGet
- Configure el SDK .NET de Couchbase para utilizar su clúster
- Configure su proyecto ASP.NET para utilizar el proveedor de sesión personalizado del paquete de integración ASP.NET de Couchbase y configure el proveedor de sesión personalizado para que utilice la función
CouchbaseClientSectionque definió en paso 1.
1. Instalar el paquete Couchbase ASP.NET Integration desde NuGet
Cree o abra un proyecto ASP.NET MVC con Visual Studio. Haga clic en "Herramientas", "Gestor de paquetes NuGet" y, a continuación, en "Consola del gestor de paquetes" en la barra de menú principal. A continuación, escriba lo siguiente:
|
1 2 |
Install-Package CouchbaseAspNet -Pre |
Esto instalará el Paquete de integración ASP.NET de Couchbase junto con todas las dependencias necesarias (Couchbase .NET SDK, etc).
2. Configurar el SDK .NET de Couchbase
Los proveedores Caching y Session requieren configuración a través de App.Config o Web.Config (la configuración JSON como .NET Core 1.0 aún no está soportada, pero lo estará pronto). Lo primero que hay que hacer es añadir el soporte de configuración para inicializar los objetos cluster y bucket. Esto se hace mediante el método API de configuración del SDK de Couchbase así:
|
1 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
... |
En este caso estamos definiendo un CouchbaseClientSection llamado "couchbase-session" en la parte superior de nuestro App.config o Web.config y, a continuación, proporcionando la sección de configuración real y la configuración que tenemos la intención de utilizar para la aplicación Grupo y Cubo que utilizará el proveedor de sesión. En este caso tenemos dos URI's https://a-couchbase-server1:8091/ y https://a-couchbase-server2:8091/ que utilizaremos para arrancar. También tenemos definida una configuración de bucket que abrirá el bucket de Memcached llamado "mi-memcached-bucket".
3. Configurar el proveedor de sesión personalizado
En su Web.Config, inserte lo siguiente:
|
1 2 3 4 5 6 |
Esto le dirá a ASP.NET que utilice el personalizado proveedor de sesiones que proviene del Integración ASP.NET de Couchbase en lugar del proyecto en memoria por defecto. Además IMPORTANTE tenga en cuenta que el nombre del proveedor personalizado es el mismo ("couchbase-session") como el CouchbaseConfigurationSection que definió anteriormente y que el valor del cubo es el nombre ("mi-memcached-bucket") del cubo que vaya a utilizar.
Una vez hecho esto, ejecute su aplicación y, en lugar de utilizar el almacén de sesiones en memoria por defecto, ASP.NET utilizará el servidor distribuido y altamente escalable Couchbase.
Si tengo varias aplicaciones ASP.Net, ¿debo crear un bucket distinto para cada una o todas pueden utilizar el mismo?
Puede utilizar el mismo cubo para varias aplicaciones.
hola este codigo me funciono bien hasta que actualice couchbase a Couchbase Server 5.0.1
¿qué me estoy perdiendo?
doronps -
Echa un vistazo aquí para usar Couchbase.Extensions con CB Server 5.0: https://github.com/couchbaselabs/couchbase.extensions
Si aún así no consigues que funcione, entonces sigue adelante y publica en forums.couchbase.com - ¡allí recibirás más ayuda!
-Jeff
Jeff, para aquellos de nosotros que seguimos atrapados en la Edad Media, ¿cuándo esperas que se actualicen las integraciones ASP.NET para que funcionen con CB Server 5?
Hola ash614 -
Estamos a punto de publicar una versión beta de ASP.NET Integration 3.0 compatible con CB server 5.0 y versiones superiores: https://github.com/couchbaselabs/couchbase-aspnet/tree/3.0
Tenga en cuenta que no es una gota en la sustitución (de ahí la 3.0), porque bootstrapping se ha cambiado considerablemente (para mejor, creo). Los bits deben estar en NuGet en la próxima semana o así.
-Jeff
Hola Jeff,
Perdona que siga molestando, pero ¿esperas que se publique pronto la beta 3.0?
-Ash
Hola Ash -
La versión beta de 3.0 está disponible en NuGet: https://www.nuget.org/packages/CouchbaseAspNet/3.0.0-beta
Se trata de una beta en bruto, así que prepárate para cambios. Siéntase libre de publicar en forums.couchbase.com o https://github.com/couchbaselabs/couchbase-aspnet/issues si tiene algún problema.
Gracias,
Jeff