AYUDA .NET

LiteDB .NET (Cómo funciona para desarrolladores)

Actualizado agosto 13, 2024
Compartir:

Introducción

LiteDB es una base de datos de documentos .NET sencilla, rápida y ligera. LiteDB .NET se inspira en la base de datos MongoDB y su API es muy similar a la API .NET oficial de MongoDB. LiteDB es una base de datos sin servidor que funciona bien para proyectos pequeños y aplicaciones móviles.

Este artículo le proporcionará instrucciones precisas para utilizar las capacidades de LiteDB en sus proyectos. También introducimos el uso de IronPDF, una librería .NET hecha por IronSoftware, para generar y manipular PDFs y cómo puede emplearla para mostrar el contenido de una base de datos LiteDB como PDF para ver y compartir.

Características principales de LiteDB

  1. Base de datos integrada: No es necesario un servidor independiente. LiteDB se ejecuta dentro del proceso de tu aplicación.

  2. Fichero de datos único: Puede almacenar en un único fichero de base de datos, todos sus datos, simplificando la implantación y las copias de seguridad.

  3. Formato BSON: Utiliza el formato BSON para el almacenamiento, garantizando operaciones rápidas de lectura y escritura.

  4. Compatibilidad con LINQ: Compatibilidad total con LINQ para realizar consultas, lo que resulta intuitivo para los desarrolladores .NET.

  5. Transacciones ACID: Garantiza la integridad de los datos con soporte para transacciones ACID.

  6. Multiplataforma: Funciona en Windows, Linux y macOS.

Configuración de LiteDB en proyectos .NET

Abra su proyecto en Visual Studio. A continuación, en el Explorador de soluciones, haz clic con el botón derecho en tu proyecto y elige "Administrar paquetes NuGet" Busca LiteDB e instálalo para incorporar esta solución de base de datos a tu proyecto sin esfuerzo.

Alternativamente, puede instalarlo utilizando la Consola del Gestor de Paquetes. Para instalar LiteDB en la consola del gestor de paquetes NuGet, utilice el siguiente comando:

Install-Package LiteDB
Install-Package LiteDB
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Primeros pasos con LiteDB

Una vez instalado, puede empezar a utilizar LiteDB en su aplicación. Veamos algunos ejemplos para ilustrar su uso.

Ejemplo 1: Creación e inserción de datos

En primer lugar, vamos a crear una simple clase Producto para representar nuestros datos:

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

A continuación, crearemos una base de datos e insertaremos algunos productos:

using LiteDB;
using System;
class Program
{
   static void Main()
{
    using (var db = new LiteDatabase(@"MyData.db"))
    {
        var products = db.GetCollection<Product>("products");
        var productList = new[]
        {
            new Product { Id = 201, Name = "Apple", Price = 0.99m },
            new Product { Id = 202, Name = "Banana", Price = 0.59m },
            new Product { Id = 203, Name = "Orange", Price = 0.79m },
            new Product { Id = 204, Name = "Grape", Price = 2.99m },
            new Product { Id = 205, Name = "Watermelon", Price = 4.99m }
        };
        foreach (var product in productList)
        {
            products.Insert(product);
        }
        Console.WriteLine("Product inserted successfully.");
    }
}
}
using LiteDB;
using System;
class Program
{
   static void Main()
{
    using (var db = new LiteDatabase(@"MyData.db"))
    {
        var products = db.GetCollection<Product>("products");
        var productList = new[]
        {
            new Product { Id = 201, Name = "Apple", Price = 0.99m },
            new Product { Id = 202, Name = "Banana", Price = 0.59m },
            new Product { Id = 203, Name = "Orange", Price = 0.79m },
            new Product { Id = 204, Name = "Grape", Price = 2.99m },
            new Product { Id = 205, Name = "Watermelon", Price = 4.99m }
        };
        foreach (var product in productList)
        {
            products.Insert(product);
        }
        Console.WriteLine("Product inserted successfully.");
    }
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Código Descripción

El código inicializa una conexión a una base de datos LiteDB llamada "MisDatos.db" y recupera una colección llamada "productos". A continuación, crea una matriz de objetos Producto con varias propiedades, como ID, Nombre y Precio. Cada producto de la matriz se inserta en la colección "productos" de la base de datos. Después de insertar correctamente todos los productos, imprime un mensaje de confirmación en la consola.

La salida es como:

LiteDB .NET (Cómo funciona para desarrolladores): Figura 1 - Salida de la consola del código anterior

Ejemplo: Racionalización de la gestión de datos de usuario

Imagina que estás desarrollando una aplicación móvil que gestiona cuentas de usuario. Cada usuario tiene un perfil que contiene su nombre, dirección de correo electrónico, preferencias (almacenado como objeto JSON)y una lista de artículos favoritos. A continuación le mostramos cómo LiteDb.NET puede simplificar el almacenamiento de sus datos:

Este código define una clase User para representar los datos del usuario y una clase UserManager para gestionar las operaciones del usuario en una base de datos LiteDb.NET

using LiteDB;
public class User
{
    [BsonId]
    public string Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public Dictionary<string, string> Preferences { get; set; }
    public List<string> FavoriteItems { get; set; }
} 
public class UserManager
{
    private readonly LiteDatabase db;
    public UserManager(string connectionString)
    {
       db = new LiteDatabase(connectionString);
    }
    public void SaveUser(User user)
    {
        var collection = db.GetCollection<User>("users");
        collection.Insert(user);
    }
    public User GetUser(string userId)
    {
        var collection = db.GetCollection<User>("users");
        return collection.FindById(userId);
    }
    public void UpdateUser(User user)
    {
        var collection = db.GetCollection<User>("users");
        collection.Update(user);
    }
    public void DeleteUser(string userId)
    {
        var collection = db.GetCollection<User>("users");
        collection.Delete(userId);
    }
}
using LiteDB;
public class User
{
    [BsonId]
    public string Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public Dictionary<string, string> Preferences { get; set; }
    public List<string> FavoriteItems { get; set; }
} 
public class UserManager
{
    private readonly LiteDatabase db;
    public UserManager(string connectionString)
    {
       db = new LiteDatabase(connectionString);
    }
    public void SaveUser(User user)
    {
        var collection = db.GetCollection<User>("users");
        collection.Insert(user);
    }
    public User GetUser(string userId)
    {
        var collection = db.GetCollection<User>("users");
        return collection.FindById(userId);
    }
    public void UpdateUser(User user)
    {
        var collection = db.GetCollection<User>("users");
        collection.Update(user);
    }
    public void DeleteUser(string userId)
    {
        var collection = db.GetCollection<User>("users");
        collection.Delete(userId);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Esta implementación aprovecha eficazmente las capacidades de LiteDb.NET para la gestión de datos de usuario. La clase User almacena la información de los usuarios, mientras que la clase UserManager proporciona métodos para guardar, recuperar, actualizar y eliminar usuarios dentro de la base de datos.

LiteDB, base de datos NoSQL integrada para .NET

LiteDB es perfecto para aplicaciones pequeñas y medianas sin necesidades de concurrencia de usuarios. Por ejemplo, es ideal para una aplicación de consola personal en la que quieras almacenar datos de forma sencilla y rápida. Desarrollado exclusivamente en C#, es ligero, ocupa menos de 450 KB y no depende de dependencias externas.

Algunos puntos más, que figuran en suPágina de GitHub:

  1. Almacén de documentos NoSQL sin servidor

  2. API sencilla, similar a MongoDB

  3. Hilo seguro

  4. Escrito íntegramente en C#, LiteDB es compatible con .NET 4.5, NETStandard 1.3/2.0, empaquetado en un único archivo DLL que ocupa menos de 450KB.

  5. ACID con soporte completo de transacciones

  6. Recuperación de datos tras un fallo de escritura (Archivo de registro WAL)

  7. Cifrado de archivos de datos mediante DES (AES) criptografía

  8. Puedes mapear fácilmente tus objetos CLR ordinarios (POCO) a BsonDocument utilizando atributos o la API de mapeo fluido proporcionada por LiteDB.

  9. Almacenar archivos y transmitir datos (como GridFS en MongoDB)

    1. Almacenamiento de un único archivo de datos (como SQLite)
  10. Indexe los campos del documento para una búsqueda rápida

    1. Soporte LINQ para consultas
  11. Comandos similares a SQL para acceder a los datos y transformarlos

    1. LiteDB Studio - Buena interfaz de usuario para acceder a los datos
  12. Código abierto y gratuito para todos, incluido el uso comercial

Introducción a IronPDF: Una biblioteca C# PDF

LiteDB .NET (Cómo funciona para desarrolladores): Figura 2 - Página web de IronPDF

IronPDFuna biblioteca PDF de C# de primer nivel, facilita la creación de creación,editingy manipulación de PDF en proyectos .NET. Ofrece una API completa para tareas como De HTML a PDF conversión, generación dinámica de PDF y extracción de datos. Utilizando un motor .NET Chromium, garantiza una renderización precisa de HTML en archivos PDF, atendiendo a diversas necesidades de proyectos en .NET Core, .NET Standard y .NET Framework. IronPDF garantiza precisión, sencillez y eficacia en la generación de PDF a partir de contenido HTML con soporte para aplicaciones web, de escritorio y de consola,

Instalación de la biblioteca IronPDF

Para iniciar IronPDF en su proyecto, instale la biblioteca a través del gestor de paquetes NuGet dentro de Visual Studio. A continuación, siga estos sencillos pasos:

  1. Abra Visual Studio y vaya al Explorador de soluciones.

  2. Haga clic con el botón derecho del ratón en Dependencias y seleccione la opción "Gestionar paquetes NuGet".

  3. Elige la pestaña "Examinar" y busca "IronPdf".

  4. Seleccione IronPDF y haga clic en "Instalar".

    Alternativamente, dentro de Visual Studio, puede utilizar la consola del gestor de paquetes para instalar la biblioteca ejecutando el siguiente comando:

Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
VB   C#

Ejemplo de uso de IronPDF con LiteDB

A continuación se muestra un sencillo ejemplo de código que ilustra el uso de IronPDF para generar un PDF a partir de contenido HTML, empleando la sentencia 'using' para garantizar la correcta eliminación de recursos. Aquí combinamos las funcionalidades de LiteDB e IronPDF mostrando cómo se pueden mostrar los datos dentro de un LiteDB como un PDF para su visualización:

using DemoLiteDB1;
using LiteDB;
using System.Text;
class Program
{
    static void Main()
    {
        using (var db = new LiteDatabase(@"MyData.db"))
        {
            var products = db.GetCollection<Product>("products");
            var productList = new[]
            {
                new Product { Id = 101, Name = "Apple", Price = 0.99m },
                new Product { Id = 102, Name = "Banana", Price = 0.59m },
                new Product { Id = 103, Name = "Orange", Price = 0.79m },
                new Product { Id = 104, Name = "Grape", Price = 2.99m },
                new Product { Id = 105, Name = "Watermelon", Price = 4.99m }
            };
            foreach (var product in productList)
            {
                products.Insert(product);
            }
            Console.WriteLine("Product inserted successfully.");
            // Fetch all products from the database
            var allProducts = GetAllProducts(db);
            // Generate HTML content from the product list
            string htmlContent = GenerateHtml(allProducts);
            // Generate the PDF from the HTML content
            GeneratePDF(htmlContent);
            Console.WriteLine("PDF generated successfully.");
        }
    }
    public static List<Product> GetAllProducts(LiteDatabase db)
    {
        var products = db.GetCollection<Product>("products");
        return products.FindAll().ToList();
    }
    public static void GeneratePDF(string data)
    {
        IronPdf.License.LicenseKey = "Your-License-Key";
        Console.WriteLine("PDF Generating Started...");
        var renderer = new ChromePdfRenderer();
        Console.WriteLine("PDF Processing ....");
        var pdf = renderer.RenderHtmlAsPdf(data);
        string filePath = "Data.pdf";
        pdf.SaveAs(filePath);
        Console.WriteLine($"PDF Generation Completed, File Saved as {filePath}");
    }
    public static string GenerateHtml(List<Product> products)
    {
        StringBuilder htmlBuilder = new StringBuilder();
        htmlBuilder.Append("<html><head><style>table { width: 100%; border-collapse: collapse; } th, td { border: 1px solid black; padding: 8px; text-align: left; }</style></head><body>");
        htmlBuilder.Append("<h1>Product List</h1>");
        htmlBuilder.Append("<table><tr><th>ID</th><th>Name</th><th>Price</th></tr>");
        foreach (var product in products)
        {
            htmlBuilder.Append($"<tr><td>{product.Id}</td><td>{product.Name}</td><td>{product.Price:C}</td></tr>");
        }
        htmlBuilder.Append("</table></body></html>");
        return htmlBuilder.ToString();
    }
}
using DemoLiteDB1;
using LiteDB;
using System.Text;
class Program
{
    static void Main()
    {
        using (var db = new LiteDatabase(@"MyData.db"))
        {
            var products = db.GetCollection<Product>("products");
            var productList = new[]
            {
                new Product { Id = 101, Name = "Apple", Price = 0.99m },
                new Product { Id = 102, Name = "Banana", Price = 0.59m },
                new Product { Id = 103, Name = "Orange", Price = 0.79m },
                new Product { Id = 104, Name = "Grape", Price = 2.99m },
                new Product { Id = 105, Name = "Watermelon", Price = 4.99m }
            };
            foreach (var product in productList)
            {
                products.Insert(product);
            }
            Console.WriteLine("Product inserted successfully.");
            // Fetch all products from the database
            var allProducts = GetAllProducts(db);
            // Generate HTML content from the product list
            string htmlContent = GenerateHtml(allProducts);
            // Generate the PDF from the HTML content
            GeneratePDF(htmlContent);
            Console.WriteLine("PDF generated successfully.");
        }
    }
    public static List<Product> GetAllProducts(LiteDatabase db)
    {
        var products = db.GetCollection<Product>("products");
        return products.FindAll().ToList();
    }
    public static void GeneratePDF(string data)
    {
        IronPdf.License.LicenseKey = "Your-License-Key";
        Console.WriteLine("PDF Generating Started...");
        var renderer = new ChromePdfRenderer();
        Console.WriteLine("PDF Processing ....");
        var pdf = renderer.RenderHtmlAsPdf(data);
        string filePath = "Data.pdf";
        pdf.SaveAs(filePath);
        Console.WriteLine($"PDF Generation Completed, File Saved as {filePath}");
    }
    public static string GenerateHtml(List<Product> products)
    {
        StringBuilder htmlBuilder = new StringBuilder();
        htmlBuilder.Append("<html><head><style>table { width: 100%; border-collapse: collapse; } th, td { border: 1px solid black; padding: 8px; text-align: left; }</style></head><body>");
        htmlBuilder.Append("<h1>Product List</h1>");
        htmlBuilder.Append("<table><tr><th>ID</th><th>Name</th><th>Price</th></tr>");
        foreach (var product in products)
        {
            htmlBuilder.Append($"<tr><td>{product.Id}</td><td>{product.Name}</td><td>{product.Price:C}</td></tr>");
        }
        htmlBuilder.Append("</table></body></html>");
        return htmlBuilder.ToString();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

El código se conecta a una base de datos LiteDB, añade una lista de productos, recupera todos los productos y genera una representación HTML de la lista de productos. A continuación, este contenido HTML se utiliza para crear un archivo PDF mediante la biblioteca IronPDF. El proceso incluye métodos para añadir productos, recuperarlos, convertir la lista de productos a HTML y generar el PDF.

Salida

LiteDB .NET (Cómo funciona para desarrolladores): Figura 3 - Salida de la consola del código anterior

Salida de archivos PDF

LiteDB .NET (Cómo funciona para desarrolladores): Figura 4 - PDF resultante del código anterior

Conclusión

LiteDB presenta a los desarrolladores de C# una solución de base de datos de documentos incrustada, ligera y sin servidor, ideal para proyectos pequeños y aplicaciones móviles, que cuenta con características como API inspirada en MongoDB, bases de datos incrustadas y compatibilidad entre plataformas.

Simultáneamente, IronPDF emerge como la principal biblioteca PDF de C#, simplificando la generación y manipulación de PDF en proyectos .NET con su conversión de HTML a PDF y su integración con NuGet. Tanto LiteDB como IronPDF ofrecen valiosas herramientas para desarrolladores, destacando LiteDB en la gestión de bases de datos e IronPDF en el manejo de PDF.

IronPDF ofrece una prueba gratuita para aprovechar todo su potencial en la generación y manipulación de PDF.

< ANTERIOR
RestEase C# (Cómo funciona para desarrolladores)
SIGUIENTE >
FireSharp C# (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.9 acaba de salir

Descarga gratuita de NuGet Descargas totales: 10,516,730 View Licenses >