IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

LazyCache C# (Geliştiriciler İçin Nasıl Çalışır)

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

Önbellekleme, sıkça erişilen verileri bellekte veya daha hızlı bir depolama ortamında saklayarak performansı artırmak için yazılım geliştirmede temel bir tekniktir. C# dilinde, LazyCache, geliştiricilerin yoğun yük senaryolarında uygulamalarında önbelleği etkili bir şekilde kullanmalarını kolaylaştırarak, thread-safe önbellek uygulamasını basitleştiren popüler bir kütüphanedir.

LazyCache nedir?

LazyCache, .NET/ASP.NET Core uygulamaları için basit ve sezgisel bir API sunan temel bir önbellekleme sağlayıcı kütüphanesidir. NuGet paketi olarak mevcuttur ve C# projelerine kolayca entegre edilebilir. LazyCache'in birincil hedefi, önbellek uygulamasını basitleştirmek ve çift kilitlemeli önbellek deseni kullanarak önbelleğe alınmış bilgileri yönetmek için gereken şablon kodunu azaltmaktır.

LazyCache'in Ana Özellikleri:

  1. Basit API: LazyCache, önbelleklenmiş öğeleri eklemek, almak ve kaldırmak için basit bir API sağlar. Geliştiriciler, karmaşık önbellekleme mekanizmalarıyla uğraşmadan önbellekleme özelliğini hızlı bir şekilde uygulamalarına veya web servis çağrılarına entegre edebilirler.

  2. Otomatik Süre Sonu: LazyCache, yapılandırılabilir süre sonu politikalarına göre önbelleğe alınan öğelerin otomatik olarak süresinin dolmasını destekler. Geliştiriciler, önbellekteki öğeler için sona erme süresini belirleyebilir ve LazyCache, süresi dolan öğeleri önbellek verilerinden kaldırır.

  3. Hafıza İçi Önbellekleme: LazyCache, önbelleğe alınmış öğeleri varsayılan olarak bellekte saklar ve önbelleğe alınmış verilere hızlı erişim gereken senaryolar için uygun hale getirir. Bellek içi önbellekleme, önbelleğe alınmış veriler için düşük gecikme süresi ve yüksek verim sağlar.

  4. Thread-Safe İşlemler: LazyCache, önbelleğe alınmış öğeleri ekleme, alma ve kaldırma için thread-safe işlemler sağlar. Bu, birden fazla iş parçacığının veri bozulması veya tutarsızlık riski olmadan belleğe eşzamanlı olarak erişebilmesini sağlar.

  5. Genişletilebilirlik: LazyCache, geliştiricilerin özel gereksinimlerine göre önbellek davranışını özelleştirmesine olanak tanıyan bir genişletilebilirlik ile tasarlanmıştır. Dağıtık önbellekleme veya kalıcılıkla önbellekleme gibi özel önbellekleme stratejileri uygulamak için kancalar sağlar.

C# İçinde LazyCache Nasıl Kullanılır:

LazyCache'i C#'ta kullanmak, sezgisel API'si sayesinde oldukça basittir. Aşağıda, LazyCache kullanarak bir metod çağrısının sonucunu önbelleğe almayı gösteren temel bir örnek bulunmaktadır:

using LazyCache;

public class DataService
{
    // Define a private readonly field for the cache
    private readonly IAppCache _cache;

    // Constructor to initialize the cache
    public DataService(IAppCache cache)
    {
        _cache = cache;
    }

    // Method to retrieve data (cached or fetched)
    public string GetData()
    {
        return _cache.GetOrAdd("dataKey", () =>
        {
            // Simulate expensive operation such as database calls
            return FetchDataFromDatabase();
        });
    }

    // Simulate fetching data from a database
    private string FetchDataFromDatabase()
    {
        return "Cached Data";
    }
}

Bu örnekte, DataService sınıfı, GetData() metodunun sonucunu önbelleğe almak için LazyCache kullanır. GetOrAdd() metodu, belirtilen anahtarla ('dataKey') ilişkilendirilmiş olan, varsa, önbelleğe alınmış veriyi getirir. Veri önbellekte değilse, sağlanan temsilci FetchDataFromDatabase() veriyi almak için çalıştırılır ve bu veri gelecekteki kullanım için önbelleğe alınır.

IronPDF'ye Giriş

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

IronPDF, .NET projelerinde PDF belgelerinden içerik oluşturma, düzenleme ve çıkarma olanağı tanıyan güçlü bir C# PDF kütüphanesidir. İşte bazı temel özellikler:

  1. HTML'den PDF'ye Dönüştürme:

    • HTML, CSS ve JavaScript içeriğini PDF formatına dönüştürün.
    • Piksel-mükemmellikte PDF'ler için Chrome Rendering Engine'i kullanın.
    • URL'lerden, HTML dosyalarından veya HTML dizelerinden PDF üretin.
  2. Görüntü ve İçerik Dönüştürme:

    • Resimleri PDF'ye ve PDF'den dönüştürün.
    • Mevcut PDF'den metin ve resim çıkarın.
    • Çeşitli resim formatları için destek.
  3. Düzenleme ve Manipülasyon:

    • PDF'ler için özellikleri, güvenliği ve izinleri ayarlayın.
    • Dijital imzalar ekleyin.
    • Meta verileri ve revizyon geçmişini düzenleyin.
  4. Çapraz Platform Desteği:

    • .NET Core (8, 7, 6, 5, ve 3.1+), .NET Standard (2.0+), ve .NET Framework (4.6.2+) ile çalışır.
    • Windows, Linux ve macOS ile uyumludur.
    • Kolay kurulum için NuGet üzerinde mevcuttur.

IronPDF ve LazyCache Kullanarak PDF Belgesi Oluşturma

Başlangıç olarak, aşağıda olduğu gibi Visual Studio kullanarak bir Console uygulaması oluşturun.

LazyCache C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Konsol Uygulaması

Proje Adını Sağlayın.

LazyCache C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - Proje Yapılandırması

.NET sürümünü sağlayın.

LazyCache C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 4 - Hedef Çerçeve

IronPDF paketini yükleyin.

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

LazyCache paketini kurarak önbelleğe alınmış yöntem çağrıları ekleyin.

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

using LazyCache;
using IronPdf; // Add the IronPdf namespace
using System;

namespace CodeSample
{
    internal class LazyCacheDemo
    {
        public static void Execute()
        {
            // Instantiate the Chrome PDF Renderer
            var renderer = new ChromePdfRenderer();
            var content = "<h1>Demo LazyCache and IronPDF</h1>";
            content += "<h2>Create CachingService</h2>";

            // Create the cache service using LazyCache
            IAppCache cache = new CachingService();

            var cacheKey = "uniqueKey"; // Unique key for caching the content

            // Define a factory method to generate the cacheable data
            Func<string> expensiveLongRunMethod = () =>
            {
                // Render the HTML content to a PDF
                var pdf = renderer.RenderHtmlAsPdf(content);
                
                // Export the rendered PDF to a file
                pdf.SaveAs("AwesomeLazyCacheAndIronPdf.pdf");
                
                // Return the content as a string
                return content;
            };

            // Get the cached value or execute expensiveLongRunMethod to cache it
            string cachedValue = cache.GetOrAdd(cacheKey, expensiveLongRunMethod);

            // Output the cached value to the console
            Console.WriteLine(cachedValue);
        }
    }
}

Kod Açıklaması

  • Görüntüleyiciyi Başlatın: HTML içeriğini PDF formatına dönüştürmek için ChromePdfRenderer örneği oluşturulmuştur.

  • Define Content: HTML content ("

    Demo LazyCache and IronPDF

    ", "

    Create CachingService

    ", etc.) is prepared. Bu içerik, bir PDF olarak işlenecek ve yeniden kullanım için önbelleğe alınacaktır.

  • Önbellek Hizmetini Oluşturun: LazyCache'in CachingService kullanılarak bir önbellek hizmeti (IAppCache) başlatılır. Bu tembel önbellek hizmeti, önbelleğe alınmış verilerin depolanmasını ve geri alınmasını yönetir.

Önbellek Anahtarı: Önbelleğe alınan PDF içeriğini temsil etmek için benzersiz bir tanımlayıcı ("uniqueKey") atanır.

  • Pahalı Metodu Tanımlayın: Önbelleğe alınabilir veriyi oluşturmak için bir fabrika metodu (expensiveLongRunMethod) tanımlanır. Bu metod, HTML içeriğini PDF olarak işlemek için ChromePdfRenderer çağırır. Oluşan PDF daha sonra kaydedilir ve bir dize olarak geri döner.

  • Önbellekten Alın veya Ekleyin: Belirtilen cacheKey ile ilişkilendirilmiş önbellek değerini almak için hizmetin GetOrAdd metodu çağrılır. Eğer değer önbellekte bulunmuyorsa, onu hesaplamak, önbelleğe depolamak ve geri döndürmek için expensiveLongRunMethod çağrılır. Değer zaten önbellekteyse, doğrudan geri döndürülür.

  • Çıkış: Önbelleğe alınmış PDF içeriği (bir dize olarak) konsola yazdırılır (Console.WriteLine(cachedValue)), önbelleğe alınmış veriyi almayı gösterir.

Çıktı

LazyCache C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 7 - Konsol Çıkışı

PDF

LazyCache C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 8 - PDF Çıkışı

IronPDF Lisanslama (Deneme Mevcut)

IronPDF paketi çalıştırmak ve PDF oluşturmak için bir lisansa ihtiyaç duyar. Paket erişilmeden önce uygulamanın başlangıcına aşağıdaki kodu ekleyin.

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";

Bir deneme lisansı, IronPDF'in deneme lisans sayfasında mevcuttur.

Sonuç

LazyCache, C# uygulamalarında önbelleğe alma uygulamasını basitleştirir ve kullanıcıya basit bir API ve önbellekteki nesnelerin otomatik süresi dolması imkanı sağlar. LazyCache'i projelerinize entegre ederek, sık erişilen verileri verimli bir şekilde önbelleğe alarak performansı artırabilir, gecikmeyi azaltabilir ve kaynak kullanımını atomik ve düzenli bir şekilde optimize edebilirsiniz. İster web uygulamaları, API'ler veya servisler inşa ediyor olun, LazyCache, C# uygulamalarınızın performansını ve ölçeklenebilirliğini artırmak için değerli bir araç olabilir.

Öte yandan, IronPDF, .NET uygulamalarında PDF belgelerini işlemek için güçlü ve çok yönlü bir C# kütüphanesi olarak öne çıkar. Güçlü yetenekleri, programlı bir şekilde PDF oluşturmaktan, düzenlemekten, HTML'yi PDF'ye dönüştürmekten ve PDF'leri işlemekten oluşur. IronPDF, şifreleme ve dijital imzalar aracılığıyla güvenli belge işlemleri için özellikler sunarak, geliştiricilerin PDF iş akışlarını verimli bir şekilde yönetmelerini ve özelleştirmelerini sağlar. Bu, IronPDF'yi C# geliştirmede geniş bir belge yönetimi ve oluşturma görevleri için değerli bir araç yapar.

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