.NET-HILFE

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

Veröffentlicht 13. August 2024
Teilen Sie:

Einführung

Ein ausgewogenes Verhältnis zwischen Geschäftslogik, Datenzugriff und Gestaltung der Benutzeroberfläche ist für die Entwicklung von Unternehmensanwendungen heute von entscheidender Bedeutung. Die komponentenbasierte skalierbare logische Architektur (Component-based Scalable Logical Architecture, CSLA) ist ein beliebtes Softwareentwicklungs-Framework, das eine stabile, skalierbare Architektur für die Erstellung von verwaltbaren Geschäftsanwendungen bietet, um diesen Prozess zu rationalisieren. Codebasen können durch die Verwendung von folgenden Methoden überschaubarer und testbarer gemacht werden CSLA .NET um Entwickler bei der klaren Trennung von Geschäftslogik und Datenzugriff zu unterstützen.

Entwickler können Folgendes nutzen IronPDF zur Erstellung hochwertiger PDF-Dokumente und den strukturierten Ansatz von CSLA für die Verwaltung der Geschäftslogik durch die Kombination von CSLA .NET mit IronPDF. Anwendungen, die eine umfangreiche Datenpräsentation, eine automatisierte Dokumentenvorbereitung und eine dynamische Berichterstellung benötigen, können von dieser Kombination besonders profitieren. Unternehmen können polierte Papiere direkt von ihrem .NET anwendungendiese Schnittstelle ermöglicht es, die Datenkonsistenz zu gewährleisten und die Abläufe zu optimieren.

In diesem Tutorial werden wir die erfolgreiche Integration von CSLA mit IronPDF untersuchen, die nützlichen Funktionen hervorheben und einen detaillierten Prozess für die Umsetzung dieser Integration in einer C#-Anwendung anbieten. Diese Integration kann die Möglichkeiten Ihrer Anwendung erheblich erweitern und sie effektiver und vielseitiger machen, unabhängig davon, ob Sie einfache kommerzielle Anwendungen oder komplizierte Unternehmenslösungen erstellen.

Was ist CSLA .NET?

Rocky Lhotka hat die Open-Source-Software CSLA .NET (Komponentenbasierte skalierbare logische Architektur) framework, das Programmierern hilft, zuverlässige, erweiterbare und verwaltbare kommerzielle Anwendungen für die .NET-Plattform zu erstellen. Es fördert eine klare Aufteilung der Verantwortlichkeiten durch die Verwendung von Geschäftsobjekten, die die gesamte Geschäftslogik, die Validierungskriterien und die Berechtigungsprüfungen enthalten. Wartungsfreundlichkeit und Skalierbarkeit werden durch die Fähigkeit von CSLA verbessert, ein n-Tier-Design und eine abstrakte Datenzugriffslogik zu unterstützen, wodurch die Geschäftslogik über mehrere Ebenen hinweg eingesetzt werden kann.

CSLA .NET (Wie es für Entwickler funktioniert): Abbildung 1

Neben der Unterstützung von mobilen Objekten kann es auch mit einer Vielzahl von UI-Technologien, einschließlich Windows Forms, WPF, ASP.NET MVC und Blazor, verwendet werden, um eine reichhaltige Client- und effiziente serverseitige Verarbeitung von Webformularen zu ermöglichen. Die Entwicklung von reaktionsschnellen, effektiven und konsistenten Anwendungen auf Unternehmensebene wird durch diese Flexibilität erleichtert, die gewährleistet, dass Geschäftslogik über mehrere Präsentationsschichten hinweg zuverlässig wiederverwendet werden kann.

Geschäftsobjektmodell

Stellt sicher, dass Autorisierungsregeln, Geschäftsregeln und Validierungsregeln in der gesamten Anwendung einheitlich angewendet werden, indem Geschäftslogik in Geschäftsobjekten gekapselt wird.

Abstraktion des Datenzugriffs

Ermöglicht eine flexible Trennung von Datenzugriffslogik und Geschäftslogik, was die Wartbarkeit verbessert und den Wechsel zwischen Datenzugriffs- und Geschäftsschichttechnologien sowie das Testen vereinfacht.

Validierung und Autorisierung

Geschäftsregeln werden implementiert und ständig durchgesetzt, dank integrierter Funktionen für die Erstellung und Durchsetzung von Berechtigungsprüfungen und Validierungsregeln für Geschäftsobjekte, die sicherstellen, dass keine Regeln gebrochen werden.

N-Tier-Architektur

Unterstützt n-Tier-Designs, die die Skalierbarkeit verbessern und es ermöglichen, verteilte Anwendungen zu erstellen, indem die Geschäftslogik über mehrere Schichten oder Tiers verteilt wird (wie den Client, den Server und die Datenbank).

Unterstützung für mobile Objekte

Erleichtert die Erstellung mobiler Objekte, die zwischen dem Client und dem Server übertragen werden können, und unterstützt damit Situationen wie Rich-Client-Anwendungen und effektive serverseitige Verarbeitung, die Geschäftsobjekte auf beiden Seiten erfordern.

UI-Unabhängigkeit

Ermöglicht die Verwendung von Geschäftsobjekten mit einer Vielzahl von UI-Technologien und erleichtert die Wiederverwendung von Code und die Konsistenz über mehrere Präsentationsschichten hinweg. Zu diesen Technologien gehören Windows Forms, WPF, ASP.NET MVC und Blazor.

Asynchrone Programmierung

Ermöglicht die Erstellung von reaktionsfähigen Anwendungen, die zeitaufwändige Aufgaben ausführen, ohne die Benutzeroberfläche zu beeinträchtigen, indem asynchrone Programmiermodelle unterstützt werden.

Deklarative Geschäftsregeln

Erleichtert die Verwaltung komplexer Geschäftslogik durch deklarative Mittel zur Definition von Regeln, die automatisch angewendet werden.

Integration der objektrelationalen Abbildung (ORM)

Geschäftsobjekte und die Datenzugriffsschicht lassen sich nahtlos mit ORMs wie Entity Framework verbinden.

Serialisierung und mobile Funktionen

Ermöglicht die Serialisierung von Geschäftsobjekten für mobile Kontexte und vereinfacht so die Entwicklung von Anwendungen, die eine Datenübertragung über Netzwerkgrenzen hinweg erfordern.

Verwaltung von Vorgängen

Unterstützt transaktionale Prozesse, insbesondere in verteilten Systemen, die Anwendungen verwalten, um Datenkonsistenz und -integrität zu gewährleisten.

Ereignisbehandlung und Datenbindung

Starke Unterstützung für Ereignisbehandlung und Datenbindung wird geboten; dies ist besonders hilfreich für UI-Anwendungen, die Benachrichtigungen und Aktualisierungen in Echtzeit bereitstellen müssen.

Rollenbasierte Sicherheit

Enthält rollenbasierte Sicherheitsfunktionen, um den Zugriff auf Eigenschaften und Geschäftsobjekte zu beschränken, so dass nur autorisierte Benutzer bestimmte Aufgaben ausführen können.

Lokalisierung und Globalisierung

Ermöglicht die Entwicklung von Anwendungen, die in vielen sprachlichen und kulturellen Kontexten verwendet werden können, indem sie die Lokalisierung und Globalisierung unterstützt.

Erweiterbarkeit

Äußerst flexibel und wiederverwendbar, so dass Entwickler den Rahmen ändern und erweitern können, um bestimmte Geschäftsanforderungen zu erfüllen.

Erstellen und Konfigurieren von CSLA .NET

Das Einrichten Ihres Projekts, die Installation der erforderlichen Pakete und die Konfiguration des Frameworks sind einige der Schritte, die zur Erstellung und Konfiguration einer CSLA .NET-Anwendung gehören. Dies ist ein umfassendes Lernprogramm, das Ihnen den Einstieg in CSLA .NET erleichtert:

Erstellen Sie ein neues Visual Studio-Projekt

Mit Visual Studio ist es einfach, ein Konsolenprojekt zu erstellen. Mit diesen einfachen Schritten können Sie eine Konsolenanwendung in der Visual Studio-Umgebung starten:

Stellen Sie sicher, dass Sie Visual Studio auf Ihrem PC installiert haben, bevor Sie es verwenden.

Ein neues Projekt starten

Wählen Sie Datei, Projekt, und klicken Sie dann auf das Menü Neu.

CSLA .NET (Wie es für Entwickler funktioniert): Abbildung 2

Wählen Sie aus der Liste der Projektvorlagen-Referenzen unten entweder die "Console App" oder die "Console App (.NET Core)vorlage".

Bitte füllen Sie den Abschnitt "Name" aus, um Ihrem Projekt einen Namen zu geben.

CSLA .NET (Wie es für Entwickler funktioniert): Abbildung 3

Entscheiden Sie, wo Sie das Projekt aufbewahren wollen.

Wenn Sie auf "Erstellen" klicken, wird das Projekt der Konsolenanwendung geöffnet.

CSLA .NET (Wie es für Entwickler funktioniert): Abbildung 4

CSLA .NET-Paket installieren

Als nächstes folgt die Installation der CSLA .NET NuGet-Pakete. Starten Sie die folgenden Befehle in der NuGet Package Manager-Konsole (Werkzeuge -> NuGet-Paketmanager -> Paketmanager-Konsole):

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

Diese Pakete enthalten sowohl serverseitige Komponenten als auch die wesentlichen CSLA-Funktionen.

Konfigurieren Sie CSLA .NET in Ihrem Projekt

Bei einer Konsolenanwendung initialisieren Sie die CSLA.NET-Konfiguration in Ihrer Program.cs-Datei. In der Datei "Startup.cs" einer ASP.NET Core-Anwendung würde dies geschehen.

using System;
using Csla.Configuration;
namespace CslaDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Initialize CSLA .NET
            var applicationContext = new ApplicationContext();
            // Use dependency injection if needed (for ASP.NET Core or other frameworks)
            var services = new ServiceCollection();
            services.AddCsla();
            var provider = services.BuildServiceProvider();
            applicationContext = provider.GetService<ApplicationContext>();
            Console.WriteLine("CSLA .NET is configured and ready to use!");
        }
    }
}
using System;
using Csla.Configuration;
namespace CslaDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Initialize CSLA .NET
            var applicationContext = new ApplicationContext();
            // Use dependency injection if needed (for ASP.NET Core or other frameworks)
            var services = new ServiceCollection();
            services.AddCsla();
            var provider = services.BuildServiceProvider();
            applicationContext = provider.GetService<ApplicationContext>();
            Console.WriteLine("CSLA .NET is configured and ready to use!");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Ein Business-Objekt erstellen

Um Ihre Geschäftslogik zu erfassen, erstellen Sie ein grundlegendes Geschäftsobjekt. Für dieses Beispiel werden wir eine Klasse Person erstellen.

using Csla;
namespace CslaDemo
{
    [Serializable]
    public class Person : BusinessBase<Person>
    {
        public static readonly PropertyInfo<int> IdProperty = RegisterProperty<int>(c => c.Id);
        public int Id
        {
            get => GetProperty(IdProperty);
            set => SetProperty(IdProperty, value);
        }
        public static readonly PropertyInfo<string> NameProperty = RegisterProperty<string>(c => c.Name);
        public string Name
        {
            get => GetProperty(NameProperty);
            set => SetProperty(NameProperty, value);
        }
        protected override void AddBusinessRules()
        {
            // Add validation rules
            BusinessRules.AddRule(new Csla.Rules.CommonRules.Required(NameProperty));
        }
        // Data access methods
    [Fetch]
        private void DataPortal_Fetch(int id)
        {
            // Simulate data fetch
            Id = id;
            Name = "John Doe";
        }
    [Create]
        private void DataPortal_Create()
        {
            // Initialize default values
            Id = -1;
            Name = "New Person";
        }
    }
}
using Csla;
namespace CslaDemo
{
    [Serializable]
    public class Person : BusinessBase<Person>
    {
        public static readonly PropertyInfo<int> IdProperty = RegisterProperty<int>(c => c.Id);
        public int Id
        {
            get => GetProperty(IdProperty);
            set => SetProperty(IdProperty, value);
        }
        public static readonly PropertyInfo<string> NameProperty = RegisterProperty<string>(c => c.Name);
        public string Name
        {
            get => GetProperty(NameProperty);
            set => SetProperty(NameProperty, value);
        }
        protected override void AddBusinessRules()
        {
            // Add validation rules
            BusinessRules.AddRule(new Csla.Rules.CommonRules.Required(NameProperty));
        }
        // Data access methods
    [Fetch]
        private void DataPortal_Fetch(int id)
        {
            // Simulate data fetch
            Id = id;
            Name = "John Doe";
        }
    [Create]
        private void DataPortal_Create()
        {
            // Initialize default values
            Id = -1;
            Name = "New Person";
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Verwenden Sie das Business-Objekt

Lassen Sie uns nun das Geschäftsobjekt Person aus der Datei Program.cs verwenden.

using System;
using Csla;
using Microsoft.Extensions.DependencyInjection;
namespace CslaDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Initialize CSLA .NET
            var services = new ServiceCollection();
            services.AddCsla();
            var provider = services.BuildServiceProvider();
            var applicationContext = provider.GetService<ApplicationContext>();
        var db = provider.GetRequiredService<IDataPortal<Person>>();
            // Create a new person
            var newPerson =  db.Create();
            Console.WriteLine($"New Person: {newPerson.Name}");
            // Fetch an existing person
            var existingPerson = db.Fetch(1);
            Console.WriteLine($"Fetched Person: {existingPerson.Name}");
        }
    }
}
using System;
using Csla;
using Microsoft.Extensions.DependencyInjection;
namespace CslaDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Initialize CSLA .NET
            var services = new ServiceCollection();
            services.AddCsla();
            var provider = services.BuildServiceProvider();
            var applicationContext = provider.GetService<ApplicationContext>();
        var db = provider.GetRequiredService<IDataPortal<Person>>();
            // Create a new person
            var newPerson =  db.Create();
            Console.WriteLine($"New Person: {newPerson.Name}");
            // Fetch an existing person
            var existingPerson = db.Fetch(1);
            Console.WriteLine($"Fetched Person: {existingPerson.Name}");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Zeigen Sie, wie Sie DataPortal verwenden, um eine neue Person zu erstellen und eine vorhandene Person in der Main-Methode zu erhalten.

CSLA .NET (Wie es für Entwickler funktioniert): Abbildung 5

Diese Konfiguration bietet eine grundlegende Basis für die Verwendung von CSLA .NET in einer .NET-Anwendung. Wenn anspruchsvollere Geschäftslogik, Datenzugriff und Validierungskriterien erforderlich sind, können Sie diese Strategie ausbauen.

Erste Schritte

Um CSLA und IronPDF in einem C#-Projekt einsetzen zu können, müssen Sie zunächst Ihr Projekt einrichten, CSLA zur Konstruktion von Geschäftsobjekten und IronPDF zur Erstellung von PDFs verwenden. Hier finden Sie eine ausführliche Anleitung, wie Sie dies erreichen können.

Was ist IronPDF?

C#-Programme können verwenden IronPDFeine funktionsreiche .NET-Bibliothek, um PDF-Dokumente zu erstellen, zu lesen und zu bearbeiten. Entwickler können mit Hilfe dieser Anwendung aus HTML-, CSS- und JavaScript-Inhalten schnell hochwertige, druckfertige PDFs erstellen. Zu den wichtigsten Funktionen gehören das Erstellen von Kopf- und Fußzeilen, das Teilen und Zusammenführen von PDFs, das Anbringen von Wasserzeichen in Dokumenten und das Konvertieren von HTML in PDF. IronPDF ist für eine Vielzahl von Anwendungen hilfreich, da es sowohl das .NET-Framework als auch .NET Core unterstützt.

PDFs sind für Entwickler einfach in ihren Anwendungen zu verwenden, da sie über eine umfangreiche Dokumentation verfügen und leicht zu integrieren sind. IronPDF handhabt komplizierte Layouts und Formatierungen mit Leichtigkeit und stellt sicher, dass die ausgegebenen PDFs den ursprünglichen HTML-Text genau wiedergeben.

CSLA .NET (Wie es für Entwickler funktioniert): Abbildung 6

Merkmale von IronPDF

PDF-Erzeugung aus HTML

Konvertieren Sie HTML, CSS und JavaScript in PDF. unterstützt zwei moderne Webstandards: Media-Queries und Responsive Design. praktisch für die Verwendung von HTML und CSS zur dynamischen Gestaltung von PDF-Dokumenten, Rechnungen und Berichten.

PDF-Bearbeitung

Es ist möglich, Text, Bilder und anderes Material zu bereits existierenden PDFs hinzuzufügen. Extrahieren Sie Text und Bilder aus PDF-Dateien. viele PDFs in einer einzigen Datei zusammenführen. PDF-Dateien in mehrere einzelne Dokumente aufteilen. Fügen Sie Kopf- und Fußzeilen, Anmerkungen und Wasserzeichen hinzu.

PDF-Konvertierung

Konvertieren Sie Word-, Excel- und Bilddateien sowie andere Dateitypen in das PDF-Format. PDF in ein Bild umwandeln (PNG, JPEG, usw.).

Leistung und Verlässlichkeit

In der Industrie sind hohe Leistung und Zuverlässigkeit wünschenswerte Konstruktionsmerkmale. Erfolgreiche Bearbeitung großer Dokumentenmengen.

IronPDF installieren

Installieren Sie das IronPDF-Paket, um die Werkzeuge zu erhalten, die Sie für die Arbeit mit PDFs in .NET-Projekten benötigen.

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

Initialisierung von CSLA .NET und Generierung von PDF mit IronPDF

Verwenden Sie das zuvor erstellte Geschäftsobjekt Person und initialisieren Sie das CSLA .NET-Framework in Ihrer Datei Program.cs. Als Nächstes verwenden Sie IronPDF, um eine PDF-Datei zu erstellen.

using Csla;
using IronPdf;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Text;
namespace CslaIronPdfDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Setup dependency injection
            var services = new ServiceCollection();
            services.AddCsla();
            var provider = services.BuildServiceProvider();
            var applicationContext = provider.GetRequiredService<ApplicationContext>();
        var db = provider.GetRequiredService<IDataPortal<Person>>();
            // Create a new person
            var newPerson = db.Create();
            // Display the new person
            Console.WriteLine($"New Person: {newPerson.Name}");
            // Fetch an existing person
            var existingPerson = db.Fetch(1);;
            // Display the fetched person
            Console.WriteLine($"Fetched Person: {existingPerson.Name}");
            // Generate PDF
            var htmlContent = new StringBuilder();
            htmlContent.Append("<h1>Person Details</h1>");
            htmlContent.Append($"<p><strong>New Person:</strong> {newPerson.Name}</p>");
            htmlContent.Append($"<p><strong>Fetched Person:</strong> {existingPerson.Name}</p>");
            // Create PDF
            var Renderer = new HtmlToPdf();
            var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent.ToString());
            // Save PDF
            var outputPath = "PersonDetails.pdf";
            pdfDocument.SaveAs(outputPath);
            Console.WriteLine($"PDF generated and saved to {outputPath}");
        }
    }
}
using Csla;
using IronPdf;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Text;
namespace CslaIronPdfDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Setup dependency injection
            var services = new ServiceCollection();
            services.AddCsla();
            var provider = services.BuildServiceProvider();
            var applicationContext = provider.GetRequiredService<ApplicationContext>();
        var db = provider.GetRequiredService<IDataPortal<Person>>();
            // Create a new person
            var newPerson = db.Create();
            // Display the new person
            Console.WriteLine($"New Person: {newPerson.Name}");
            // Fetch an existing person
            var existingPerson = db.Fetch(1);;
            // Display the fetched person
            Console.WriteLine($"Fetched Person: {existingPerson.Name}");
            // Generate PDF
            var htmlContent = new StringBuilder();
            htmlContent.Append("<h1>Person Details</h1>");
            htmlContent.Append($"<p><strong>New Person:</strong> {newPerson.Name}</p>");
            htmlContent.Append($"<p><strong>Fetched Person:</strong> {existingPerson.Name}</p>");
            // Create PDF
            var Renderer = new HtmlToPdf();
            var pdfDocument = Renderer.RenderHtmlAsPdf(htmlContent.ToString());
            // Save PDF
            var outputPath = "PersonDetails.pdf";
            pdfDocument.SaveAs(outputPath);
            Console.WriteLine($"PDF generated and saved to {outputPath}");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Das angebotene Beispiel zeigt, wie man mit einer .NET 6 Konsolenanwendung, die CSLA.NET mit IronPDF verbindet, PDFs aus Geschäftsobjekten erstellt, validiert und generiert. Die Installation der erforderlichen IronPDF- und CSLA.NET-Pakete mithilfe von NuGet ist der erste Schritt beim Einrichten des Projekts. CSLAs BusinessBase wird verwendet, um das primäre Zuhause für Ihr Geschäftsobjekt Person zu beschreiben.

Sie kapselt Merkmale wie Name und ID und enthält Geschäftsregeln zur Validierung dieser Eigenschaften. Die Implementierung von Fabrikmethoden und Datenzugriffsmethoden sorgt für die Objekterzeugung und den Datenabruf. Die Initialisierung des CSLA-Anwendungskontexts in der Datei Program.cs erfolgt über Dependency Injection. Der Code zeigt dann, wie die DataPortal-Funktionen von CSLA verwendet werden, um ein neues Person-Objekt zu erstellen und ein vorhandenes abzurufen.

CSLA .NET (Wie es für Entwickler funktioniert): Abbildung 7

Schließlich werden mit der IronPDF-Funktion HtmlToPdf HTML-Informationen, einschließlich der Seite mit den Personendaten, erstellt und in eine PDFsie zeigt eine nützliche Methode zur Erstellung von Geschäftsberichten im PDF-Format. Dieses Beispiel zeigt, wie die Dokumentenerstellung in einer .NET-Anwendung nahtlos in die Datenverwaltung und Geschäftslogik integriert werden kann.

CSLA .NET (Wie es für Entwickler funktioniert): Abbildung 8

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass die Integration von IronPDF und CSLA .NET in eine C#-Anwendung zeigt, wie gut sie bei der Verwaltung der Geschäftslogik und der Erstellung hochwertiger Dokumente zusammenarbeiten. CSLA .NET bietet ein starkes Framework für die Verwaltung des Datenzugriffs, die Festlegung und Durchsetzung von Geschäftsregeln und die Gewährleistung der Konsistenz von Geschäftsobjekten. Dieser Rahmen verbessert die Wartbarkeit des Codes und rationalisiert komplizierte Geschäftslogik.

Darüber hinaus bietet IronPDF eine einfach zu bedienende Schnittstelle zur Erstellung und Änderung von PDF-Dokumenten, die es ermöglicht, umfassende Berichte mit Formatierungen direkt aus den Daten der Anwendung zu erstellen. Die Kombination dieser Technologien ermöglicht es Entwicklern, komplexe Unternehmensanwendungen zu erstellen, die qualitativ hochwertige Dokumente produzieren und gleichzeitig die Geschäftsanforderungen erfüllen, Arbeitsabläufe optimieren und die Produktivität steigern.

Ihr Toolset für die .NET-Entwicklung wird durch IronPDF und IronSoftware kombiniert die extrem vielseitigen Systeme und die Suite von IronSoftware mit dem Kernsupport, um mehr Online-Anwendungen und Funktionen sowie eine effizientere Entwicklung zu einem Startpreis von 749 $ zu bieten.

Entwickler können leichter entscheiden, welches Modell am besten geeignet ist, wenn die Lizenzauswahl projektspezifisch und einfach zu verstehen ist. Dank dieser Vorteile können Entwickler nun eine Vielzahl von Problemen auf unkomplizierte, effiziente und nahtlos verknüpfte Weise lösen.

< PREVIOUS
Topshelf C# (Wie es für Entwickler funktioniert)
NÄCHSTES >
Refit 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 >