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");
EasyNetQ .NET (Comment ça marche pour les développeurs)
Kannapat Udonpant
août 13, 2024
Partager:
LapinMQ est un courtier en messages populaire, largement utilisé pour la mise en œuvre d'architectures axées sur les messages. Cependant, l'utilisation de la bibliothèque client RabbitMQ .NET peut s'avérer lourde et complexe. EasyNetQ est une API .NET de haut niveau pour RabbitMQ qui simplifie le processus d'intégration de RabbitMQ dans les applications .NET, en fournissant une interface propre et facile à utiliser.
Qu'est-ce que EasyNetQ ?
EasyNetQ est une bibliothèque de messagerie simple, légère et open-source pour le framework .NET/.NET Core, spécialement conçue pour faciliter la messagerie dans les systèmes distribués. Il fournit une API de haut niveau pour RabbitMQ, un courtier de messages populaire, permettant aux développeurs d'intégrer facilement des fonctionnalités de messagerie dans leurs applications sans avoir à gérer les complexités des API de bas niveau de RabbitMQ. Vous pouvezse référer à la documentation EasyNetQ pour en savoir plus sur EasyNetQ .Net.
Caractéristiques principales EasyNetQ ?
EasyNetQ est une couche d'abstraction au-dessus du client RabbitMQ .NET qui fournit une API simple et facile à utiliser. Il résout les problèmes de gestion des connexions, des changements, des files d'attente et des abonnements avec RabbitMQ, ce qui permet aux développeurs de se concentrer sur la logique commerciale plutôt que sur les détails.
**EasyNetQ utilise une approche de configuration simple pour configurer les connexions et définir la logique de gestion des messages.
Messages en gras: Cette fonction prend en charge les messages en gras, ce qui garantit que les messages sont ordonnés et expliqués correctement.
Modèle d'abonnement léger: Simplifie la mise en œuvre du système de bus de messagerie d'abonnement léger.
Modèle requête-réponse: Prend en charge les messages requête-réponse, permettant une communication de type RPC.
Gestion des erreurs et réessais: Gestion des erreurs intégrée et techniques de réessais des messages.
Installation d'EasyNetQ dans une API .NET pour RabbitMQ
Installez la bibliothèque EasyNetQ Client via la console NuGet Package Manager :
Install-Package EasyNetQ
Install-Package EasyNetQ
IRON VB CONVERTER ERROR developers@ironsoftware.com
Adopter le modèle Publish-Subscribe avec EasyNetQ
EasyNetQ excelle dans la mise en œuvre de l'interface éditeur-abonné(pub/sub) modèle. Ce modèle permet aux éditeurs(producteurs de messages) pour envoyer des messages à des files d'attente sans avoir besoin de savoir qui les recevra au final. Abonnés(les consommateurs de messages) expriment ensuite leur intérêt pour des files d'attente spécifiques, prêtes à traiter les messages entrants. Ce découplage favorise un couplage lâche entre les composants, ce qui favorise la flexibilité et améliore la tolérance aux pannes.
En outre, le développement initial de RabbitMQ peut être simplifié grâce à l'API propre d'EasyNetQ, ce qui permet une intégration plus aisée dans votre fichier de solution.
Connexion à RabbitMQ avec EasyNetQ
Établir une connexion à une instance RabbitMQ est un jeu d'enfant avec EasyNetQ. Voici un extrait de code qui illustre le processus :
using EasyNetQ;
// Replace "localhost" with your RabbitMQ server address
var bus = RabbitHutch.CreateBus("host=localhost");
// Use the bus for message publishing and subscribing
using EasyNetQ;
// Replace "localhost" with your RabbitMQ server address
var bus = RabbitHutch.CreateBus("host=localhost");
// Use the bus for message publishing and subscribing
IRON VB CONVERTER ERROR developers@ironsoftware.com
Publier des messages en toute simplicité
EasyNetQ offre une approche simple pour publier un bus de messages vers des files d'attente. Vous définissez la structure du bus de messages(souvent en tant que classe) et utiliser la méthode PublishAsync pour envoyer une instance de message :
public class OrderMessage
{
public int OrderId { get; set; }
public string CustomerName { get; set; }
public List<Product> Items { get; set; }
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public Product(int id, string name)
{
Id = id;
Name = name;
}
}
// ...
await bus.PubSub.PublishAsync(new OrderMessage
{
OrderId = 123,
CustomerName = "John Doe",
Items = new List<Product>
{
new Product { Id = 1, Name = "Product A" },
new Product { Id = 2, Name = "Product B" }
}
});
public class OrderMessage
{
public int OrderId { get; set; }
public string CustomerName { get; set; }
public List<Product> Items { get; set; }
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public Product(int id, string name)
{
Id = id;
Name = name;
}
}
// ...
await bus.PubSub.PublishAsync(new OrderMessage
{
OrderId = 123,
CustomerName = "John Doe",
Items = new List<Product>
{
new Product { Id = 1, Name = "Product A" },
new Product { Id = 2, Name = "Product B" }
}
});
IRON VB CONVERTER ERROR developers@ironsoftware.com
Description du code
Le code définit une classe nommée OrderMessage qui représente une commande passée par un client. Il possède trois propriétés : OrderId(un nombre entier), CustomerName(une chaîne)et les postes(une liste d'objets Produit).
Le code simule ensuite la publication d'une instance OrderMessage pour recevoir des messages avec un ID de commande de 123, le nom du client "John Doe" et deux articles : "Produit A" et "Produit B" vers un bus de messages à l'aide d'une méthode PublishAsync. Ce bus de messages est probablement un système séparé de distribution de messages aux parties intéressées.
S'abonner à des messages et les traiter de manière asynchrone à l'aide du modèle PubSub
await bus.PubSub.SubscribeAsync<OrderMessage>("orders", async msg =>
{
Console.WriteLine($"Processing order: {msg.OrderId} for {msg.CustomerName}");
// ... your business logic to process the order
});
await bus.PubSub.SubscribeAsync<OrderMessage>("orders", async msg =>
{
Console.WriteLine($"Processing order: {msg.OrderId} for {msg.CustomerName}");
// ... your business logic to process the order
});
IRON VB CONVERTER ERROR developers@ironsoftware.com
La partie initiale du code await bus, s'abonne à la file d'attente pour les messages de commande de manière asynchrone, en utilisant le msg, la console imprimera alors le orderId et le CustomerName chaque fois qu'un msg est reçu. Vous pouvez également assigner une requête var à la fonction asynchrone afin d'utiliser la réponse dans d'autres parties de l'application.
EasyNetQ étend ses capacités au-delà du modèle pub/sub, en offrant un support pour d'autres paradigmes de messagerie :
Request-Reply(RPC): Ce modèle facilite la communication bidirectionnelle lorsqu'un client envoie un message de demande et attend une réponse d'un serveur RPC. Les abonnés peuvent également vérifier les propriétés du message reçu avant de le traiter.
**Au lieu de s'abonner à des files d'attente spécifiques, les abonnés peuvent exprimer leur intérêt pour des sujets, ce qui permet d'acheminer les messages en fonction de clés de routage.
Avantages de l'utilisation d'EasyNetQ
L'intégration d'EasyNetQ dans vos applications C# offre plusieurs avantages :
**EasyNetQ fait abstraction des complexités de RabbitMQ, en fournissant une API conviviale pour la publication et l'abonnement aux messages.
**La file d'attente de messages découple les producteurs de messages des consommateurs, ce qui permet une mise à l'échelle indépendante des composants du système.
Communication asynchrone améliorée: Les opérations asynchrones garantissent un traitement fluide des messages sans bloquer le fil principal de l'application.
Résilience et tolérance aux pannes: Les files d'attente agissent comme des tampons, permettant aux messages d'être récupérés en cas de pannes et favorisant la robustesse du système.
Flexibilité et découplage: Le modèle de publication et d'abonnement favorise l'architecture découplée, encourageant la maintenabilité et facilitant l'intégration de nouveaux composants.
Pour commencer à utiliser IronPDF dans votre application C#, vous devez installer le paquet NuGet IronPDF :
PM > Install-Package IronPdf
PM > Install-Package IronPdf
IRON VB CONVERTER ERROR developers@ironsoftware.com
Une fois installée, vous pouvez utiliser la bibliothèque pour effectuer diverses tâches liées aux PDF.
Générer un PDF à partir de HTML
Créer un PDF à partir de HTML est simple avec IronPDF. Voici un exemple de conversion d'une chaîne HTML de base en PDF :
using IronPdf;
namespace Demo
{
internal class PDF
{
public static void GeneratePDF()
{
IronPdf.License.LicenseKey = "Your-License Key Here";
var htmlContent = "<h1>Hello EasyNetQ, IronPDF!</h1>";
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Export to a file or Stream
pdf.SaveAs("output.pdf");
}
}
}
using IronPdf;
namespace Demo
{
internal class PDF
{
public static void GeneratePDF()
{
IronPdf.License.LicenseKey = "Your-License Key Here";
var htmlContent = "<h1>Hello EasyNetQ, IronPDF!</h1>";
var renderer = new ChromePdfRenderer();
// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Export to a file or Stream
pdf.SaveAs("output.pdf");
}
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
L'extrait de code ci-dessus montre comment créer un PDF à l'aide d'IronPDF. Il définit la clé de licence, quelques exemples de contenu HTML, crée un moteur de rendu en utilisant le moteur de Chrome, convertit le HTML en un document PDF, et enfin enregistre ce PDF en tant que "output.pdf".
Conclusion
EasyNetQ s'avère être un outil indispensable pour simplifier la file d'attente des messages dans les applications C#. Son API flexible, ses fonctionnalités robustes et sa prise en charge des systèmes de bus de messagerie permettent aux développeurs de créer des systèmes distribués évolutifs et flexibles. De la simplification de la communication pub/sub à la fourniture d'un traitement asynchrone des messages et de mécanismes de tolérance aux pannes, EasyNetQ gère efficacement toutes les dépendances requises dans les architectures logicielles de procédures complexes et distantes.
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT Passage par référence en C# (Comment cela fonctionne pour les développeurs)
SUIVANT > Topshelf C# (Comment ça marche pour les développeurs)
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier