AIDE .NET

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

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 de IronPDF, une bibliothèque .NET créée par Iron Software, pour générer et manipuler des PDF, ainsi que la manière dont vous pouvez l'utiliser pour exporter le contenu d'une base de données LiteDB en tant que PDF pour visualisation et 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, simplifiant ainsi le déploiement et la sauvegarde.

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

  4. Prise en charge de LINQ : Prend en charge pleinement LINQ pour les requêtes, le rendant intuitif pour les développeurs .NET.

  5. Transactions ACID : Assure l'intégrité des données avec le support des transactions ACID.

  6. Multiplateforme : Fonctionne sur 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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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 a un profil contenant leur nom, adresse email, préférences (stockées sous forme d'objet JSON) et une liste d'articles favoris. 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
$vbLabelText   $csharpLabel

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 listé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 de données après une défaillance d'écriture (fichier journal WAL)

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

  8. Vous pouvez facilement mapper vos classes Plain Old CLR Objects (POCO) à BsonDocument en utilisant soit des attributs, soit l'API de mappage fluide fournie par LiteDB.

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

    1. Stockage de fichiers de données uniques (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 – Belle interface utilisateur 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 cela fonctionne pour les développeurs) : Figure 2 - Page web IronPDF

IronPDF, une bibliothèque PDF C# de premier plan, facilite la création,modification et manipulation transparentes de fichiers PDF dans les projets .NET. Il propose une API complète pour des tâches telles que la conversion HTML en PDF, la génération dynamique de PDF 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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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 cela fonctionne pour les développeurs) : Figure 4 - PDF généré à 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 émerge comme une bibliothèque C# PDF de premier plan, simplifiant la génération et la manipulation de PDF au sein des projets .NET avec sa conversion HTML en PDF et son intégration 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 propose un essai gratuit pour débloquer tout son potentiel dans la génération et la manipulation de PDF.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.
< PRÉCÉDENT
RestEase C# (Comment ça marche pour les développeurs)
SUIVANT >
FireSharp C# (Comment ça marche pour les développeurs)