Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Um Anwendungen reaktionsschnell und effektiv zu erstellen, werden häufig Optimierungsmethoden für .NET-Anwendungen benötigt. Caching ist ein wirksamer Ansatz, bei dem häufig angefordertes Material vorübergehend in einem verteilten Cache gespeichert wird, um einen schnelleren Abruf zu ermöglichen. Die Verringerung der Verarbeitungszeit und der Serverbelastung durch diese Strategie kann zu einer erheblichen Steigerung der Anwendungsleistung führen. Zusätzlich können Leistungszähler implementiert werden, um das Caching-System zu überwachen und zu verbessern.
Caching ist in diesem Zusammenhang eine wirksame Optimierungsstrategie. microsoft.Extensions.Caching.Memory" bietet eine effiziente In-Memory-Objekt-Caching-Lösung für .NET-Anwendungen. Ihre PDF-zentrierten Anwendungen werden viel schneller arbeiten und reagieren, wenn Sie den MemoryCache
-Cache strategisch zusammen mit IronPDF verwenden.
Wir untersuchen, wie man Microsoft.Extensions.Caching.Memory
C#-Beispiele effizient in IronPDF integriert. In diesem Artikel werden wir die Vorteile des Caching in Bezug auf dieIronPDF HTML-zu-PDF-Konvertierung prozess, einige nützliche Tipps zur Implementierung und eine detaillierte Anleitung zur Konfiguration des Caching in Ihrem IronPDF-Programm. Am Ende des Kurses verfügen Sie über die notwendigen Fähigkeiten und Ressourcen, um effektive und intuitive PDF-Anwendungen zu entwickeln.
Caching ist eine Methode, die in vielen hochleistungsfähigen .NET-Anwendungen verwendet wird, um Daten, auf die häufig zugegriffen wird, zum schnellen Abruf im Speicher zu speichern. microsoft.Extensions" ist eine der vielen Caching-Optionen, die verfügbar sind. caching.Memory" ist eine besonders leistungsfähige und anpassungsfähige Option. Diese Bibliothek ist eine Komponente des größeren Namespace "Microsoft.Extensions.Caching" und bietet einen einfachen, aber effektiven Ansatz für das Caching im Speicher.
IMemoryCache
IMemoryCache
befindet sich in dieser Klasse. Es bietet Verwaltung und echten In-Memory-Speicher für zwischengespeicherte Elemente.Mit dieser Klasse können Sie Konfigurationseinstellungen für bestimmte Cache-Elemente festlegen. Diese Einstellungen regeln Dinge wie:
ICacheEntry
icrosoft.Extensions.Caching"-Konfiguration. Während des Anwendungsstarts wird Speicher für die Konfiguration des Cache-Dienstes innerhalb der Dienstesammlung der ASP.NET Core-Anwendung verwendet. Die folgende Abbildung zeigt eine ASP.NET Core-Anwendung, für die "Microsoft.Extensions.Caching.Memory" konfiguriert ist:
Stellen Sie zunächst sicher, dass "Microsoft.Extensions.Caching.Memory" für Ihr Projekt installiert ist. Über die NuGet Package Manager Console können Sie es mit dem folgenden Befehl installieren:
Install-Package Microsoft.Extensions.Caching.Memory
Oder wir können NuGet Package Manager verwenden, um das Paket zu installieren:
Navigieren Sie zur Methode "ConfigureServices" in Ihrer ASP.NET Core-Anwendung, indem Sie die Datei "Startup.cs" öffnen. Fügen Sie den folgenden Code hinzu, um den Speicher-Cache-Dienst einzurichten:
using Microsoft.Extensions.Caching.Memory;
public void ConfigureServices(IServiceCollection services)
{
// Add memory cache service
services.AddMemoryCache();
// Other service configurations...
}
using Microsoft.Extensions.Caching.Memory;
public void ConfigureServices(IServiceCollection services)
{
// Add memory cache service
services.AddMemoryCache();
// Other service configurations...
}
Imports Microsoft.Extensions.Caching.Memory
Public Sub ConfigureServices(ByVal services As IServiceCollection)
' Add memory cache service
services.AddMemoryCache()
' Other service configurations...
End Sub
Das Memory-Cache-Dienstobjekt wird der Dienstesammlung der Anwendung hinzugefügt und durch diesen Code konfiguriert. Der Speicher-Cache-Systemdienst wird mit seinen Standardkonfigurationen über die Funktion "AddMemoryCache" registriert.
IMemoryCache
Sobald der Cache-Speicher eingerichtet ist, kann jeder Klasse oder Komponente, die eine Zwischenspeicherung benötigt, die Schnittstelle "IMemoryCache" zugewiesen werden. Zum Beispiel in einer Controller- oder Serviceklasse:
public class MyService
{
private readonly IMemoryCache _cache;
public MyService(IMemoryCache cache)
{
_cache = cache;
}
// Use _cache to perform caching operations...
}
public class MyService
{
private readonly IMemoryCache _cache;
public MyService(IMemoryCache cache)
{
_cache = cache;
}
// Use _cache to perform caching operations...
}
Public Class MyService
Private ReadOnly _cache As IMemoryCache
Public Sub New(ByVal cache As IMemoryCache)
_cache = cache
End Sub
' Use _cache to perform caching operations...
End Class
Methoden zum Zwischenspeichern und Abrufen von Daten aus dem Speicher werden von der Schnittstelle "IMemoryCache" bereitgestellt.
Durch die Einstellung von Cache-Parametern können Sie das Verhalten des Speicher-Caches beeinflussen. Dazu gehört die Konfiguration einer Reihe von Parametern, darunter Größenbeschränkungen, Taktiken für die Räumung von Cache-Einträgen und Vorschriften für den Ablauf von Cache-Werten. Dies ist ein Beispiel für die Einstellung der Cache-Optionen:
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...
}
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...
}
Public Sub ConfigureServices(ByVal services As IServiceCollection)
' Configure cache options
services.AddMemoryCache(Sub(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
End Sub)
' Other service configurations...
End Sub
Ändern Sie die Einstellungen entsprechend den Spezifikationen Ihrer Anwendung.
Diese Anweisungen helfen Ihnen bei der Konfiguration von "Microsoft.Extensions". Verwenden Sie in Ihrer ASP.NET Core-Anwendung "Caching.Memory". Anwendungen können so schneller und effizienter arbeiten, indem sie häufig benötigte Daten im Cache speichern und abrufen.
Mit Hilfe der bekannten .NET-Bibliothek IronPDF können Programmierer PDF-Dokumente in .NET-Anwendungen erzeugen, bearbeiten und anzeigen. Die Erstellung von PDFs aus HTML-Inhalten, Fotos oder Rohdaten ist nur eine der vielen Funktionen, die es für die Arbeit mit PDFs bietet. Weitere Funktionen sind das Hinzufügen von Text, Bildern und Formen zu bereits vorhandenen PDF-Dokumenten, die Konvertierung von HTML-Seiten in PDFs und die Extraktion von Text und Bildern aus PDFs.
Im Folgenden sind einige Funktionen von IronPDF aufgeführt:
Vergewissern Sie sich, dass in Ihrem Projekt das IronPDF-Paket installiert ist. Zur Installation kann die NuGet Package Manager Console verwendet werden:
Install-Package IronPdf
Um auf die Funktion "ConfigureServices" zuzugreifen, öffnen Sie die Datei "Startup.cs" in Ihrer ASP.NET Core-Anwendung. Um IronPDF zu konfigurieren, fügen Sie den folgenden Code ein.
using IronPdf;
public void ConfigureServices(IServiceCollection services)
{
// Configure IronPDF
services.AddSingleton<HtmlToPdf>();
// Other service configurations...
}
using IronPdf;
public void ConfigureServices(IServiceCollection services)
{
// Configure IronPDF
services.AddSingleton<HtmlToPdf>();
// Other service configurations...
}
Imports IronPdf
Public Sub ConfigureServices(ByVal services As IServiceCollection)
' Configure IronPDF
services.AddSingleton(Of HtmlToPdf)()
' Other service configurations...
End Sub
Durch die Konfiguration des IronPDF-Dienstes HtmlToPdf
als Singleton stellt dieser Code sicher, dass die Anwendung nur eine Instanz von HtmlToPdf
erstellt und verwendet.
Microsoft.Extensions.Caching.Memory
mit IronPDFIn .NET-Anwendungen bietet "Microsoft.Extensions.Caching.Memory" eine praktische Möglichkeit, häufig angeforderte Daten für einen schnelleren Abruf zu speichern.
Dieser Quellcode und das Snippet veranschaulichen, wie man es grundsätzlich verwendet:
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Caching.Memory;
using System.Net;
using System.Net.Http.Headers;
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;
}
}
}
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Caching.Memory;
using System.Net;
using System.Net.Http.Headers;
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;
}
}
}
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.Extensions.Caching.Memory
Imports System.Net
Imports System.Net.Http.Headers
Namespace DemoWebApplication.Controllers
<ApiController>
<Route("[controller]")>
Public Class DemoController
Inherits ControllerBase
Private ReadOnly _cache As IMemoryCache
Private ReadOnly _htmlToPdf As HtmlToPdf
Private ReadOnly _logger As ILogger(Of DemoController )
Public Sub New(ByVal logger As ILogger(Of DemoController ), ByVal cache As IMemoryCache, ByVal htmlToPdf As HtmlToPdf)
_logger = logger
_cache = cache
_htmlToPdf = htmlToPdf
End Sub
<HttpGet>
Public Function Generate() As FileContentResult
Dim fileName As String = "Sample.pdf"
Dim stream = GeneratePdf("Hello IronPDF")
Return New FileContentResult(stream, "application/octet-stream") With {.FileDownloadName = fileName}
End Function
Private Function GeneratePdf(ByVal htmlContent As String) As Byte()
' object key
Dim cacheKey As String = "GeneratedPdf"
Dim pdfBytes() As Byte
If Not _cache.TryGetValue(cacheKey, pdfBytes) Then
' PDF not found in cache, generate it
Dim 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))
End If
Return pdfBytes
End Function
End Class
End Namespace
Wir importieren die Namespaces, die für die Arbeit mit Microsoft und ASP.NET Microsoft.Extensions.Caching.Memory
erforderlich sind. Wir erstellen den Controller DemoController
, der von ControllerBase
abgeleitet ist. Dieser Controller antwortet auf Abfragen, die über HTTP gesendet werden. Eine Instanz von "IMemoryCache" wird in den Konstruktor des Controllers injiziert.
Um die Lebensdauer von Diensten, einschließlich des Speicher-Caches, zu kontrollieren, bietet ASP.NET Core eine Abhängigkeitsinjektion. Mit dem[HttpGet
] wird die Generate-Methode so markiert, dass sie HTTP-GET-Anfragen an den Shop von der angegebenen Route aus bearbeitet(/Demo). Wir versuchen, die Wettervorhersagedaten aus dem Cache innerhalb der Funktion Generate mit Hilfe des angegebenen Cache-Schlüssels abzurufen. Wenn die Daten nicht verwendet werden können, weil sich ASP im Cache befindet, verwenden wir die Funktion Erzeugen, um neue Wetterdaten zu erstellen.
In einem Szenario mit mehreren Anwendungsservern sollten Sie verteiltes Caching konfigurieren, um eine konsistente Cache-Verarbeitung auf allen Servern zu gewährleisten.
Um "Microsoft.Extensions.Caching.Memory" zu verwenden, lesen Sie die Dokumentation und den mitgelieferten Beispielcode, um Daten zu cachen und die Leistung in ASP.NET Core-Anwendungen zu verbessern. In der Praxis können Sie die Ablaufrichtlinien, Cache-Schlüssel und das Caching-Verhalten an die Bedürfnisse Ihrer Anwendung anpassen. Die Zwischenspeicherung von Daten, deren Generierung teuer ist oder auf die häufig von mehreren Threads zugegriffen wird, kann die Benutzerfreundlichkeit insgesamt verbessern und die Antwortzeiten erheblich verkürzen.
Alles in allem kann Microsoft.Extensions.Caching.Memory
verwendet werden, um die Skalierbarkeit und Leistung von .NET-Anwendungen zu erhöhen, insbesondere von solchen, die auf dem ASP.NET Core-Framework basieren. Entwickler können die Benutzerfreundlichkeit verbessern, die Latenzzeit minimieren und den Datenzugriff optimieren, indem sie das In-Memory-Caching nutzen. Die Bibliothek bietet eine flexible und benutzerfreundliche API für die Entwicklung von Caching-Strategien, die auf bestimmte Anwendungsanforderungen ausgerichtet sind, sei es für das Caching von Referenzdaten, Abfrageergebnissen oder berechneten Werten. Sie können spürbare Geschwindigkeitssteigerungen und eine verbesserte Reaktionsfähigkeit Ihrer Anwendungen erzielen, indem Sie bewährte Caching-Verfahren anwenden und "Microsoft.Extensions.Caching.Memory" in Ihre .NET-Anwendungen integrieren.
Durch die Nutzung der Funktionen von Microsoft.Extensions
, mit Hilfe von IronPDF für die dynamische PDF-Erstellung und Caching.Memory
für die effektive Zwischenspeicherung von Daten, können .NET-Entwickler die Geschwindigkeit ihrer Anwendungen erheblich steigern. Diese starke Kombination ermöglicht es Entwicklern, hochleistungsfähige, skalierbare und reaktionsschnelle Anwendungen zu entwerfen, indem sie die Serverlast verringern, die Benutzerfreundlichkeit verbessern und den Verarbeitungs-Overhead eliminieren.
IronPDF kann zu einem günstigen Preis erworben werden, und der Erwerb des Pakets beinhaltet eine lebenslange Lizenz. Das Paket bietet ein hervorragendes Preis-Leistungs-Verhältnis, da es bei $749 beginnt, einer einzigen Gebühr für mehrere Systeme. Für Benutzer mit Lizenzen bietet es rund um die Uhr technische Online-Hilfe. Weitere Informationen über die Gebühr finden Sie auf der WebsiteIronPDF-Lizenzierungsseite. Besuchen Sie dieseseite über Iron Software um mehr über die Produkte von Iron Software zu erfahren.
9 .NET API-Produkte für Ihre Bürodokumente