IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

MediatR C# (Geliştiriciler için Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 19 Temmuz 2026

MediatR, nesnelerin doğrudan iletişim kurmak yerine bir aracı aracılığıyla iletişim kurmasını sağlayarak, bir .NET kütüphanesi olan aracı desenini uygulamaktadır. Bu yaklaşım, bileşenler arasındaki bağımlılığı düşük seviyede tutmanın arzu edildiği uygulamalarda özellikle faydalıdır. Bu makalede, C# geliştirme bağlamında MediatR'yi detaylı şekilde inceleyeceğiz ve web uygulama projelerinize nasıl entegre edileceği konusunda pratik örnekler ve rehberlik sunacağız. Ayrıca, ASP.NET Core projelerinde PDF işlevselliklerinin entegrasyonu için IronPDF kütüphanesini de inceleyeceğiz.

Aracı Desen ve MediatR'ye Giriş

Mediatr C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - MediatR ve Arabulucu Deseni

Aracı deseni, doğrudan bağımlılıkları azaltacak şekilde nesneler arasındaki etkileşimi kolaylaştıran bir yazılım tasarım desenidir, gevşek bağlılığı artırır. MediatR, nesne iletişimini kolaylaştırmada basitliği ve verimliliği vurgulayarak, iddiasız bir aracı uygulaması sunar.

MediatR kütüphanesinin merkezinde, talepler ve birden fazla işleyici konsepti vardır. Bir istek noktasında, bir nesne, işlenmeyi bekleyen operasyon veya eylem detaylarını kapsar ve MediatR mekanizması ile işlem görmeyi bekler. Her istek, iş ad logicini uygulayan ilgili bir işleyici veya işleyici metodu tarafından ele alınır. Bu yapı, okuma ve yazma işlemlerinin ayrılması daha sürdürülebilir ve ölçeklenebilir yazılım mimarilerine yol açabilecek olan, Komut Sorgu Sorumluluk Ayrımı (CQRS) deseninin uygulanması için özellikle faydalıdır.

Bir .NET Core Projesinde Package Manager Konsolu ile MediatR Kurulumu

Bir ASP.NET Core projesinde MediatR kullanmaya başlamak için önce MediatR paketini kurmanız gerekmektedir. Bu, Visual Studio'daki Package Manager Konsolu aracılığıyla şu komutla yapılabilir:

PM > Install-Package MediatR

Mediatr C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - MediatR Kurulumu

Paketi kurduktan sonra, MediatR'yi ASP.NET Core bağımlılık enjeksiyonu konteynerine eklemelisiniz. Bu genellikle, ASP.NET Core sürümünüze bağlı olarak web uygulamanızın Program.cs veya Startup.cs dosyasında yapılır. Bir minimal API sunum katmanına sahip bir programda bunu nasıl yapabileceğinizi işte burada gösteriyoruz.

// Initialize a new web application
var builder = WebApplication.CreateBuilder(args);

// Add MediatR to the service container
builder.Services.AddMediatR(typeof(Program).Assembly);

// Build the web application
var app = builder.Build();

Program sınıfında, var builder = WebApplication.CreateBuilder(args); web uygulamasını başlatır, MediatR entegrasyonu için sahneyi hazırlar.

İlk MediatR İsteğinizi ve İşleyicinizi Oluşturma

MediatR talepleri, belirli bir işlemi gerçekleştirmek için gereken verileri temsil eden basit sınıflardır. İşte, yeni bir kullanıcı oluşturma komutunu temsil eden bir talep sınıfı örneği.

public class CreateUserCommand : IRequest<int>
{
    public string Name { get; set; }
    public string Email { get; set; }
    public int Id { get; set; }
}

Bu örnekte, CreateUserCommand sınıfı, bu talebin bir tamsayı yanıt beklediğini belirten IRequest<int> arayüzünü uygular ve bu, oluşturulan kullanıcının kimliğini temsil edebilir.

Sonraki adımda, bu istek için bir işleyici oluşturmanız gerekmektedir. Her işleyicinin içinde, Handle metodu, isteğin mantığının yürütüldüğü yerdir:

public class CreateUserHandler : IRequestHandler<CreateUserCommand, int>
{
    public async Task<int> Handle(CreateUserCommand command, CancellationToken token)
    {
        // Implement logic to create a user here
        // For this example, let's pretend we create a user and return the ID
        return await Task.FromResult(1); // Assume the user's ID is 1
    }
}

MediatR'yi Uygulamanızda Kullanma

MediatR'nin kurulumu sürecini izleyerek, uygulamanızın iş akışına entegre edersiniz. Bu genellikle bir ASP.NET Core uygulamasında bir denetleyici veya uç nokta aracılığıyla yapılır. Bir API denetleyicisi kullanarak bir örnek veriyoruz:

[ApiController]
[Route("[controller]")]
public class UsersController : ControllerBase
{
    private readonly IMediator _mediator;

    public UsersController(IMediator mediator)
    {
        _mediator = mediator;
    }

    [HttpPost]
    public async Task<ActionResult<int>> Create(CreateUserCommand command)
    {
        var userId = await _mediator.Send(command);
        return CreatedAtRoute("GetUser", new { id = userId }, command);
    }
}

Bu denetleyicide, Create eylem metodu, _mediator.Send(command)'yi çağırarak CreateUserCommand'i MediatR'ye gönderir. MediatR daha sonra bu komut için uygun işleyiciyi bulur ve yürütür. Sonuç döndürülür ve aynı süreçte bir yanıt oluşturmak için kullanılır.

Temel Taleplerin Ötesi: Bildirimler ve Davranışlar

MediatR ayrıca bildirimleri ve davranışları da destekler. Bildirimler, birden fazla işleyicinin abone olup işleyebileceği mesajlardır ve uygulamanız içinde daha olay odaklı bir yaklaşım sağlanmasına olanak tanır. Davranışlar ise, MediatR talepleriniz için bir tür ara katman gibidir, günlük kaydı, doğrulama veya işlem yönetimi gibi kesilmiş kaygıları uygulamanıza izin verir.

IronPDF Kütüphanesi Tanıtımı

Mediatr C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - IronPDF

IronPDF, uygulamalarında PDF dosyaları oluşturmak, düzenlemek ve bu dosyalarla çalışmak için basit bir yol arayan .NET geliştiricileri için tasarlanmış bir C# kütüphanesidir. Geliştiriciler, web sayfalarını veya HTML kodunu doğrudan PDF formatına dönüştürerek karmaşık API'lerle uğraşmadan PDF oluştirebilirler. IronPDF sadece PDF oluşturmaya sınırlı değildir; aynı zamanda PDF'leri düzenleme özellikleri de sunar, örneğin metin, resim ve sayfalar ekleme veya PDF belgelerindeki formları doldurup düzenleme gibi. Geliştiriciler PDF'lerle kapsamlı bir şekilde çalışabilirler, örneğin PDF dosyalarını birleştirme, ayırma ve parolalar ile izinlerle güvence altına alma gibi görevleri gerçekleştirebilirler.

IronPDF, orijinal düzen ve stillerde hassasiyetle koruyarak HTML'den PDF'e dönüştürme konusunda uzmanlaşmıştır. Bu, raporlar, faturalar ve dokümantasyon gibi web tabanlı içeriklerden PDF oluşturmak için idealdir. HTML dosyalarından, URL'lerden ve hatta ham HTML dizelerinden PDF dosyalarına dönüşümü destekler.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

Kod Örneği

Bu örnekte, MediatR isteğinin içerik veya metadata formundaki bazı medya içeriklerine veya bilgilerine atıfta bulunduğunu varsayıyoruz. MediatR, IronPDF'in işlevselliğiyle doğrudan ilgili olmadığı için, medyanın bilgilerini veya referanslarını içeren HTML içeriğinden bir PDF oluşturmak iyi bir başlangıç ​​noktası oluşturarak bu konuyu ele alacağız.

using IronPdf;

public class PdfGenerator
{
    public void CreatePdfWithMediaInfo(string htmlContent)
    {
        // Insert your License Key here if required
        License.LicenseKey = "License-Key";

        // Initialize the HtmlToPdf renderer
        var renderer = new ChromePdfRenderer();

        // Create an HTML template with media information
        string htmlTemplate = $@"
            <html>
            <head>
                <title>Media Information</title>
            </head>
            <body>
                <h1>Media Details</h1>
                <!-- Insert your media information here -->
                {htmlContent}
            </body>
            </html>";

        // Convert the HTML string to a PDF document
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlTemplate);
        pdfDocument.SaveAs("MediaInformation.pdf");
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Example HTML content with MediatR information
        string htmlContent = @"
            <div>
                <h2>MediatR Information</h2>
                <p>MediatR is a media tracking system...</p>
            </div>";

        // Create an instance of PdfGenerator
        PdfGenerator pdfGenerator = new PdfGenerator();

        // Call the CreatePdfWithMediaInfo method to generate the PDF
        pdfGenerator.CreatePdfWithMediaInfo(htmlContent);

        Console.WriteLine("PDF generated successfully.");
    }
}

Bu kod parçasında, htmlContent değişkeninizin HTML formatında medya bilgilerinizi içermesi gerekir. Bu, metin, resimler, videolara bağlantılar veya herhangi bir HTML uyumlu içeriği içerebilir. IronPDF, bu HTML içeriğini, HTML'de belirtilen düzeni ve formatlamayı koruyarak bir PDF belgesine dönüştürecek.

Mediatr C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 4 - PDF Çıktısı

Sonuç

Bu makalede açıklanan adımları izleyerek, MediatR'yi projelerinize entegre etmek için sağlam bir temel oluşturmuş olmalısınız; temel komut ve sorgu işlemeden başlayarak, bildirimler ve davranışlar gibi daha gelişmiş işlevlere faydalanmaya kadar. Uygulamanız büyüyüp evrimleştikçe, MediatR, kod tabanınıza temiz, sürdürülebilir ve ölçeklenebilir kalmanıza yardımcı olacak araçlar ve desenler sunar.

Sonuç olarak, IronPDF gibi farklı kütüphane ve araçları keşfetmek ve entegre etmek, .NET projelerinizi daha da geliştirebilir. IronPDF, gelişmiş PDF özelliklerinin bir ücretsiz deneme sürümü sunmaktadır. Gelişmiş PDF özellikleri gerektiren projeler için, IronPDF'in lisanslama ücretleri $999'dan başlar ve .NET geliştiricileri için uygulamalarının işlevselliklerini genişletmek isteyenlere sağlam bir çözüm sunar.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez