AIDE .NET

LiteDB .NET (Comment ça marche pour les développeurs)

Publié août 13, 2024
Partager:

Introduction

LiteDB est une base de données documentaire .NET intégrée, simple, rapide et légère. LiteDB .NET a été inspiré par la base de données MongoDB et son API est très similaire à l'API .NET officielle de MongoDB. LiteDB est une base de données sans serveur qui fonctionne bien pour les petits projets et les applications mobiles.

Cet article vous fournira des instructions précises sur l'utilisation des capacités de LiteDB dans vos projets. Nous introduisons également l'utilisation d'IronPDF, une bibliothèque .NET faite par IronSoftware, pour générer et manipuler des PDF et comment vous pouvez l'utiliser pour sortir le contenu d'une base de données LiteDB en tant que PDF pour la visualisation et le partage.

Caractéristiques principales de LiteDB

  1. Base de données intégrée: Pas besoin d'un serveur séparé. LiteDB fonctionne dans le processus de votre application.

  2. Fichier de données unique: Vous pouvez stocker toutes vos données dans une base de données à fichier unique, ce qui simplifie le déploiement et la sauvegarde.

  3. Format BSON: Utilise le format BSON pour le stockage, ce qui garantit des opérations de lecture et d'écriture rapides.

  4. Prise en charge de LINQ: Prise en charge complète de LINQ pour l'interrogation, ce qui la rend intuitive pour les développeurs .NET.

  5. Transactions ACID: Garantit l'intégrité des données grâce à la prise en charge des transactions ACID.

  6. Cross-Platform: Fonctionne sous Windows, Linux et macOS.

Mise en place de LiteDB dans les projets .NET

Ouvrez votre projet dans Visual Studio. Ensuite, dans l'explorateur de solutions, faites un clic droit sur votre projet et choisissez "Gérer les paquets NuGet" Recherchez LiteDB et installez-le pour incorporer cette solution de base de données dans votre projet sans effort.

Vous pouvez également l'installer à l'aide de la console du gestionnaire de paquets. Pour installer LiteDB dans la console du gestionnaire de paquets NuGet, utilisez la commande suivante :

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

Démarrer avec LiteDB

Une fois installé, vous pouvez commencer à utiliser LiteDB dans votre application. Voyons quelques exemples pour illustrer son utilisation.

Exemple 1 : Création et insertion de données

Tout d'abord, créons une simple classe de produit pour représenter nos données :

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#

Ensuite, nous allons créer une base de données et y insérer des produits :

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#

Code Description

Le code initialise une connexion à une base de données LiteDB nommée "MyData.db" et récupère une collection appelée "produits". Il crée ensuite un tableau d'objets Produit avec diverses propriétés, telles que l'ID, le nom et le prix. Chaque produit du tableau est inséré dans la collection "produits" de la base de données. Après avoir inséré avec succès tous les produits, un message de confirmation s'affiche sur la console.

La sortie est la suivante :

LiteDB .NET(Comment cela fonctionne pour les développeurs) : Figure 1 - Sortie de la console du code précédent

Exemple : Rationalisation de la gestion des données des utilisateurs

Imaginez que vous développiez une application mobile qui gère les comptes d'utilisateurs. Chaque utilisateur dispose d'un profil contenant son nom, son adresse électronique, ses préférences(stocké sous forme d'objet JSON)et une liste d'articles préférés. Voici comment LiteDb.NET peut simplifier votre stockage de données :

Ce code définit une classe User pour représenter les données de l'utilisateur et une classe UserManager pour gérer les opérations de l'utilisateur dans une base de données 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#

Cette mise en œuvre exploite efficacement les capacités de LiteDb.NET pour la gestion des données des utilisateurs. La classe User stocke les informations relatives aux utilisateurs, tandis que la classe UserManager fournit des méthodes permettant d'enregistrer, de récupérer, de mettre à jour et de supprimer des utilisateurs dans la base de données.

LiteDB, base de données NoSQL intégrée pour .NET

LiteDB est parfait pour les applications de petite et moyenne taille qui ne nécessitent pas de concurrence de la part de l'utilisateur. Par exemple, elle est idéale pour une application de console personnelle dans laquelle vous souhaitez stocker des données de manière simple et rapide. Développé uniquement en C#, il est léger, occupe moins de 450 Ko et ne s'appuie pas sur des dépendances externes.

Quelques points supplémentaires, qui sont énumérés sur leurPage GitHub:

  1. Magasin de documents NoSQL sans serveur

  2. API simple, similaire à MongoDB

  3. Sécurité des fils

  4. Écrit entièrement en C#, LiteDB est compatible avec .NET 4.5, NETStandard 1.3/2.0, emballé dans un seul fichier DLL qui occupe moins de 450KB.

  5. ACID avec prise en charge complète des transactions

  6. Récupération des données après un échec d'écriture(Fichier journal WAL)

  7. Cryptage des fichiers de données à l'aide de DES(AES) cryptographie

  8. Vous pouvez facilement mapper vos vieux objets CLR(POCO) vers BsonDocument en utilisant soit des attributs, soit l'API fluent mapper fournie par LiteDB.

  9. Stocker des fichiers et des données en continu(comme GridFS dans MongoDB)

    1. Stockage d'un seul fichier de données(comme SQLite)
  10. Indexation des champs du document pour une recherche rapide

    1. Prise en charge des requêtes LINQ
  11. Commandes de type SQL pour accéder aux données et les transformer

    1. LiteDB Studio - Interface utilisateur agréable pour l'accès aux données
  12. Open source et gratuit pour tous - y compris pour un usage commercial

Introduction à IronPDF : Une C&num ; Bibliothèque PDF

LiteDB .NET(Comment ça marche pour les développeurs) : Figure 2 - Page web d'IronPDF

IronPDFc#, une bibliothèque PDF de premier plan, facilite la mise en place d'un système de gestion des PDF en C#création,éditionetmanipulation des PDF dans les projets .NET. Il offre une API complète pour des tâches telles queHTML à PDF la conversion, la génération de PDF dynamiques et l'extraction de données. L'utilisation d'un moteur .NET Chromium, assure un rendu précis du HTML dans les fichiers PDF, répondant aux divers besoins des projets à travers .NET Core, .NET Standard, et .NET Framework. IronPDF garantit la précision, la simplicité et l'efficacité de la génération de PDF à partir de contenu HTML, avec une prise en charge des applications Web, de bureau et de console,

Installation de la bibliothèque IronPDF

Pour lancer IronPDF dans votre projet, installez la bibliothèque via le gestionnaire de paquets NuGet dans Visual Studio. Il vous suffit ensuite de suivre les étapes suivantes :

  1. Ouvrez Visual Studio et accédez à l'explorateur de solutions.

  2. Faites un clic droit sur Dependencies et sélectionnez l'option "Manage NuGet Packages".

  3. Choisissez l'onglet "Parcourir" et recherchez "IronPDF"

  4. Sélectionnez l'IronPDF et cliquez sur "Installer"

    Sinon, dans Visual Studio, vous pouvez utiliser la console du gestionnaire de paquets pour installer la bibliothèque en exécutant la commande suivante :

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

Exemple d'utilisation d'IronPDF avec LiteDB

Voici un exemple de code simple illustrant l'utilisation d'IronPDF pour générer un PDF à partir d'un contenu HTML, en utilisant l'instruction "using" pour garantir une élimination correcte des ressources. Ici, nous combinons les fonctionnalités de LiteDB et d'IronPDF en montrant comment vous pouvez sortir les données d'une LiteDB sous forme de PDF à des fins de visualisation :

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#

Le code se connecte à une base de données LiteDB, ajoute une liste de produits, récupère tous les produits et génère une représentation HTML de la liste de produits. Ce contenu HTML est ensuite utilisé pour créer un fichier PDF à l'aide de la bibliothèque IronPDF. Le processus comprend des méthodes pour ajouter des produits, les récupérer, convertir la liste des produits en HTML et générer le PDF.

Sortie

LiteDB .NET(Comment cela fonctionne pour les développeurs) : Figure 3 - Sortie de la console du code précédent

Sortie d'un fichier PDF

LiteDB .NET(Comment ça marche pour les développeurs) : Figure 4 - PDF produit à partir du code précédent

Conclusion

LiteDB présente aux développeurs C# une solution de base de données documentaire embarquée, légère et sans serveur, idéale pour les petits projets et les applications mobiles, bénéficiant de fonctionnalités telles que l'API inspirée de MongoDB, les bases de données embarquées et la compatibilité multiplateforme.

Simultanément,IronPDF s'impose comme une bibliothèque PDF C# de premier plan, simplifiant la génération et la manipulation de PDF au sein des projets .NET grâce à sa conversion HTML en PDF et à l'intégration de NuGet. LiteDB et IronPDF offrent tous deux des outils précieux aux développeurs, LiteDB excellant dans la gestion des bases de données et IronPDF dans la gestion des PDF.

IronPDF fournitun essai gratuit pour exploiter tout son potentiel en matière de génération et de manipulation de PDF.

< PRÉCÉDENT
RestEase C# (Comment ça marche pour les développeurs)
SUIVANT >
FireSharp C# (Comment ça marche pour les développeurs)