using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Azure.Messaging.ServiceBus Beispiel C# (Wie es funktioniert)
Chipego Kalinda
13. August 2024
Teilen Sie:
In der heutigen vernetzten digitalen Landschaft ist eine effiziente Kommunikation der Grundstein für erfolgreiche Unternehmen. Ganz gleich, ob es um die Übertragung kritischer Daten zwischen Anwendungen oder die Sicherstellung von Echtzeit-Updates in verteilten Systemen geht - eine zuverlässige Messaging-Infrastruktur ist unverzichtbar.
Azure Service Bus, ein cloudbasierter Nachrichtendienst, erweist sich als robuste Lösung, die Entwickler dabei unterstützt, skalierbare, entkoppelte und widerstandsfähige Anwendungen zu erstellen. Lassen Sie uns in das Reich von Azure Service Bus eintauchen, um seine Bedeutung zu verstehen und seine unzähligen Möglichkeiten zu erkunden. Später in diesem Artikel werden wir uns auch IronPDF ansehen, um PDF-Dokumente zu verwalten, zu erstellen und zu lesen.
Verstehen von Azure Service Bus
Azure Service Bus ist ein vollständig verwalteter Nachrichtenbroker für die Unternehmensintegration, der eine zuverlässige Kommunikation zwischen Anwendungen und Diensten ermöglicht, unabhängig davon, ob diese in der Cloud, vor Ort oder in hybriden Umgebungen ausgeführt werden.
Es bietet flexible Messaging-Funktionen, einschließlich Warteschlangen und Publish/Subscribe-Mechanismen, um eine nahtlose Kommunikation zwischen verschiedenen Komponenten eines verteilten Systems zu ermöglichen. Außerdem sind Batch-Nachrichten möglich, die mehrere Nachrichten zulassen, ohne dass die Gesamtgröße überschritten wird.
Azure Service Bus bietet die folgenden Vorteile:
Entkopplung von Anwendungen: Der Service Bus ermöglicht es Ihnen, Anwendungen und Dienste voneinander zu trennen. Diese Entkopplung verbessert die Zuverlässigkeit und Skalierbarkeit.
Lastverteilung: Sie verteilt die Arbeit auf konkurrierende Arbeitskräfte und stellt so eine effiziente Ressourcennutzung sicher.
Nachrichtenübertragung: Daten werden mithilfe von Nachrichten zwischen Anwendungen und Diensten übertragen. Der Nachrichtentext dieser Nachrichten kann verschiedene Datentypen enthalten, z. B. JSON, XML oder reinen Text.
Nachrichtenszenarien: Häufige Szenarien umfassen die Übertragung von Geschäftsdaten (z. B. Verkaufsaufträgen), Lastverteilung und das Ermöglichen von Beziehungen zwischen Herausgebern und Abonnenten mithilfe von Themen und Abonnements.
Transaktionen: Der Service Bus unterstützt atomare Transaktionen, sodass mehrere Operationen innerhalb eines einzigen Transaktionsbereichs durchgeführt werden können. Eine Transaktion würde mehrere gleichzeitige Aufrufe haben, während ein Nachrichtenstapel einen einzigen Aufruf hätte.
Nachrichtensitzungen: Es erleichtert die groß angelegte Koordination von Workflows und geordneten Nachrichtenübertragungen.
Hauptmerkmale und Funktionen
Warteschlangen und Themen: Der Azure Service Bus bietet sowohl Warteschlangen als auch Themen als Kommunikationskanäle an. Warteschlangen ermöglichen eine Punkt-zu-Punkt-Kommunikation, die sicherstellt, dass jede Nachricht nur von einem Empfänger verarbeitet wird, was ideal für die Verteilung der Arbeitslast und Szenarien zur Lastverteilung ist. Andererseits unterstützen Topics Publish/Subscribe-Messaging-Muster, die es mehreren Abonnenten ermöglichen, relevante Nachrichten unabhängig voneinander zu empfangen, und die skalierbare ereignisgesteuerte Architekturen erleichtern.
Zuverlässige Nachrichtenübermittlung: Mit Azure Service Bus ist die Nachrichtenübermittlung von Natur aus zuverlässig. Es sorgt für die Persistenz von Nachrichten, kann die Nachrichten- und Fehlerbehandlung konfigurieren, bietet Fehlertoleranz und eine "at-least-once"-Übermittlungssemantik und minimiert so das Risiko von Datenverlust oder -duplizierung. Darüber hinaus unterstützt es Transaktionen, die atomare Operationen über mehrere Nachrichten hinweg ermöglichen und so die Datenintegrität gewährleisten.
Dead-Lettering und Retry-Richtlinien: Um fehlerhafte Nachrichten effektiv zu behandeln, bietet Azure Service Bus Dead-Lettering-Funktionen, die es ermöglichen, problematische Nachrichten automatisch in eine separate Warteschlange für Analyse und Fehlerbehebung zu verschieben. Darüber hinaus bietet es flexible Wiederholungsrichtlinien, die es Entwicklern ermöglichen, automatische Wiederholungsversuche mit exponentiellen Back-Off-Strategien zu konfigurieren und so die Widerstandsfähigkeit von Anwendungen bei vorübergehenden Ausfällen zu erhöhen.
Partitionierung und Skalierung: Azure Service Bus unterstützt die Partitionierung von Nachrichteneinheiten, um die Arbeitslast auf mehrere Knoten zu verteilen und somit horizontale Skalierbarkeit und hohen Durchsatz sicherzustellen. Diese Fähigkeit ist entscheidend für die Verarbeitung großer Nachrichtenmengen und die Anpassung an schwankende Arbeitslasten ohne Beeinträchtigung der Leistung oder Zuverlässigkeit.
Integration mit dem Azure-Ökosystem: Azure Service Bus integriert sich nahtlos in andere Azure-Dienste wie Azure Functions, Logic Apps, Event Grid und Azure Kubernetes Service (AKS), wodurch Entwickler problemlos End-to-End-Lösungen erstellen können. Ob es um das Auslösen von serverlosen Funktionen als Reaktion auf eingehende Nachrichten oder die Orchestrierung komplexer Workflows mit Logic Apps geht, Azure Service Bus dient als Dreh- und Angelpunkt für den Aufbau robuster, ereignisgesteuerter Architekturen.
Einführung in IronPDF
IronPDF ist eine leistungsstarke C#-PDF-Bibliothek, die es Ihnen ermöglicht, in .NET-Projekten Inhalte aus PDF-Dokumenten zu generieren, zu bearbeiten und zu extrahieren. Hier sind einige der wichtigsten Merkmale:
HTML-zu-PDF-Konvertierung:
Konvertieren Sie HTML-, CSS- und JavaScript-Inhalte in das PDF-Format.
Verwenden Sie die Chrome Rendering Engine für pixelgenaue PDFs.
Generieren Sie PDFs aus URLs, HTML-Dateien oder HTML-Strings.
Bild- und Inhaltskonvertierung:
Konvertieren Sie Bilder in und aus PDF.
Extrahieren Sie Text und Bilder aus vorhandenen PDF-Dateien.
Unterstützung für verschiedene Bildformate.
Bearbeitung und Manipulation:
Legen Sie Eigenschaften, Sicherheit und Berechtigungen für PDFs fest.
Digitale Signaturen hinzufügen.
Bearbeiten Sie die Metadaten und den Revisionsverlauf.
Plattformübergreifende Unterstützung:
Funktioniert mit .NET Core (8, 7, 6, 5 und 3.1+), .NET Standard (2.0+) und .NET Framework (4.6.2+).
Kompatibel mit Windows, Linux und macOS.
Verfügbar über NuGet für eine einfache Installation.
Erzeugen eines PDF-Dokuments mit IronPDF und Azure.Messaging.ServiceBus
Erstellen Sie zunächst eine Konsolenanwendung mit Visual Studio (siehe unten).
Erstellen Sie einen Namespace mit einem eindeutigen Namen für Azure. Ein Namespace ist ein Container für Service Bus-Ressourcen wie Warteschlangen und Themen innerhalb Ihrer Anwendung.
So erstellen Sie einen Namespace:
Melden Sie sich beim Azure-Portal an.
Gehen Sie auf die Seite "Alle Dienste".
Wählen Sie im linken Navigationsbereich "Integration" aus der Kategorienliste.
Bewegen Sie den Mauszeiger über "Service Bus" und klicken Sie auf die Schaltfläche "+" auf der Kachel "Service Bus".
Gehen Sie folgendermaßen vor, um die Registerkarte Grundlagen auf der Seite Namespace erstellen zu konfigurieren:
Abonnement: Wählen Sie das Azure-Abonnement aus, in dem Sie den Namespace erstellen möchten.
Ressourcengruppe: Wählen Sie eine vorhandene Ressourcengruppe aus, in der der Namespace platziert wird, oder erstellen Sie eine neue.
Namespace-Name: Geben Sie einen Namen für den Namespace ein. Stellen Sie sicher, dass der Name die folgenden Kriterien erfüllt:
Muss in Azure eindeutig sein.
Die Länge muss zwischen 6 und 50 Zeichen liegen.
Darf nur Buchstaben, Zahlen und Bindestriche "-" enthalten.
Muss mit einem Buchstaben beginnen und mit einem Buchstaben oder einer Zahl enden.
Kann nicht mit "-sb" oder "-mgmt" enden.
Standort: Wählen Sie die Region aus, in der Ihr Namespace gehostet werden soll.
Preiskategorie: Wählen Sie die Preiskategorie (Basic, Standard oder Premium) für den Namensraum aus. Für dieses Beispiel wählen Sie Standard.
Wählen Sie Überprüfen + Erstellen am unteren Rand der Seite aus.
Wählen Sie Erstellen auf der Seite Überprüfen + Erstellen.
Sobald die Bereitstellung der Ressource erfolgreich ist, Gehe zur Ressource.
Sie sehen die Homepage für Ihren Service Bus-Namensraum.
Erstellen von Service-Bus-Warteschlangen im Azure-Portal
Gehen Sie folgendermaßen vor, um eine Warteschlange in Ihrem Servicebus-Namensraum einzurichten:
Zu Warteschlangen navigieren: Gehen Sie zur Seite des Service Bus-Namespace im Azure-Portal. Wählen Sie "Warteschlangen" aus dem linken Navigationsmenü.
Neue Warteschlange erstellen: Klicken Sie auf der Seite "Warteschlangen" in der Symbolleiste auf die Schaltfläche "+ Warteschlange".
Warteschlange konfigurieren: Geben Sie im bereitgestellten Feld einen Namen für Ihre Warteschlange ein. Belassen Sie die anderen Einstellungen auf ihren Standardwerten. Die Optionen, die Sie beim Erstellen einer Azure Service Bus-Warteschlange konfigurieren müssen:
Name: Dies ist der eindeutige Bezeichner für Ihre Warteschlange. Wählen Sie einen Namen, der beschreibend und leicht zu merken ist.
Maximale Warteschlangen-Größe: Dies definiert die maximale Speicherkapazität der Warteschlange. Sie können sie auf 1 GB, 2 GB, 5 GB, 10 GB, 20 GB, 40 GB, 80 GB oder 100 GB einstellen. In Ihrem Fall ist es auf 1 GB eingestellt.
Maximale Lieferanzahl: Dies gibt die maximale Anzahl an, wie oft eine Nachricht zugestellt werden kann, bevor sie in die Dead-Letter-Warteschlange gesendet oder verworfen wird. Dies hilft bei der Behandlung von Fehlern in der Nachrichtenverarbeitung.
Nachrichtenverfallszeit (TTL): Dies bestimmt, wie lange eine Nachricht in der Warteschlange bleibt, bevor sie abläuft. Sie können dies in Tagen, Stunden, Minuten und Sekunden einstellen. Sobald die TTL erreicht ist, werden die "Dead Letter"-Nachrichten entweder verworfen oder in die "Dead Letter"-Warteschlange verschoben, wenn "Dead Lettering" aktiviert ist.
Sperrdauer: Dies ist die Zeitspanne, für die eine Nachricht zur Verarbeitung durch einen Empfänger gesperrt ist. Während dieser Zeit können andere Empfänger die gleiche Nachricht nicht verarbeiten. Sie können diese Dauer in Tagen, Stunden, Minuten und Sekunden angeben.
Aktivieren Sie Dead Lettering bei Nachrichtenablauf: Wenn aktiviert, werden Nachrichten, die ablaufen (d. h. ihre TTL überschreiten), in die Dead-Letter-Warteschlange verschoben, anstatt verworfen zu werden. Dies ermöglicht eine weitere Überprüfung und Behandlung abgelaufener Nachrichten.
Partitionierung aktivieren: Diese Option ermöglicht die Partitionierung der Warteschlange über mehrere Nachrichtenbroker, was die Skalierbarkeit und den Durchsatz verbessern kann. Die Partitionierung ist nützlich für die Bearbeitung großer Mengen von Nachrichten.
Mit diesen Einstellungen können Sie das Verhalten und die Leistung Ihrer Azure Service Bus-Warteschlange steuern und sicherstellen, dass sie die Anforderungen Ihrer Anwendung erfüllt.
Vervollständigung der Erstellung: Klicken Sie auf die Schaltfläche "Erstellen", um die Erstellung der Warteschlange abzuschließen. Diese Schritte stellen sicher, dass Sie eine Warteschlange innerhalb Ihres Service Bus-Namensraums mithilfe des Azure-Portals erfolgreich erstellen.
Installieren Sie Azure.Messaging.ServiceBus, eine Service-Bus-Client-Bibliothek, um eine Verbindung mit der Azure-Warteschlange über eine Verbindungszeichenfolge herzustellen.
Fügen Sie den nachstehenden Code hinzu, um Nachrichten mit Azure.Messaging.ServiceBus zu senden und zu empfangen.
using Azure.Messaging.ServiceBus;
namespace CodeSample
{
public static class AzureServiceBusDemo
{
public static async Task Execute()
{
string connectionString = "Endpoint=sb://iron-articles.servicebus.windows.net/;SharedAccessKeyName=all;SharedAccessKey=uqQIzpuc2HxbnAb9keqTINvzfTcFbkkU0+ASbJZ/tow=;EntityPath=ironpdf";
string queName = "ironpdf";
Console.WriteLine("Demo IronPDF with Azure.Messaging.ServiceBus");
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
var content = "<h1>Demo IronPDF with Azure.Messaging.ServiceBus</h1>";
content += "<h2>Send Message to Azure.Messaging.ServiceBus Queue: ironpdf</h2>";
await using var client = new ServiceBusClient(connectionString);
var msgText = "IronPDF is Awesome Package";
content += $"<p>Message:{msgText}</p>";
var tx = client.CreateSender(queName);
await tx.SendMessageAsync(new ServiceBusMessage(msgText)); // message await sender
Console.WriteLine($"Sent Below message at:{DateTime.Now}");
content += $"<p>Sent Below message at:{DateTime.Now}</p>";
Console.Read(); // wait for user input to read the message;
var rx = client.CreateReceiver(queName);
var msg = await rx.ReceiveMessageAsync(); // receive messages
content += "<h2>Receive Message from Azure.Messaging.ServiceBus Queue: ironpdf</h2>";
content += $"<p>Recieved Below message at:{DateTime.Now}</p>";
Console.WriteLine($"Recieved Below message at:{DateTime.Now}");
content += $"<p>MessageID={msg}</p>";
Console.WriteLine($"MessageID={msg}");
content += $"<p>Message Received: {msg.Body}</p>";
Console.WriteLine($"Message Received: {msg.Body}");
var pdf = renderer.RenderHtmlAsPdf(content);
// Export to a file or Stream
pdf.SaveAs("AwesomeAzureServiceBusQueueAndIronPdf.pdf");
}
}
}
using Azure.Messaging.ServiceBus;
namespace CodeSample
{
public static class AzureServiceBusDemo
{
public static async Task Execute()
{
string connectionString = "Endpoint=sb://iron-articles.servicebus.windows.net/;SharedAccessKeyName=all;SharedAccessKey=uqQIzpuc2HxbnAb9keqTINvzfTcFbkkU0+ASbJZ/tow=;EntityPath=ironpdf";
string queName = "ironpdf";
Console.WriteLine("Demo IronPDF with Azure.Messaging.ServiceBus");
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
var content = "<h1>Demo IronPDF with Azure.Messaging.ServiceBus</h1>";
content += "<h2>Send Message to Azure.Messaging.ServiceBus Queue: ironpdf</h2>";
await using var client = new ServiceBusClient(connectionString);
var msgText = "IronPDF is Awesome Package";
content += $"<p>Message:{msgText}</p>";
var tx = client.CreateSender(queName);
await tx.SendMessageAsync(new ServiceBusMessage(msgText)); // message await sender
Console.WriteLine($"Sent Below message at:{DateTime.Now}");
content += $"<p>Sent Below message at:{DateTime.Now}</p>";
Console.Read(); // wait for user input to read the message;
var rx = client.CreateReceiver(queName);
var msg = await rx.ReceiveMessageAsync(); // receive messages
content += "<h2>Receive Message from Azure.Messaging.ServiceBus Queue: ironpdf</h2>";
content += $"<p>Recieved Below message at:{DateTime.Now}</p>";
Console.WriteLine($"Recieved Below message at:{DateTime.Now}");
content += $"<p>MessageID={msg}</p>";
Console.WriteLine($"MessageID={msg}");
content += $"<p>Message Received: {msg.Body}</p>";
Console.WriteLine($"Message Received: {msg.Body}");
var pdf = renderer.RenderHtmlAsPdf(content);
// Export to a file or Stream
pdf.SaveAs("AwesomeAzureServiceBusQueueAndIronPdf.pdf");
}
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText $csharpLabel
Code Erläuterung
Verbindungszeichenfolge und Warteschlangenname:
Die connectionString-Variable enthält die Verbindungsdetails für Ihr Azure Service Bus-Namespace. Es gibt den Endpunkt, den gemeinsamen Zugriffsschlüssel und den Entitätspfad (Warteschlangenname) an.
Die Variable queName enthält den Namen der Service Bus-Warteschlange, mit der Sie arbeiten möchten.
Demo-Einrichtung:
Der Code beginnt mit dem Ausdruck einer Meldung: "Demo IronPDF mit Azure.Messaging.ServiceBus"
Es ermöglicht die Web-Sicherheit, indem Installation.EnableWebSecurity = true; verwendet wird.
Erstellen eines Service Bus Clients:
Der ServiceBusClient wird unter Verwendung der bereitgestellten Verbindungszeichenfolge erstellt.
Dieser Client ermöglicht die Interaktion mit Service-Bus-Entitäten (Warteschlangen, Themen, usw.).
Eine Nachricht senden:
Eine Nachricht mit dem Inhalt "IronPDF is Awesome Package" wird mit der Methode CreateSender an die angegebene Warteschlange gesendet.
Die Nachricht wird mit new ServiceBusMessage(msgText) erstellt.
Der Zeitstempel der gesendeten Nachricht wird auf der Konsole ausgegeben.
Empfangen einer Nachricht:
Ein Empfänger wird für die gleiche Warteschlange mit CreateReceiver erstellt.
Der Code wartet auf Benutzereingaben (mit Console.Read()), um die Nachrichtenverarbeitung zu simulieren.
Wenn eine Nachricht empfangen wird, werden ihre ID und ihr Inhalt auf der Konsole ausgegeben.
Erzeugen eines PDF:
Der Renderer erstellt ein PDF aus dem HTML-Inhalt (einschließlich der gesendeten und empfangenen Nachrichten).
Die resultierende PDF-Datei wird als "AwesomeAzureServiceBusQueueAndIronPdf.pdf" gespeichert
Ausgabe
PDF
IronPDF-Lizenzierung
Das IronPDF-Paket erfordert eine Lizenz für die Ausführung und die Erstellung der PDF-Datei. Fügen Sie den unten stehenden Code am Anfang der Anwendung ein, bevor das Paket aufgerufen wird.
In einer Ära, die von digitaler Transformation und schnellen technologischen Fortschritten geprägt ist, erweist sich der Azure Service Bus als zentrale Komponente auf der Modernisierungsreise von Unternehmen weltweit. Durch die Bereitstellung zuverlässiger, skalierbarer und flexibler Messaging-Funktionen ermöglicht er Entwicklern die Entwicklung belastbarer und flexibler Lösungen, die sich an die sich verändernden Geschäftsanforderungen anpassen lassen.
Ganz gleich, ob es um nahtlose Integration, ereignisgesteuerte Architekturen oder asynchrone Kommunikation geht, Azure Service Bus spielt eine entscheidende Rolle bei der Förderung von Innovationen und der Beschleunigung digitaler Initiativen in verschiedenen Branchen.
Da Unternehmen weiterhin Cloud-native Paradigmen und verteilte Architekturen nutzen, ist Azure Service Bus ein Beleg für Microsofts Engagement, Entwickler und Unternehmen auf ihrem Weg in die Cloud zu unterstützen. IronPDF vereinfacht die PDF-Erstellung innerhalb von .NET-Anwendungen und bietet Flexibilität und Funktionalität, um direkt aus dem Code heraus professionelle Dokumente zu erstellen.
Chipego hat eine natürliche Fähigkeit zum Zuhören, die ihm hilft, Kundenprobleme zu verstehen und intelligente Lösungen anzubieten. Er trat dem Iron Software-Team 2023 bei, nachdem er einen Bachelor of Science in Informationstechnologie erworben hatte. IronPDF und IronOCR sind die beiden Produkte, auf die sich Chipego konzentriert hat, aber sein Wissen über alle Produkte wächst täglich, da er neue Wege findet, Kunden zu unterstützen. Er genießt die Zusammenarbeit bei Iron Software, da Teammitglieder aus dem gesamten Unternehmen ihre unterschiedlichen Erfahrungen einbringen und so zu effektiven, innovativen Lösungen beitragen. Wenn Chipego nicht an seinem Schreibtisch sitzt, kann man ihn oft bei einem guten Buch oder beim Fußballspielen antreffen.
< PREVIOUS WebGrease .NET Core (Wie es für Entwickler funktioniert)
NÄCHSTES > Simple Injector C# (Wie es für Entwickler funktioniert)