IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

Microsoft.Extensions.Caching.Memory Örneği (PDF ile) C#

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

.NET uygulamaları için genellikle gerekli olan optimizasyon yöntemleri ile uygulamaları yanıt verici ve etkili bir şekilde inşa etmek mümkündür. Önbellekleme, dağıtılmış bir önbellekte sıkça talep edilen içeriği geçici olarak depolayarak daha hızlı alınmasını sağlama yaklaşımıdır. Bu stratejiyle işlem süresi ve sunucu yükündeki azalma, uygulamanın performansında dikkate değer bir artışa yol açabilir. Ayrıca, önbellek sistemini izlemek ve geliştirmek için performans sayaçları uygulanabilir.

[Önbellekleme](https://en.wikipedia.org/wiki/Cache_(computing) bu bağlamda güçlü bir optimizasyon stratejisidir. Microsoft.Extensions.Caching.Memory, .NET uygulamaları için verimli bir bellek içi nesne önbellekleme çözümü sağlar. PDF merkezciliğe sahip uygulamalarınız, MemoryCache önbelleğini stratejik olarak IronPDF ile birlikte kullanırsanız çok daha hızlı çalışacak ve yanıt verecektir.

C# örneklerini Microsoft.Extensions.Caching.Memory ile etkili bir şekilde IronPDF içine nasıl entegre edeceğimizi inceliyoruz. Bu makalede, IronPDF HTML'den PDF'e Dönüştürme süreciyle ilgili önbelleğe almanın avantajlarını tartışacağız, bazı yararlı uygulama ipuçları vereceğiz ve IronPDF programınızda önbelleğe almayı yapılandırmak için ayrıntılı bir rehber sunacağız. Her şey söylendiğinde ve yapıldığında, etkili ve sezgisel PDF uygulamaları geliştirmek için gereken beceri ve kaynaklara sahip olacaksınız.

Microsoft.Extensions.Caching.Memory: .NET'teki Önbelleklemenin Temeli

Önbellekleme, sıkça erişilen verileri hızlı bir şekilde almak için bellekte depolayan birçok yüksek performanslı .NET uygulamasında kullanılan bir yöntemdir. Microsoft.Extensions, erişilebilir birçok önbellekleme seçeneğinden biridir. Caching.Memory, özellikle güçlü ve uyarlanabilir bir seçenektir. Bu kütüphane, daha geniş bir Microsoft.Extensions.Caching ad alanının bir parçası olarak doğrudan ve etkili bir bellek içi önbellekleme yaklaşımı sunar.

"Microsoft.Extensions.Caching.Memory" içindeki önemli türler

IMemoryCache

  • Bellek içi önbelleği kullanmak için temel yeteneği temsil eden bu arayüz. Önbelleğe alınmış girişleri yönetmek ve eklemek, almak ve kaldırmak için yollar sunar.
  • Ön bellek işlemleriniz için temel giriş noktası olarak düşünülebilir.

MemoryCache

  • IMemoryCache gerçek uygulaması bu sınıftadır. Önbelleğe alınmış ürünler için yönetim ve gerçek bellek içi depolama sağlar.
  • Bağımlılık enjeksiyonu genellikle ASP.NET Core uygulamalarında MemoryCache örneğini almak için kullanılır.

MemoryCacheEntryOptions

Bu sınıf ile belirli önbellek öğeleri için yapılandırma ayarları belirleyebilirsiniz. Bu ayarlar, gibi şeyleri kontrol eder:

  • Son kullanma: Girişin belirli bir aralıkta erişilmediği durumlarda sona ereceği kaydırmalı son kullanma pencereleri veya otomatik olarak sona ereceği mutlak son kullanma sürelerini yapılandırabilirsiniz.
  • Öncelik: Öncelik, önbellek dolduğunda öğelerin çıkarılıp çıkarılmayacağını etkiler. Daha yüksek öncelikli girişlerin çıkarılma olasılığı daha düşüktür.
  • Çıkarım sonrası geri çağırma: Bu, verilerin sona erdiğinde nasıl ele alınacağına dair mantığı ince ayarlamanızı sağlar. Bu özellik, kritik verilerin yenilenmesi, kaynak yönetimi ve kaydetme gerektiğinde özellikle kullanışlıdır.

CacheEntry

  • Önbellekte bu tür, tek bir girişi belirtir. Boyut ayrıntılarını, son kullanma ayarlarını ve önbelleğe alınmış değerleri almak için yöntemler ve özellikler sunar.
  • Temelde, önbellekte tutulan belirli bir veri parçasına dair tüm bilgileri içerir.

ICacheEntry

  • Bu arayüz, önbellek öğesi üzerinde gerçekleştirilebilecek temel etkinlikleri özetler, ancak temel önbellekleme işlemleri için gerekli değildir. Değer ve son kullanma ayrıntılarının nasıl alınacağına dair talimatlar içerir. Bu, dize anahtarını almanız gerektiği senaryolarda daha yaygındır.
  • Bu arayüz, bu özelliklerin pratik bir uygulamasını sunan CacheEntry sınıfı tarafından uygulanmıştır.

Microsoft.Extensions.Caching.Memory Kur ve Yapılandır

Uygulama başlangıcında, ASP.NET Core uygulamasının hizmet koleksiyonu içine önbellek hizmetini yapılandırmak için bellek kullanılır. Aşağıda Microsoft.Extensions.Caching.Memory yapılandırılmış bir ASP.NET Core uygulaması bulunmaktadır:

Gerekli NuGet Paketini Kurun

Önce, projeniz için Microsoft.Extensions.Caching.Memory yüklü olduğundan emin olun. NuGet Paket Yöneticisi Konsolu'nu kullanarak şu komutla yükleyebilirsiniz:

PM > Install-Package Microsoft.Extensions.Caching.Memory

Veya NuGet Paket Yöneticisi'ni kullanarak paketi yükleyebiliriz:

Microsoft.Extensions.Caching.Memory Örneği (PDF ile) C#: Şekil 1 - Microsoft.Extensions.Caching.Memory'yi NuGet Paket Yöneticisi'nde arayın ve yükleyin

Startup.cs'de Hizmetleri Yapılandırın

ASP.NET Core uygulamanızda ConfigureServices metoduna gitmek için Startup.cs dosyasını açın. Bellek içi önbellek hizmetini kurmak için aşağıdaki kodu ekleyin:

using Microsoft.Extensions.Caching.Memory;
public void ConfigureServices(IServiceCollection services)
{
    // Add memory cache service
    services.AddMemoryCache();
    // Other service configurations...
}

Bu kod, bellek önbelleği hizmet nesnesinin uygulamanın hizmet koleksiyonuna eklenmesini ve yapılandırılmasını sağlar. Bellek önbellek sistemi hizmeti, AddMemoryCache fonksiyonu aracılığıyla varsayılan yapılandırmalarıyla kaydedilir.

IMemoryCache Enjekte Et

Önbellek mağazası kurulduktan sonra, önbelleklemeye ihtiyaç duyan herhangi bir sınıf veya bileşen IMemoryCache arayüzünü içine enjekte edebilir. Örneğin bir denetleyici veya hizmet sınıfında:

public class MyService
{
    private readonly IMemoryCache _cache;
    public MyService(IMemoryCache cache)
    {
        _cache = cache;
    }
    // Use _cache to perform caching operations...
}

Bellekten veri önbellekleme ve alınması yöntemleri IMemoryCache arayüzü tarafından sağlanır.

Önbellek Ayarlarını Yapılandırın

Önbellek parametrelerini ayarlayarak, bellek önbelleğinin nasıl davrandığını değiştirebilirsiniz, bunlar arasında boyut sınırlamaları, önbellek girdisi geçersiz kılma taktikleri ve önbellek değeri son kullanma kuralları bulunur. Önbellek seçeneklerini nasıl ayarlayacağınızı gösteren bir örnek:

public void ConfigureServices(IServiceCollection services)
{
    // Configure cache options
    services.AddMemoryCache(options =>
    {
        options.SizeLimit = 1024; // Set the maximum size limit for the cache
        options.CompactionPercentage = 0.75; // Set the percentage of memory to free up when the cache size exceeds the limit
        options.ExpirationScanFrequency = TimeSpan.FromMinutes(5); // Set how often the cache should scan for expired items
    });
    // Other service configurations...
}

Ayarları uygulamanızın gereksinimlerine göre değiştirin.

Bu talimatlar, ASP.NET Core uygulamanızda Microsoft.Extensions.Caching.Memory yapılandırmanıza ve sık erişilen verileri depolayarak ve geri çağırarak hızla ve verimli çalışmasına olanak tanır.

Başlarken

IronPDF Nedir?

IronPDF, geliştiricilerin .NET uygulamaları içinde PDF belgeleri oluşturmasına, düzenlemesine ve görüntülemesine olanak tanır. HTML içeriğinden, görüntülerden veya ham verilerden PDF'ler oluşturmak, PDF'lerle çalışma fonksiyonlarından sadece biridir. Diğer özellikler arasında var olan PDF belgelerine metin, resim ve şekiller eklemek, HTML sayfalarını PDF'lere dönüştürmek ve PDF'lerden metin ve resim çıkarmak bulunur.

Aşağıda IronPDF'nin bazı özellikleri verilmiştir:

  • HTML, PNG ve işlenmemiş verilerden PDF oluşturmak.
  • PDF'lerden resim ve metin çıkarmak.
  • PDF başlıkları, altbilgileri ve filigranlar eklemek.
  • Şifre koruması ve şifreleme ile PDF belgeleri.
  • Form doldurma ve dijital imza özellikleri.

NuGet Paketini Kurun

Projenizde IronPDF paketinin yüklü olduğundan emin olun. NuGet Paket Yöneticisi Konsolu'nu kullanarak yükleyebilirsiniz:

PM > Install-Package IronPdf

ConfigureServices fonksiyonuna erişmek için ASP.NET Core uygulamanızdaki Startup.cs dosyasını açın. IronPDF'yi yapılandırmak için aşağıdaki kodu ekleyin.

using IronPdf;
public void ConfigureServices(IServiceCollection services)
{
    // Configure IronPDF
    services.AddSingleton<HtmlToPdf>();
    // Other service configurations...
}

IronPDF'nin HtmlToPdf hizmetini tekil bir hizmet olarak yapılandırarak, bu kod, uygulamanın sadece bir HtmlToPdf örneği oluşturup kullanmasını sağlar.

IronPDF ile Microsoft.Extensions.Caching.Memory Kullanma

.NET uygulamalarında, Microsoft.Extensions.Caching.Memory, sıkça istenen verilerin daha hızlı alınması için etkili bir depolama yolu sunar.

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Caching.Memory;
using System.Net;
using System.Net.Http.Headers;
using IronPdf;

namespace DemoWebApplication.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class DemoController : ControllerBase
    {
        private readonly IMemoryCache _cache;
        private readonly HtmlToPdf _htmlToPdf;
        private readonly ILogger<DemoController> _logger;

        public DemoController(ILogger<DemoController> logger, IMemoryCache cache, HtmlToPdf htmlToPdf)
        {
            _logger = logger;
            _cache = cache;
            _htmlToPdf = htmlToPdf;
        }

        [HttpGet]
        public FileContentResult Generate()
        {
            string fileName = "Sample.pdf";
            var stream = GeneratePdf("Hello IronPDF");
            return new FileContentResult(stream, "application/octet-stream")
            {
                FileDownloadName = fileName
            };
        }

        private byte[] GeneratePdf(string htmlContent)
        {
            // Object key
            string cacheKey = "GeneratedPdf";
            if (!_cache.TryGetValue(cacheKey, out byte[] pdfBytes))
            {
                // PDF not found in cache, generate it
                var pdfDocument = _htmlToPdf.RenderHtmlAsPdf(htmlContent);
                pdfBytes = pdfDocument.BinaryData;
                // Cache the generated PDF with a sliding expiration of 1 hour
                _cache.Set(cacheKey, pdfBytes, TimeSpan.FromHours(1));
            }
            return pdfBytes;
        }
    }
}

Microsoft ve ASP.NET Microsoft.Extensions.Caching.Memory ile çalışmak için gerekli ad alanlarını içe aktarıyoruz. DemoController den türetilen kontrolör oluşturuyoruz. Bu kontrolör, HTTP üzerinden gönderilen sorgulara yanıt verecektir. IMemoryCache bir örneği kontrolörün kurucusuna enjekte edilir.

ASP.NET Core, hizmetlerin ömrünü, bellek önbelleği de dahil olmak üzere kontrol etmek amacıyla bağımlılık enjeksiyonu sunar. [HttpGet] özniteliği uygulandığında, Generate metodu mağazaya /Demo rotasından HTTP GET isteklerini işleyecek şekilde işaretlenir. Sağlanan önbellek anahtarı kullanılarak önbellekten PDF verilerini almaya çalışıyoruz. Veriler önbellekte bulunamazsa, yeni bir PDF oluşturmak için GeneratePdf fonksiyonunu kullanırız.

Birden fazla uygulama sunucusu içeren bir senaryoda, tüm sunucular arasında tutarlı önbellek işlemleri sağlamak için dağıtılmış önbelleği yapılandırdığınızdan emin olun.

Microsoft.Extensions.Caching.Memory kullanmak için ASP.NET Core uygulamalarında verileri önbelleğe almak ve performansı artırmak için sağlanan belgeler ve örnek kodlara başvurun. Uygulamanızın ihtiyaçlarını karşılamak için son kullanma politikalarını, önbellek anahtarlarını ve önbellek davranışını uygulamada ayarlayabilirsiniz. Üretimi pahalı olan veya birden fazla iş parçacığı tarafından sıkça erişilen verileri önbelleğe almak, genel kullanıcı deneyimini iyileştirebilir ve yanıt sürelerini önemli ölçüde azaltabilir.

Microsoft.Extensions.Caching.Memory Örneği (PDF ile) C#: Şekil 2 - Yukarıdaki koddan elde edilen örnek çıktı

Sonuç

Düşünüldüğünde, Microsoft.Extensions.Caching.Memory, özellikle ASP.NET Core çerçevesine dayanan .NET uygulamalarının ölçeklenebilirliğini ve performansını artırmak için kullanılabilir. Geliştiriciler, bellek içi önbelleği kullanarak kullanıcı deneyimini geliştirebilir, gecikmeyi en aza indirebilir ve veri erişimini optimize edebilir. Kütüphane, ister referans verileri önbelleğe almak, sorgu sonuçlarını önbelleğe almak veya hesaplanan değerleri önbelleğe almak için özel uygulama gereksinimlerine yönelik önbellekleme stratejilerini geliştirmek için esnek ve kullanıcı dostu bir API sağlar. Önbellekleme en iyi uygulamalarını benimsediğinizde ve Microsoft.Extensions.Caching.Memory'i .NET uygulamalarınıza eklediğinizde dikkat çekici hız artışları ve geliştirilmiş uygulama yanıt verebilirliği elde edebilirsiniz.

IronPDF ile dinamik PDF oluşturma özelliklerini ve etkin veri önbelleklemesi için Caching.Memory'i kullanarak, .NET geliştiricileri uygulamalarının hızını büyük ölçüde artırabilir. Bu güçlü kombinasyon, sunucu yükünü azaltarak, kullanıcı deneyimini geliştirerek ve işlem ağırlığını ortadan kaldırarak geliştiricilerin kolayca yüksek performanslı, ölçeklenebilir ve yanıt verebilir uygulamalar tasarlamalarına olanak tanır.

IronPDF uygun bir fiyata satın alınabilir ve paketi satın almak ömür boyu lisans içermektedir. Paket, birden fazla sistem için tek seferlik bir ücret olan $999 ile olağanüstü bir değer sunar. Lisansı olan kullanıcılar için, çevrim içi mühendislik yardımı sunar. Ücretle ilgili daha fazla ayrıntı için lütfen IronPDF Lisanslama Sayfası'nı ziyaret edin. Iron Software tarafından yapılan ürünler hakkında daha fazla bilgi edinmek için Iron Software hakkında sayfayı ziyaret edin.

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