Jeff Morris ya escribió un gran entrada de blog para presentar el SDK de Couchbase .NET Coreque ya está en la versión preliminar para desarrolladores.
Te voy a mostrar algunas de las herramientas que estoy usando para escribir .NET Core en Windows: Visual Studio Code con NuGet y otras extensiones.
Primeros pasos
Esto es lo que utilizo en Windows, pero ten en cuenta que no debería ser muy diferente en Mac o Linux.
- Instale .NET Core
- Instale Código de Visual Studio (VSC) - esto es opcional, pero es una gran herramienta, ¡y es gratis!
Una vez que tenga instalado Visual Studio Code, le recomiendo que instale estas extensiones:
- C# (con tecnología OmniSharp) - esto le proporcionará algunas de las funciones normales de C# que espera si ha utilizado Visual Studio con .Net Core anteriormente: resaltado de sintaxis, IntelliSense, etc.
- Gestor de proyectos .Net Core NuGet
Puede instalar estas extensiones directamente en Visual Studio Code utilizando la interfaz de usuario, o puede utilizar Ctrl+P y escriba ext install net-core-project-manager
o ext install csharp
. Mantenga Ctrl+P en su mente, porque una vez que tenga instalado NuGet Project Manager, también lo utilizará para instalar un paquete NuGet en Visual Studio Code.
Escribamos algo de código
Utilice Powershell o CMD para crear una carpeta de proyecto. Una vez allí:
dotnet nuevo
Esto creará algunos archivos: Programa.cs
y proyecto.json
.

A continuación, para obtener las dependencias enumeradas en proyecto.json
ejecuta otro comando:
restaurar dotnet
Puede que ahora note un proyecto.lock.json
archivo. Esto es generado por NuGet para averiguar el gráfico de dependencias. Usted no necesita confirmar esto a su repositorio de código fuente, y lo he omitido del código fuente para mi ejemplo.
Ahora, voy a abrir esta carpeta en Visual Studio Code ejecutando:
código .
En este punto, el proyecto está listo para ejecutarse. Puede volver a Powershell/CMD si lo desea, o puede utilizar Ctrl+` para utilizar el Terminal integrado dentro de VSC. Para ejecutar el programa:
ejecutar dotnet
Si lo ejecutas ahora, obtendrás un "Hola Mundo". Vamos a añadir algo de Couchbase a este proyecto.Empieza con Ctrl+Py escribe ">nuget" hasta que aparezca "Añadir nuevo paquete". Introduce un término de búsqueda, como "couchbase". "CouchbaseNetClient" debería aparecer en la lista. Selecciónalo, y entonces deberías poder seleccionar una versión.

Actualmente, para .NET Core, tendrá que seleccionar 2.4.0-dp2, ya que la compatibilidad con .NET Core es todavía una "vista previa para desarrolladores".
Una vez que hayas añadido esto a tu proyecto, trabajar con el SDK de .NET Core debería resultarte familiar si has utilizado el SDK de .NET. Dentro del Principal
a continuación se explica cómo conectarse a un clúster y configurar un bucket:
1 2 3 4 5 |
// conectarse a un cluster, obtener un bucket ClusterHelper.Inicializar(nuevo ClientConfiguration { Servidores = nuevo Lista { nuevo Uri("couchbase://localhost")} }); var cubo = ClusterHelper.GetBucket("por defecto"); |
A continuación, voy a insertar un documento "factura de la luz" utilizando el objeto cubo. Nótese que estoy usando el método Async. De acuerdo con la entrada del blog de Jeff, la API síncrona puede estar desapareciendo, así que estoy tratando de acostumbrarme a la API asíncrona. Estoy utilizando Tarea.WaitAll
por lo que se sigue ejecutando de forma sincrónica para los fines de esta aplicación de consola de ejemplo.
1 2 3 4 5 6 7 8 9 10 11 12 |
// insertar un documento con algunos valores aleatorios var documento = nuevo Documento { Id = Guía.NuevaGuid().ToString(), Contenido = nuevo { invoiceNumber = Ruta.GetRandomFileName(), importeDebido = nuevo Al azar().Siguiente(10,300), tipo = "factura eléctrica" } }; Tarea.WaitAll(cubo.InsertAsync(documento)); // espera a que termine el método async Consola.WriteLine("Nueva factura eléctrica creada".); Consola.WriteLine(); |
A continuación, ejecuto una consulta N1QL parametrizada con Coherencia de RequestPlus para listar todas las facturas de electricidad.
1 2 3 4 5 |
// obtener todas las facturas de electricidad con N1QL y listarlas var consulta = Couchbase.N1QL.Solicitud de consulta.Cree("SELECT b.* FROM `default` b WHERE type = $1"); consulta.AddPositionalParameter("factura eléctrica"); consulta.Consistencia de escaneado(Consistencia de escaneado.SolicitarPlus); var resultado = cubo.QueryAsync(consulta).Resultado; // llamando a QueryAsync sincrónicamente |
De nuevo, esto es usando la API Async, pero como estoy llamando a .resultado
es funcionalmente síncrono. Por último, en función de los resultados de la consulta N1QL, estoy ya sea la salida de información de error o estoy bucle a través de los resultados y escribirlos en la consola.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Consola.WriteLine("Éxito: " + resultado.Éxito); si(!resultado.Éxito) { Consola.WriteLine("Mensaje: " + resultado.Mensaje); Consola.WriteLine("Excepción: " + resultado.Excepción?.GetType().Nombre); Consola.WriteLine("Mensaje de Excepción: " + resultado?.Excepción?.Mensaje); resultado.Errores.Para cada(e => Consola.WriteLine("Error: " + e?.Mensaje)); devolver; } Consola.WriteLine(); Consola.WriteLine("Facturas:"); Consola.WriteLine("------"); foreach(var bill en resultado.Filas) { Consola.WriteLine($"{bill.invoiceNumber} - {bill.amountDue.ToString("C")}"); } |
Cuando ejecute este programa, creará un nuevo documento (cada vez) y listará todos los documentos que ha creado acumulativamente.

Nota: si estás teniendo problemas para empezar con Couchbase Server, o estás recibiendo errores, especialmente en lo que respecta a la indexación N1QL, es posible que desees revisar algunas de mis entradas del blog "Getting Started": Couchbase con Windows Parte 1 y Couchbase con Windows Parte 2 en particular.
¿Cuál es la diferencia?
En la mayoría de los casos, es muy parecido a trabajar con Visual Studio y .NET completos. Visual Studio Code no es tan completo, todavía, pero ya tiene una gran biblioteca de extensiones. Para los desarrolladores de Couchbase, trabajar con el SDK de .NET Core es prácticamente idéntico.
Una cosa que puede tomar algún tiempo para acostumbrarse es la falta de ReSharper. No sé si ReSharper llegará a VSC (JetBrains tiene su propio IDE ligero para C# llamado Rider). Tengo la costumbre de utilizar Alt+Intro añadir utilizando
y ese mismo atajo de teclado no funciona en VSC (por defecto). Las bombillas de refactorización siguen apareciendo, y aquí están los espacios de nombres para el registro:
1 2 3 4 5 6 7 |
utilizando Sistema; utilizando Sistema.Colecciones.Genérico; utilizando Sistema.IO; utilizando Sistema.Enhebrado.Tareas; utilizando Couchbase; utilizando Couchbase.Configuración.Cliente; utilizando Couchbase.N1QL; |
También es un poco extraño crear un proyecto con dotnet nuevo
en lugar de Archivo→Nuevo, pero es algo a lo que me puedo acostumbrar.
Resumen
Incluso si no planeas escribir código .NET Core todavía, deberías echarle un vistazo a Visual Studio Code. Es un gran editor de texto, entre otras cosas. Si actualmente estás escribiendo .NET con Couchbase, la parte de Couchbase de tu transición a .NET Core debería ser indolora (tu kilometraje puede variar al acostumbrarte a las nuevas herramientas de .NET Core).
¿Qué te gusta o no de VSC y .NET Core? Deja un comentario a continuación o házmelo saber en Twitter. Soy @mgroves. Si tienes algún problema con .NET, .NET Core o Couchbase Server, estoy aquí para ayudarte.