.NET-HILFE

LiteDB .NET (Wie es für Entwickler funktioniert)

Veröffentlicht 13. August 2024
Teilen Sie:

Einführung

LiteDB ist eine einfache, schnelle und leichtgewichtige eingebettete .NET-Dokumentendatenbank. LiteDB .NET wurde von der Datenbank MongoDB inspiriert und seine API ist der offiziellen .NET-API von MongoDB sehr ähnlich. LiteDB ist eine serverlose Datenbank, die sich gut für kleine Projekte und mobile Anwendungen eignet.

In diesem Artikel finden Sie eine genaue Anleitung, wie Sie die Möglichkeiten von LiteDB in Ihren Projekten nutzen können. Außerdem stellen wir Ihnen IronPDF vor, eine .NET-Bibliothek von IronSoftware zur Erzeugung und Bearbeitung von PDF-Dateien, und zeigen Ihnen, wie Sie damit den Inhalt einer LiteDB-Datenbank als PDF-Datei ausgeben können, um sie anzuzeigen und weiterzugeben.

Hauptmerkmale von LiteDB

  1. Eingebettete Datenbank: Kein separater Server erforderlich. LiteDB läuft innerhalb des Prozesses Ihrer Anwendung.

  2. Eine einzige Datendatei: Sie können alle Ihre Daten in einer einzigen Dateidatenbank speichern, was die Bereitstellung und Sicherung vereinfacht.

  3. BSON-Format: Verwendet das BSON-Format für die Speicherung, was schnelle Lese- und Schreibvorgänge gewährleistet.

  4. LINQ-Unterstützung: Vollständige Unterstützung von LINQ für Abfragen, so dass es für .NET-Entwickler intuitiv ist.

  5. ACID-Transaktionen: Gewährleistet die Datenintegrität durch Unterstützung von ACID-Transaktionen.

  6. Plattformübergreifend: Funktioniert unter Windows, Linux und macOS.

Einrichten von LiteDB in .NET-Projekten

Öffnen Sie Ihr Projekt in Visual Studio. Klicken Sie dann im Solution Explorer mit der rechten Maustaste auf Ihr Projekt und wählen Sie "NuGet-Pakete verwalten" Suchen Sie nach LiteDB und installieren Sie es, um diese Datenbanklösung mühelos in Ihr Projekt einzubinden.

Alternativ können Sie es auch über die Paketmanager-Konsole installieren. Um LiteDB über die NuGet Package Manager Console zu installieren, verwenden Sie den folgenden Befehl:

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

Erste Schritte mit LiteDB

Nach der Installation können Sie LiteDB in Ihrer Anwendung verwenden. Gehen wir einige Beispiele durch, um seine Verwendung zu veranschaulichen.

Beispiel 1: Erstellen und Einfügen von Daten

Lassen Sie uns zunächst eine einfache Produktklasse erstellen, um unsere Daten darzustellen:

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#

Als Nächstes werden wir eine Datenbank erstellen und einige Produkte einfügen:

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 Beschreibung

Der Code initialisiert eine Verbindung zu einer LiteDB-Datenbank namens "MyData.db" und ruft eine Sammlung namens "products" ab. Anschließend wird ein Array von Produktobjekten mit verschiedenen Eigenschaften, wie ID, Name und Preis, erstellt. Jedes Produkt im Array wird in die Sammlung "Produkte" in der Datenbank eingefügt. Nachdem alle Produkte erfolgreich eingefügt wurden, wird eine Bestätigungsmeldung auf der Konsole ausgegeben.

Die Ausgabe ist wie folgt:

LiteDB .NET (Wie es für Entwickler funktioniert): Abbildung 1 - Konsolenausgabe des vorherigen Codes

Beispiel: Rationalisierung der Benutzerdatenverwaltung

Stellen Sie sich vor, Sie entwickeln eine mobile Anwendung zur Verwaltung von Benutzerkonten. Jeder Benutzer hat ein Profil, das seinen Namen, seine E-Mail-Adresse, seine Präferenzen (als JSON-Objekt gespeichert)und eine Liste mit Lieblingsstücken. Hier erfahren Sie, wie LiteDb.NET Ihre Datenspeicherung vereinfachen kann:

Dieser Code definiert eine User-Klasse zur Darstellung von Benutzerdaten und eine UserManager-Klasse zur Verwaltung von Benutzeroperationen in einer LiteDb.NET-Datenbank

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#

Bei dieser Implementierung werden die Möglichkeiten von LiteDb.NET für die Verwaltung von Benutzerdaten effektiv genutzt. Die Klasse User speichert Benutzerinformationen, während die Klasse UserManager Methoden zum Speichern, Abrufen, Aktualisieren und Löschen von Benutzern in der Datenbank bereitstellt.

LiteDB, eingebettete NoSQL-Datenbank für .NET

LiteDB eignet sich perfekt für kleine bis mittelgroße Anwendungen ohne Anforderungen an die Gleichzeitigkeit der Benutzer. Sie eignet sich beispielsweise hervorragend für eine persönliche Konsolenanwendung, in der Sie Daten einfach und schnell speichern möchten. Da es ausschließlich in C# entwickelt wurde, ist es leichtgewichtig, benötigt weniger als 450 KB und ist nicht von externen Abhängigkeiten abhängig.

Einige weitere Punkte, die auf ihrer Website aufgeführt sindGitHub-Seite:

  1. Serverloser NoSQL-Dokumentenspeicher

  2. Einfache API, ähnlich wie bei MongoDB

  3. Thread-sicher

  4. LiteDB ist vollständig in C# geschrieben und kompatibel mit .NET 4.5, NETStandard 1.3/2.0, verpackt in einer einzigen DLL-Datei, die weniger als 450 KB belegt.

  5. ACID mit vollständiger Transaktionsunterstützung

  6. Datenwiederherstellung nach einem Schreibfehler (WAL-Protokolldatei)

  7. Verschlüsselung von Dateien mit DES (AES) kryptographie

  8. Sie können Ihre Plain Old CLR-Objekte einfach abbilden (POCO) klassen zu BsonDocument entweder mit Hilfe von Attributen oder der von LiteDB bereitgestellten fluent mapper API.

  9. Dateien und Datenströme speichern (wie GridFS in MongoDB)

    1. Speicherung von Einzeldateien (wie SQLite)
  10. Dokumentfelder für die schnelle Suche indizieren

    1. LINQ-Unterstützung für Abfragen
  11. SQL-ähnliche Befehle für den Zugriff/die Umwandlung von Daten

    1. LiteDB Studio - Schöne Benutzeroberfläche für den Datenzugriff
  12. Open Source und kostenlos für alle - auch für die kommerzielle Nutzung

Einführung in IronPDF: Eine C# PDF-Bibliothek

LiteDB .NET (Wie es für Entwickler funktioniert): Abbildung 2 - IronPDF-Webseite

IronPDFeine führende C# PDF-Bibliothek, erleichtert die nahtlose Erstellung,*Redaktionund *Manipulation von PDFs in .NET-Projekten. Es bietet eine umfassende API für Aufgaben wie HTML zu PDF konvertierung, dynamische PDF-Erzeugung und Datenextraktion. Die .NET-Chromium-Engine sorgt für ein präzises Rendering von HTML in PDF-Dateien und erfüllt die Anforderungen verschiedener Projekte in .NET Core, .NET Standard und .NET Framework. IronPDF garantiert Präzision, Einfachheit und Effizienz bei der PDF-Erzeugung aus HTML-Inhalten mit Unterstützung für Web-, Desktop- und Konsolenanwendungen,

Installation der IronPDF-Bibliothek

Um IronPDF in Ihrem Projekt zu initiieren, installieren Sie die Bibliothek über den NuGet Package Manager in Visual Studio. Dann folgen Sie einfach diesen einfachen Schritten:

  1. Öffnen Sie Visual Studio und navigieren Sie zu Solution Explorer.

  2. Klicken Sie mit der rechten Maustaste auf "Abhängigkeiten" und wählen Sie die Option "NuGet-Pakete verwalten".

  3. Wählen Sie die Registerkarte "Durchsuchen" und suchen Sie nach "IronPDF"

  4. Wählen Sie das IronPDF und klicken Sie auf "Installieren"

    Alternativ können Sie in Visual Studio die Paketmanager-Konsole verwenden, um die Bibliothek zu installieren, indem Sie den folgenden Befehl ausführen:

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

Beispiel für die Verwendung von IronPDF mit LiteDB

Hier ist ein einfaches Code-Beispiel, das die Verwendung von IronPDF zur Generierung einer PDF-Datei aus HTML-Inhalten veranschaulicht, wobei die "using"-Anweisung verwendet wird, um die ordnungsgemäße Entsorgung von Ressourcen sicherzustellen. Hier kombinieren wir die Funktionalität von LiteDB und IronPDF, indem wir zeigen, wie Sie die Daten in einer LiteDB als PDF-Datei ausgeben können, um sie zu betrachten:

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#

Der Code stellt eine Verbindung zu einer LiteDB-Datenbank her, fügt eine Liste von Produkten hinzu, ruft alle Produkte ab und erzeugt eine HTML-Darstellung der Produktliste. Dieser HTML-Inhalt wird dann zur Erstellung einer PDF-Datei mit der IronPDF-Bibliothek verwendet. Der Prozess umfasst Methoden zum Hinzufügen von Produkten, zum Abrufen von Produkten, zum Konvertieren der Produktliste in HTML und zum Erzeugen der PDF-Datei.

Ausgabe

LiteDB .NET (Wie es für Entwickler funktioniert): Abbildung 3 - Konsolenausgabe des vorherigen Codes

PDF-Datei-Ausgabe

LiteDB .NET (Wie es für Entwickler funktioniert): Abbildung 4 - Ausgegebene PDF-Datei aus dem vorherigen Code

Schlussfolgerung

LiteDB bietet C#-Entwicklern eine leichtgewichtige, serverlose eingebettete Dokumentendatenbanklösung, die sich ideal für kleine Projekte und mobile Anwendungen eignet und Funktionen wie eine von MongoDB inspirierte API, eingebettete Datenbanken und plattformübergreifende Kompatibilität bietet.

Gleichzeitige, IronPDF entwickelt sich zur führenden C#-PDF-Bibliothek, die mit ihrer HTML-zu-PDF-Konvertierung und NuGet-Integration die PDF-Erzeugung und -Bearbeitung in .NET-Projekten vereinfacht. Sowohl LiteDB als auch IronPDF bieten wertvolle Werkzeuge für Entwickler, wobei sich LiteDB durch die Datenbankverwaltung und IronPDF durch die PDF-Verarbeitung auszeichnet.

IronPDF bietet ein kostenloser Test um sein volles Potenzial bei der PDF-Erstellung und -Bearbeitung auszuschöpfen.

< PREVIOUS
RestEase C# (Wie es für Entwickler funktioniert)
NÄCHSTES >
FireSharp C# (Wie es für Entwickler funktioniert)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >