streamjsonrpc c# (Geliştiriciler İçin Nasıl Çalışır)
JSON-RPC protokolünü kullanarak, C#'da StreamJsonRpc, farklı aktarım seviyeleri arasında istemci ve sunucu arasında etkili iletişim sağlar. Bu kütüphane sayesinde, uzaktaki sunucularda yöntemleri yerelmiş gibi çağırarak geliştiricilerin güvenilir dağıtık sistemler oluşturması daha kolay hale gelir. IronPDF ile birlikte kullanıldığında, StreamJsonRpc uygulamanın kabiliyetlerini geliştirerek, JSON-RPC istekleri aracılığıyla aktarılan veriye dayalı dinamik PDF oluşturulmasına olanak tanır. Talep üzerine PDF oluşturması gereken özelleştirilmiş raporlar, faturalar veya belge odaklı herhangi bir uygulama geliştiren geliştiriciler için bu arayüz oldukça yardımcıdır.
HTML, ASPX ve ham verileri yüksek kaliteli PDF yayınlarına dönüştürme desteği ile IronPDF, geliştiriciye içerik düzenleme ve dağıtımında esneklik ve verimlilik kazandırır. StreamJsonRpc ve IronPDF, C# geliştiricilerinin karmaşık PDF'leri uzak yöntem çağrıları ile kolayca birleştiren duyarlı, ölçeklenebilir uygulamalar oluşturmasını sağlamak için birlikte çalışır.
StreamJsonRpc Nedir?
StreamJsonRpc, hafif ve etkili bir tel protokol kullanarak uzak yöntem çağrılarını (RPC) kolaylaştırmak için tasarlanmış çok platformlu bir kütüphanedir. TCP/IP, adlandırılmış borular ve HTTP gibi çeşitli iletişim kanallarını destekleyen bir temel aktarma mekanizması kullanır. Kütüphane, asenkron iletişim için sağlam bir mekanizma sağlayarak gelen istek ve yanıtları işlemek için .NET olaylarını kullanır. Geliştiriciler, StreamJsonRpc API'si kullanarak RPC isteklerini işlemek için yöntem uygulamaları ekleyebilir ve özel davranışlar tanımlayabilir. StreamJsonRpc, çeşitli platformlarda uyumluluğu garantileyen bir .NET Taşınabilir Kütüphane olarak kullanılabilir ve farklı .NET uygulamalarına sorunsuz entegrasyonu sağlar.

StreamJsonRpc'nin temel özelliklerinden biri, bildirimler ve ilerleme raporlaması dahil olmak üzere çift yönlü iletişimi güçlü bir şekilde desteklemesidir. HTTP, Named Pipes ve TCP/IP gibi çeşitli taşıma protokollerini destekleyerek, programlara daha fazla iletişim seçeneği sunar. StreamJsonRpc, JSON-RPC mesajlarının serileştirilmesi ve serisini destekler, çoklu platformlar ve JSON'u destekleyen bilgisayar dilleri arasında uyumluluk sağlar.
StreamJsonRpc performans ve genişletilebilirlik göz önünde bulundurularak tasarlandı. Mevcut C# programlarıyla uyumludur ve güvenilir ve verimli iletişimin kritik olduğu istemci-sunucu uygulamaları, mikro hizmet mimarileri, dağıtık sistemler ve diğer uygulamalar oluşturmak için kullanılabilir. C# projelerine uzaktan yöntem çağrılarını entegre ederken, geliştiriciler güvenilirlik ve kullanımı kolay olduğu için bunu tercih eder.
StreamJsonRpc Özellikleri
C#'un StreamJsonRpc'si, JSON-RPC protokol temelli istemci-sunucu uygulama iletişimini kolaylaştırma ve iyileştirme amacına yönelik kapsamlı bir işlevsellik koleksiyonu sunar.
Uzak Yöntem Çağrıları (RPC)
StreamJsonRpc, istemcilerin uzaktaki bir sunucuda, uzak yöntem çağrıları vasıtasıyla yöntemleri çağırmalarını sağlar. Uzak işlemleri yerel fonksiyon çağrıları olarak ele alır. Ağ iletişimi ince noktalarını maskeler, bu soyutlama dağıtık uygulamalar oluşturmayı kolaylaştırır.
Çift Yönlü İletişim
Kütüphane, çift yönlü istemci-sunucu iletişimini destekler. Gerçek zamanlı iletişim ve güncellemeler, istemcilerin sunuculara istek göndermelerini ve sunucuların yanıt olarak bildirimlerde veya sonuçlarda bulunmalarına olanak tanır.
Taşıma Katmanı Agnostiği
StreamJsonRpc'nin taşıma katmanı agnostiği olması, HTTP, Named Pipes ve TCP/IP dahil olmak üzere çeşitli taşıma protokolleri üzerinde çalışabilmesini sağlar. Bu uyarlanabilirlik sayesinde, geliştiriciler uygulama gereksinimlerine ve ağ ayarlarına göre en iyi taşıma yöntemini seçebilir.
Serileştirme ve Serisini Destekleme
JSON-RPC mesajlarının serileştirilmesini ve serisini yönetir, farklı platformlar ve JSON yetenekli bilgisayar dilleri arasında sorunsuz iletişimi garantiler.
İlerleme Raporlaması
StreamJsonRpc, uzun süreli etkinlikler için ilerleme raporlama tekniklerini destekler. Bu özellik, kullanıcı deneyimini ve şeffaflığı artırır ve sunucuların devam eden süreçlerin durumu hakkında istemcileri bilgilendirmesine olanak sağlar.
Hata Yönetimi
Uzaktan yöntemlerin çağrılması sırasında ortaya çıkan istisnalar ve sorunlar için kapsamlı hata işleme özelliklerine sahiptir. Bu, dağıtılmış sistemlerin dayanıklılığını ve güvenilirliğini garantiler.
Genişleme Noktaları
StreamJsonRpc, geliştiriciler tarafından işlevselliğini değiştirmek veya mevcut uygulama mimarileriyle birleştirmek için genişletilebilir. Esnek yapısı sayesinde çeşitli entegrasyon gereksinimlerine ve uygulama senaryolarına uyarlanabilir.
Performans Optimizasyonu
Verimli özel mesaj işleme ve taşıma katmanı yönetimi aracılığıyla, StreamJsonRpc, istemci-sunucu iletişiminde verimliliği en üst düzeye çıkarır ve düşük yük garantiler.
Asenkron Destek
Asenkron işlemleri kullanarak, uygulamaların iyileştirilmiş yanıt verme ve ölçeklenebilirlik kazanmalarını sağlar. Asenkron iletişim paternlerini tamamen destekler.
İşler Arası Çalışabilirlik
JSON-RPC standardına uyum sağlayarak, StreamJsonRpc, JSON'u destekleyen diğer dillerdeki hizmetlerle birlikte çalışarak, farklı bağlamlarda sorunsuz entegrasyona yol açar.
JSON-RPC spesifikasyonunun ötesinde, sıkı ikili seri yazımı ve dinamik istemci proxy gibi özellikler içerir.
Create and Config StreamJsonRpc C
C# uygulamasında StreamJsonRpc oluşturmak ve yapılandırmak için bir istemci ve bir sunucu kurulmalıdır. Her bölüm için ayrıntılı talimatlar aşağıda verilmiştir:
Projenizi Kurun
Öncelikle, .NET projenizin hazır olduğundan emin olun. Visual Studio veya .NET CLI ile yeni bir tane oluşturabilirsiniz.
dotnet new console -n StreamjsonrpcExample
cd StreamjsonrpcExample
dotnet new console -n StreamjsonrpcExample
cd StreamjsonrpcExample
StreamJsonRpc Paketini Yükleme
JSON-RPC iletişimini gerçekleştirmek için NuGet'ten StreamJsonRpc paketini yükleyin. Gerekli kütüphaneleri içerir.
dotnet add package StreamJsonRpc
dotnet add package StreamJsonRpc
JSON-RPC Sunucusunu Uygulama
JSON-RPC için sunucu olarak işlev görecek bir sınıf oluşturun. Bu basit örneği inceleyin:
using Microsoft.AspNetCore.Hosting;
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
public class MyService
{
// Asynchronous method to add two integers
public Task<int> AddAsync(int a, int b)
{
return Task.FromResult(a + b);
}
// Asynchronous method to greet a user
public Task<string> GreetAsync(string name)
{
return Task.FromResult($"Hello, {name}!");
}
}
class Program
{
static void Main(string[] args)
{
// Initialize the service offering RPC methods
var service = new MyService();
// Create a StreamJsonRpc server listening on websockets
var jsonRpc = new JsonRpc(new ServerWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
// Add service as RPC target
jsonRpc.AddLocalRpcTarget(service);
// Start listening for incoming JSON-RPC requests
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
// Wait for user input to stop the server
Console.ReadKey();
// Dispose resources when done
jsonRpc.Dispose();
}
}
using Microsoft.AspNetCore.Hosting;
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
public class MyService
{
// Asynchronous method to add two integers
public Task<int> AddAsync(int a, int b)
{
return Task.FromResult(a + b);
}
// Asynchronous method to greet a user
public Task<string> GreetAsync(string name)
{
return Task.FromResult($"Hello, {name}!");
}
}
class Program
{
static void Main(string[] args)
{
// Initialize the service offering RPC methods
var service = new MyService();
// Create a StreamJsonRpc server listening on websockets
var jsonRpc = new JsonRpc(new ServerWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
// Add service as RPC target
jsonRpc.AddLocalRpcTarget(service);
// Start listening for incoming JSON-RPC requests
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
// Wait for user input to stop the server
Console.ReadKey();
// Dispose resources when done
jsonRpc.Dispose();
}
}
Imports Microsoft.AspNetCore.Hosting
Imports StreamJsonRpc
Imports System
Imports System.Threading.Tasks
Public Class MyService
' Asynchronous method to add two integers
Public Function AddAsync(ByVal a As Integer, ByVal b As Integer) As Task(Of Integer)
Return Task.FromResult(a + b)
End Function
' Asynchronous method to greet a user
Public Function GreetAsync(ByVal name As String) As Task(Of String)
Return Task.FromResult($"Hello, {name}!")
End Function
End Class
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Initialize the service offering RPC methods
Dim service = New MyService()
' Create a StreamJsonRpc server listening on websockets
Dim jsonRpc As New JsonRpc(New ServerWebSocketJsonRpcMessageHandler("ws://localhost:8080"))
' Add service as RPC target
jsonRpc.AddLocalRpcTarget(service)
' Start listening for incoming JSON-RPC requests
jsonRpc.StartListening()
Console.WriteLine("JsonRpc server listening on ws://localhost:8080")
Console.WriteLine("Press any key to stop the server...")
' Wait for user input to stop the server
Console.ReadKey()
' Dispose resources when done
jsonRpc.Dispose()
End Sub
End Class
MyService Sınıfı: Müşterinin uzaktan çağırabileceği, AddAsync ve GreetAsync gibi yöntemleri belirtir.

Bu, yeni bir JsonRpc örneği başlatır, MyService başlatır ve ws://localhost:8080'da dinlemek için bir WebSocket mesaj işleyici yapılandırır. Sunucu, yeni bir yerel RPC hedefi olarak MyService'yi açar ve JSON-RPC sorgularının gelmesini beklemeye başlar. Dinlemeyi durdurmak ve kaynakları bırakmak için bir tuşa basın.
İstemci Yapılandırması
JSON-RPC için istemci olarak işlev görecek bir sınıf oluşturun. Bu basit örneği inceleyin:
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Create a JSON-RPC client connected to the WebSocket server endpoint
var proxy = new JsonRpc(new ClientWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
// Start listening for incoming messages from the server
await proxy.StartListeningAsync();
// Invoke the AddAsync method on the server
var resultAdd = await proxy.InvokeAsync<int>("AddAsync", 10, 20);
Console.WriteLine($"AddAsync result: {resultAdd}");
// Invoke the GreetAsync method on the server
var resultGreet = await proxy.InvokeAsync<string>("GreetAsync", "John");
Console.WriteLine($"GreetAsync result: {resultGreet}");
// Dispose the proxy when done
proxy.Dispose();
}
}
using StreamJsonRpc;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Create a JSON-RPC client connected to the WebSocket server endpoint
var proxy = new JsonRpc(new ClientWebSocketJsonRpcMessageHandler("ws://localhost:8080"));
// Start listening for incoming messages from the server
await proxy.StartListeningAsync();
// Invoke the AddAsync method on the server
var resultAdd = await proxy.InvokeAsync<int>("AddAsync", 10, 20);
Console.WriteLine($"AddAsync result: {resultAdd}");
// Invoke the GreetAsync method on the server
var resultGreet = await proxy.InvokeAsync<string>("GreetAsync", "John");
Console.WriteLine($"GreetAsync result: {resultGreet}");
// Dispose the proxy when done
proxy.Dispose();
}
}
Imports StreamJsonRpc
Imports System
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Create a JSON-RPC client connected to the WebSocket server endpoint
Dim proxy = New JsonRpc(New ClientWebSocketJsonRpcMessageHandler("ws://localhost:8080"))
' Start listening for incoming messages from the server
Await proxy.StartListeningAsync()
' Invoke the AddAsync method on the server
Dim resultAdd = Await proxy.InvokeAsync(Of Integer)("AddAsync", 10, 20)
Console.WriteLine($"AddAsync result: {resultAdd}")
' Invoke the GreetAsync method on the server
Dim resultGreet = Await proxy.InvokeAsync(Of String)("GreetAsync", "John")
Console.WriteLine($"GreetAsync result: {resultGreet}")
' Dispose the proxy when done
proxy.Dispose()
End Function
End Class
Bu örnek, bir JsonRpc örneği başlatmak için ws://localhost:8080'ye bir bağlantı kurar ve bir WebSocket mesaj işleyici kullanır. Ardından sunucuda tanımlanmış olan AddAsync ve GreetAsync yöntemlerini etkinleştirir (MyService) ve JSON-RPC sunucusuyla bir bağlantı kurar. Son olarak, istemci, sunucunun döndürdüğü sonuçları gösterir ve RPC çağrıları tamamlandıktan sonra kaynakları serbest bırakır.

Başlarken
PDF sayfaları, StreamJsonRpc'yi IronPDF ile entegre ederek ve JSON-RPC sorguları aracılığıyla aktarılan verileri kullanarak C# uygulamalarında dinamik olarak oluşturulabilir. Bu, IronPDF ve StreamJsonRpc'yi kurmak için temel bir rehber:
IronPDF Nedir?
IronPDF C# programları tarafından PDF belgeleri oluşturmak, okumak ve düzenlemek için kullanılabilir. Bu araç, geliştiricilerin HTML, CSS ve JavaScript bilgilerini baskıya hazır, yüksek kaliteli PDF'lere dönüştürmesini kolaylaştırır. Başlık ve alt bilgiler ekleme, PDF'leri bölme ve birleştirme, belgeleri damgalama ve HTML'yi PDF'e dönüştürme gibi önemli görevler arasındadır. IronPDF, hem .NET Framework hem de .NET Core'yi desteklediği için çeşitli uygulamalar için yararlıdır.
PDF'ler, kullanımı kolay ve çeşitli içerik sunan belgeler oldukları için geliştiriciler tarafından ürünlerine kolayca entegre edilebilirler. IronPDF'nin karmaşık düzenleri ve formatlamaları kolayca işleyebilmesi, oluşturulan PDF'lerin orijinal HTML metnine neredeyse tam olarak benzemesini sağlar.

IronPDF Özellikleri
HTML'den PDF Üretimi
JavaScript, HTML, ve CSS'i PDF'e dönüştür. IronPDF, medya sorguları ve duyarlı tasarım gibi modern web standartlarını destekler. HTML ve CSS kullanarak PDF belgeleri, raporları ve faturaları dinamik bir şekilde süslemek için kullanışlı bir araçtır.
PDF Düzenleme
Önceden varolan PDF'lere metin, resimler ve diğer içerik eklenebilir. PDF dosyalarından metin ve görüntüleri çıkarın. Geliştiricileri birden fazla PDF'yi tek bir dosyada birleştirebilir veya PDF dosyalarını birden çok ayrı belgeye bölebilir. Filigranlar, açıklamalar, başlıklar ve altbilgiler ekleyin.
PDF Dönüşümü
IronPDF ile Word, Excel ve görüntü dosyaları da dahil olmak üzere çeşitli dosya formatlarını PDF'e dönüştürmek mümkündür. Bununla birlikte, PDF'yi görüntüye dönüştürme (PNG, JPEG, vb.) işlemlerini de gerçekleştirebilirsiniz.
Performans ve Güvenilirlik
Sanayi ortamlarında aranan yüksek performans ve güvenilirlik tasarım özellikleridir. IronPDF, büyük belge setlerini kolaylıkla idare eder.
IronPDF Kurulumu
PDF'lerle .NET projelerinde çalışmak için gerekli araçları elde etmek için IronPDF paketini yükleyin.
dotnet add package IronPdf
dotnet add package IronPdf
IronPDF ile StreamJsonRpc
Bir Hizmet Sınıfı Oluşturun
Alınan verilerden PDF oluşturacak yöntemleri hizmet sınıfı PdfService.cs'da sağlayın. Bir örnek olarak:
using IronPdf;
using System.IO;
using System.Threading.Tasks;
public class PdfService
{
// Asynchronously generates a PDF from HTML content
public async Task<byte[]> GeneratePdfAsync(string htmlContent)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
return await pdf.BinaryDataAsync();
}
}
using IronPdf;
using System.IO;
using System.Threading.Tasks;
public class PdfService
{
// Asynchronously generates a PDF from HTML content
public async Task<byte[]> GeneratePdfAsync(string htmlContent)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
return await pdf.BinaryDataAsync();
}
}
Imports IronPdf
Imports System.IO
Imports System.Threading.Tasks
Public Class PdfService
' Asynchronously generates a PDF from HTML content
Public Async Function GeneratePdfAsync(ByVal htmlContent As String) As Task(Of Byte())
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
Return Await pdf.BinaryDataAsync()
End Function
End Class
StreamJsonRpc Sunucusunu Yapılandırın
StreamJsonRpc için, GeneratePdfAsync yöntemini bir akış JSON-RPC üzerinden sunmak için sunucuda arayüz olarak Program.cs kullanın:
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Initialize PdfService which generates PDFs
var service = new PdfService();
// Create JSON-RPC server listening on websockets
var jsonRpc = new JsonRpc(new WebSocketRpcServerMessageHandler(new Uri("ws://localhost:8080")));
// Add the PdfService as an RPC target
jsonRpc.AddLocalRpcTarget(service);
// Start listening for incoming JSON-RPC requests
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
// Wait for user input to stop the server
Console.ReadKey();
// Gracefully stop listening and dispose resources when done
await jsonRpc.StopListeningAsync();
jsonRpc.Dispose();
}
}
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Initialize PdfService which generates PDFs
var service = new PdfService();
// Create JSON-RPC server listening on websockets
var jsonRpc = new JsonRpc(new WebSocketRpcServerMessageHandler(new Uri("ws://localhost:8080")));
// Add the PdfService as an RPC target
jsonRpc.AddLocalRpcTarget(service);
// Start listening for incoming JSON-RPC requests
jsonRpc.StartListening();
Console.WriteLine("JsonRpc server listening on ws://localhost:8080");
Console.WriteLine("Press any key to stop the server...");
// Wait for user input to stop the server
Console.ReadKey();
// Gracefully stop listening and dispose resources when done
await jsonRpc.StopListeningAsync();
jsonRpc.Dispose();
}
}
Imports StreamJsonRpc
Imports System
Imports System.Net.WebSockets
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Initialize PdfService which generates PDFs
Dim service = New PdfService()
' Create JSON-RPC server listening on websockets
Dim jsonRpc As New JsonRpc(New WebSocketRpcServerMessageHandler(New Uri("ws://localhost:8080")))
' Add the PdfService as an RPC target
jsonRpc.AddLocalRpcTarget(service)
' Start listening for incoming JSON-RPC requests
jsonRpc.StartListening()
Console.WriteLine("JsonRpc server listening on ws://localhost:8080")
Console.WriteLine("Press any key to stop the server...")
' Wait for user input to stop the server
Console.ReadKey()
' Gracefully stop listening and dispose resources when done
Await jsonRpc.StopListeningAsync()
jsonRpc.Dispose()
End Function
End Class

IronPDF İstemcisi Oluştur
Sunucuya bağlanmak ve bir PDF oluşturma talebinde bulunmak için StreamJsonRpc istemcisini uygulayın (ClientProgram.cs):
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Text;
using System.Threading.Tasks;
using System.IO;
class ClientProgram
{
static async Task Main(string[] args)
{
// Create JSON-RPC client connected to WebSocket server endpoint
var proxy = new JsonRpc(new WebSocketRpcClientMessageHandler(new Uri("ws://localhost:8080")));
// Start listening for incoming messages from the server
await proxy.StartListeningAsync();
// Example HTML content
string htmlContent = "<html><body><h1>Hello, IronPDF!</h1></body></html>";
// Invoke GeneratePdfAsync method on the server
var pdfBytes = await proxy.InvokeAsync<byte[]>("GeneratePdfAsync", htmlContent);
// Save the resulted PDF to a file
File.WriteAllBytes("GeneratedPdf.pdf", pdfBytes);
Console.WriteLine("PDF generated: GeneratedPdf.pdf");
// Dispose the proxy when done
proxy.Dispose();
}
}
using StreamJsonRpc;
using System;
using System.Net.WebSockets;
using System.Text;
using System.Threading.Tasks;
using System.IO;
class ClientProgram
{
static async Task Main(string[] args)
{
// Create JSON-RPC client connected to WebSocket server endpoint
var proxy = new JsonRpc(new WebSocketRpcClientMessageHandler(new Uri("ws://localhost:8080")));
// Start listening for incoming messages from the server
await proxy.StartListeningAsync();
// Example HTML content
string htmlContent = "<html><body><h1>Hello, IronPDF!</h1></body></html>";
// Invoke GeneratePdfAsync method on the server
var pdfBytes = await proxy.InvokeAsync<byte[]>("GeneratePdfAsync", htmlContent);
// Save the resulted PDF to a file
File.WriteAllBytes("GeneratedPdf.pdf", pdfBytes);
Console.WriteLine("PDF generated: GeneratedPdf.pdf");
// Dispose the proxy when done
proxy.Dispose();
}
}
Imports StreamJsonRpc
Imports System
Imports System.Net.WebSockets
Imports System.Text
Imports System.Threading.Tasks
Imports System.IO
Friend Class ClientProgram
Shared Async Function Main(ByVal args() As String) As Task
' Create JSON-RPC client connected to WebSocket server endpoint
Dim proxy = New JsonRpc(New WebSocketRpcClientMessageHandler(New Uri("ws://localhost:8080")))
' Start listening for incoming messages from the server
Await proxy.StartListeningAsync()
' Example HTML content
Dim htmlContent As String = "<html><body><h1>Hello, IronPDF!</h1></body></html>"
' Invoke GeneratePdfAsync method on the server
Dim pdfBytes = Await proxy.InvokeAsync(Of Byte())("GeneratePdfAsync", htmlContent)
' Save the resulted PDF to a file
File.WriteAllBytes("GeneratedPdf.pdf", pdfBytes)
Console.WriteLine("PDF generated: GeneratedPdf.pdf")
' Dispose the proxy when done
proxy.Dispose()
End Function
End Class
PdfService.cs sınıfı, IronPDF kullanarak bir C# uygulamasının PDF belgeleri oluşturmasını kolaylaştıran StreamJsonRpc sunucu uygulamasının temel bir parçasıdır. IronPDF'in RenderHtmlAsPdf kullanılarak, bu hizmet sınıfı HTML materyalini PDF formatına dönüştürme yöntemlerini içerir. HTML içeriği, asenkron olarak atanan (async Task<byte[]> GeneratePdfAsync(string htmlContent)) GeneratePdfAsync yöntemi üzerinden giriş olarak kabul edilir.
Bu yöntem, dönüşümü gerçekleştirmek için bir ChromePdfRenderer örneği oluşturur ve RenderHtmlAsPdf(htmlContent) içeren bir PDF belgesi üretir. Oluşturulan PDF'in ikili verisi, daha sonra asenkron olarak geri getirilir (pdf.BinaryDataAsync()) ve ardından veri byte[] dizisi olarak geri döndürülür.

Bu yöntem hızlı ve duyarlı PDF oluşturma garantiler ve belgelerin hızla üretilmesi gereken uygulamalar için uygun hale getirir. PDF oluşturma mantığı, geliştiricilerin bu işlevi StreamJsonRpc üzerinden entegre etmesini ve açığa çıkarmasını kolaylaştıran PdfService.cs içerisinde yer alır. Bu, uzak istemcilerin PDF oluşturma görevlerini modülerliği ve sunucu tarafı tasarımın netliğini koruyarak pürüzsüz bir şekilde çağırmalarını sağlar.

Sonuç
Özetle, geliştiriciler, StreamJsonRpc ile IronPDF'yi birleştirerek uzaktan yöntem çağrılarını (RPC) destekleyen güçlü PDF üretim yeteneklerine sahip güvenilir ve etkili .NET uygulamaları oluşturabilirler. Uzaktan yöntem çağrıları için hafif bir protokol olan JSON-RPC'yi kullanarak, StreamJsonRpc istemci ve sunucu bileşenleri arasında sorunsuz iletişim sağlar. Geliştiriciler bunu IronPDF ile birlikte kullanarak, bu uzak çağrıların sonuçlarına dayalı olarak dinamik veri odaklı PDF'ler oluşturabilirler.
Bu entegrasyon, raporlar, faturalar veya mevcut verileri en iyi şekilde temsil etmesi gereken belgeleri hazırlarken özellikle yararlıdır, çünkü gerçek zamanlı veri alımı ve PDF çıktısı sağlar. Bu teknolojilerin entegrasyonu geliştirme sürecini optimize eder, performansı artırır ve uygulamanın karmaşık iş ihtiyaçlarını etkili bir şekilde karşılama kapasitesini güçlendirir.
IronPDF ve Iron Software Geliştirme Araçları ile geliştiriciler, bir başlangıç fiyatı olan $999 ile daha fazla web uygulaması ve özellik oluşturabilir. Bunu, çekirdek kavramlarını son derece esnek Iron Yazılım aracılığıyla birleştirerek başarır.
Geliştiriciler için projeye uygun modeli seçmek daha kolay olacaktır, çünkü tüm lisans seçenekleri açıkça açıklanmıştır. Yukarıda listelenen avantajlar, geliştiricilerin çeşitli sorunlara koordineli, verimli ve zamanında çözümler üretmelerini kolaylaştırır.
Sıkça Sorulan Sorular
HTML'yi C# içerisinde PDF'ye nasıl dönüştürebilirim?
Bir PDF kütüphanesinin RenderHtmlAsPdf yöntemini kullanarak HTML dizeleri PDF'lere dönüştürebilirsiniz. Ek olarak, HTML dosyalarını PDF'lere dönüştürmek, RenderHtmlFileAsPdf yöntemi kullanılarak gerçekleştirilebilir.
StreamJsonRpc nedir ve C#'da nasıl çalışır?
StreamJsonRpc, JSON-RPC protokolünü kullanarak uzaktan prosedür çağrılarını kolaylaştıran bir C# kütüphanesidir. İstemciler ve sunucular arasında TCP/IP, adlandırılmış kanallar ve HTTP gibi çeşitli aktarım protokolleri üzerinden çift yönlü iletişim sağlar.
StreamJsonRpc, PDF oluşturma yeteneklerini nasıl geliştirir?
StreamJsonRpc, uzak istemcilerin JSON-RPC kullanarak PDF oluşturma görevlerini gerçekleştirmesine olanak tanıyarak PDF oluşturma yeteneklerini geliştirir, böylece HTML içeriğini dinamik olarak PDF'lere dönüştürmek için bir PDF kütüphanesi kullanılabilir.
StreamJsonRpc, dağıtılmış sistemler için neden faydalıdır?
StreamJsonRpc, uzaktan yöntem çağrılarını sorunsuz bir şekilde sağladığı, asenkron işlemleri desteklediği ve sağladığı güçlü hata yönetimi ile sistem güvenilirliğini ve verimliliğini artırdığı için dağıtılmış sistemler için faydalıdır.
C# projesinde StreamJsonRpc'yi kurmak için hangi adımlar izlenir?
C# projesinde StreamJsonRpc'yi kurmak için, bir .NET projesi oluşturmanız, StreamJsonRpc paketini NuGet üzerinden yüklemeniz ve seçilen bir aktarım protokolü üzerinden iletişim için yapılandırılmış hem bir JSON-RPC sunucusu hem de bir istemci kurmanız gerekir.
StreamJsonRpc, bir .NET uygulamasında rapor veya fatura üretiminde kullanılabilir mi?
Evet, StreamJsonRpc'yi bir PDF oluşturma kütüphanesi ile entegre ederek, JSON-RPC isteklerine yanıt olarak raporlar veya faturalar için dinamik olarak PDF'ler oluşturabilirsiniz, bu da belge merkezli uygulamalar için ideal hale getirir.
StreamJsonRpc hangi aktarım protokollerini destekler?
StreamJsonRpc, HTTP, Adlandırılmış Borular ve TCP/IP dahil çeşitli aktarım protokollerini destekleyen bir aktarım katmanı bağımsızdır, böylece geliştiriciler uygulamalarının özgün ihtiyaçlarına göre seçim yapabilirler.
Bir PDF kütüphanesi, C#'da belge manipülasyonunu nasıl kolaylaştırır?
C#'da bir PDF kütüphanesi, PDF'ler oluşturma, okuma ve düzenleme imkanı tanıyarak belge manipülasyonunu kolaylaştırır. HTML, CSS ve JavaScript'i PDF'lere dönüştürmenin yanı sıra başlıklar, altlıklar ekleme ve ayırma veya birleştirme gibi işlemler yapma desteği sunar.
StreamJsonRpc'de asenkron işlemlerin kullanmanın faydaları nelerdir?
StreamJsonRpc'de asenkron işlemler, gelen talepleri ve cevapları etkin bir şekilde yönetmek için .NET olaylarını kullanarak uygulama yanıt verme hızını ve ölçeklenebilirliği artırır, dağıtılmış sistemlerde bunu sağlamaktadır.
StreamJsonRpc güvenilir hata yönetimini nasıl sağlar?
StreamJsonRpc, uzaktan yöntem çağrıları sırasında istisnalar ve sorunları yönetmek için kapsamlı özellikler sağlayarak, dağıtılmış sistem esnekliğini sürdürür.




