ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
.NETアプリケーションでは、レスポンスよく効果的にアプリケーションを構築するために、最適化手法が頻繁に必要となります。 キャッシュとは、分散型キャッシュに頻繁に要求される素材を一時的に保存することで、より高速な取得を実現する強力な手法です。 この戦略による処理時間およびサーバー負荷の削減は、アプリケーションのパフォーマンスを大幅に向上させる可能性があります。 さらに、パフォーマンスカウンターを実装することで、キャッシュシステムの監視と強化が可能です。
キャッシュこの文脈では強力な最適化戦略です。 Microsoft.Extensions.Caching.Memory
は、.NET アプリケーション向けの効率的なインメモリオブジェクトキャッシュソリューションを提供します。 PDF中心のアプリケーションは、IronPDFと組み合わせてMemoryCache
キャッシュを戦略的に使用することで、より高速に操作・応答します。
Microsoft.Extensions.Caching.Memory`のC#サンプルとIronPDFを効率的に統合する方法を探ります。 この記事では、キャッシングに関する利点について論じます。IronPDF HTMLからPDFへの変換プロセスについて説明し、有用な実装のヒントをいくつか提供し、IronPDFプログラムでキャッシュを構成するための詳細なウォークスルーを提供します。 最終的には、効果的で直感的なPDFアプリケーションを開発するためのスキルとリソースを持つことができます。
Microsoft.Extensions.Caching.Memory
: .NETにおけるキャッシングの基盤キャッシングは、多くのハイパフォーマンスな .NET アプリケーションで使用される手法であり、よくアクセスされるデータをメモリに保存して迅速に取得することができます。 Microsoft.Extensions
は、利用可能な多くのキャッシングオプションの1つです。 Caching.Memory
は特に強力で適応性の高いオプションです。 このライブラリーは、より大きな Microsoft.Extensions.Caching
名前空間のコンポーネントであり、シンプルながらも効果的なメモリ内キャッシュアプローチを提供します。
Microsoft.Extensions.Caching.Memory
の主要な型IMemoryCache
MemoryCache(メモリーキャッシュ)
IMemoryCache
の実装はこのクラスにあります。 キャッシュされたアイテムに対する管理およびリアルなインメモリストレージを提供します。MemoryCache
のインスタンスを取得するために使用されます。
MemoryCacheEntryOptions
メモリーキャッシュエントリーオプション
このクラスを使用して特定のキャッシュアイテムの設定を指定することができます。 これらの設定は次のようなことを制御します:
これは、重要なデータを更新する必要があるシナリオ、リソース管理、およびログ記録において特に役立ちます。
CacheEntry
(キャッシュエントリー)ICacheEntry
CacheEntry
クラスによって実装されています。Microsoft.Extensions.Caching.Memory
をインストールおよび設定Microsoft.Extensions.Caching の構成。 アプリケーションの起動中、メモリはASP.NET Coreアプリケーションのサービスコレクション内でキャッシュサービスを構成するために使用されます。 以下に「Microsoft.Extensions.Caching.Memory」が構成されたASP.NET Coreアプリケーションを示します:
まず、プロジェクトに Microsoft.Extensions.Caching.Memory
をインストールしてください。 NuGet パッケージ マネージャー コンソールを使用して、次のコマンドでインストールできます:
Install-Package Microsoft.Extensions.Caching.Memory
あるいは、NuGetパッケージマネージャーを使用してパッケージをインストールすることもできます:
ASP.NET Core アプリで Startup.cs
ファイルを開き、ConfigureServices
メソッドに移動します。メモリキャッシュサービスを設定するには、以下のコードを追加します:
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
メモリキャッシュサービスオブジェクトは、このコードによってアプリケーションのサービスコレクションに追加され、設定されます。 メモリキャッシュシステムサービスは、AddMemoryCache
関数を使用してデフォルトの設定で登録されます。
IMemoryCache
をインジェクトするキャッシュストアが設定されたら、キャッシュを必要とする任意のクラスまたはコンポーネントにIMemoryCache
インターフェースを注入できます。 たとえば、コントローラーまたはサービスクラス内で:
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
データをメモリからキャッシュおよび取得するためのメソッドは、IMemoryCache
インターフェースによって提供されます。
キャッシュパラメータを設定することで、メモリキャッシュの動作を変更することができます。 これは、サイズ制限、キャッシュエントリーの削除戦略、およびキャッシュ値の有効期限規則を含む一連のパラメータの設定方法を構成することを含みます。 これはキャッシュオプションを設定する方法の例です:
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
アプリケーションの仕様に従って設定を変更してください。
これらの指示は Microsoft.Extensions
を構成するのに役立ちます。 ASP.NET Coreアプリケーションで、Caching.Memory
を使用します。 アプリケーションは、頻繁にアクセスされるデータをメモリキャッシュに保存および取得することで、より迅速かつ効率的に動作できます。
有名な.NETライブラリであるIronPDFの助けを借りることで、プログラマーは.NETアプリケーション内でPDFドキュメントを生成、編集、表示することができます。 HTMLコンテンツ、写真、または生データからPDFを作成することは、PDF操作機能の一つに過ぎません。 他の機能には、既存のPDFドキュメントにテキスト、画像、および図形を追加すること、HTMLページをPDFに変換すること、そしてPDFからテキストおよび画像を抽出することが含まれます。
以下にIronPDFのいくつかの機能を示します:
プロジェクトで、IronPDFパッケージがインストールされていることを確認してください。 NuGet パッケージ マネージャー コンソールを使用してインストールできます。
Install-Package IronPdf
ConfigureServices
関数にアクセスするには、ASP.NET CoreアプリケーションのStartup.csファイルを開いてください。 IronPDFを構成するには、以下のコードを追加してください。
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
IronPDFのHtmlToPdf
サービスをシングルトンとして設定することで、このコードはアプリケーションがHtmlToPdf
のインスタンスを一つだけ作成して使用することを保証します。
Microsoft.Extensions.Caching.Memory
を利用したIronPDFの使用.NETアプリケーションでは、Microsoft.Extensions.Caching.Memory
は、頻繁に要求されるデータを高速に取得するための実用的な手段を提供します。
このソースコードとスニペットは、基本的な使い方を説明しています:
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
MicrosoftとASP.NETを使用するために必要な名前空間 Microsoft.Extensions.Caching.Memory
をインポートします。 私たちは ControllerBase
から派生した DemoController
コントローラーを作成します。 このコントローラーはHTTP経由で送信されたクエリに応答します。IMemoryCache
のインスタンスがコントローラーのコンストラクターに注入されます。
サービスの寿命を制御するために、メモリキャッシュを含むASP.NET Coreは依存性注入を提供します。 次のプログラムを使うと、IronPDF を使って最新の PDF 機能を体験できます。IronPDF は、.NET、Java、Python、Node.js の各プラットフォームで利用可能で、PDF の生成、編集、抽出など、豊富な機能を備えています。IronPDF の使い方を習得すれば、複雑な PDF タスクも簡単に実行できます。
IronOCR もまた、強力な OCR 機能を提供し、さまざまなタイプのドキュメントからテキストを抽出するのに役立ちます。特に .NET 環境での利用に最適化されています。
加えて、IronXL は .NET と Python でのエクセルファイルの操作を簡単にするツールを提供します。IronBarcode と IronQR も同様に、バーコードと QR コードの生成と読み取りを簡単に実行できます。
IronZIP は、.NET 環境での圧縮と解凍を一元管理するツールで、ファイルの管理がより効率的になります。IronWord は、.NET での Word ドキュメントの操作をサポートし、文書の生成や編集を容易にします。IronPrint により、.NET アプリケーションから直接印刷ジョブを送ることができます。
さらに、IronWebscraper はウェブページのデータを自動的に抽出し、効率的なデータ収集を可能にします。
Iron Suite を使ってこれらすべてのツールを統合することで、開発者はさらに強力なアプリケーションを構築できます。[HttpGet
]指定されたルートからストアへのHTTP GETリクエストを処理するために、プロパティが適用された状態では、Generateメソッドがマークされます。(/デモ). 与えられたキャッシュキーを使用して、Generate関数内のキャッシュから天気予報データを取得しようとします。 データがキャッシュにあるASPで使用できない場合、Generate関数を使用して新しい気象データを生成します。
複数のアプリケーションサーバーがある場合は、すべてのサーバーで一貫したキャッシュ処理を行うために、分散キャッシュを設定してください。
Microsoft.Extensions.Caching.Memory`を利用するには、提供されているドキュメントとサンプルコードを参照して、ASP.NET Coreアプリケーションでデータをキャッシュし、パフォーマンスを向上させます。 実際には、アプリケーションのニーズに合わせて、有効期限ポリシー、キャッシュキー、およびキャッシュ動作を調整することができます。 キャッシュにデータを保存することは、生成コストが高いデータや複数のスレッドによって頻繁にアクセスされるデータの場合、全体的なユーザーエクスペリエンスを向上させ、応答時間を大幅に短縮することができます。
総合的に見て、Microsoft.Extensions.Caching.Memory
を使用することで、特に ASP.NET Core フレームワークに基づいた .NET アプリケーションのスケーラビリティとパフォーマンスを向上させることができます。 開発者は、インメモリキャッシングを利用することで、ユーザー体験を向上させ、レイテンシを最小限に抑え、データアクセスを最適化することができます。 このライブラリは、リファレンスデータ、クエリ結果、または計算された値のキャッシュに関する特定のアプリケーション要件に対応するキャッシング戦略を開発するための柔軟で使いやすいAPIを提供します。 キャッシングのベストプラクティスを採用し、.NET
アプリケーションにMicrosoft.Extensions.Caching.Memory
を追加することで、目に見える速度向上とアプリケーション応答性の向上を実現できます。
Microsoft.Extensions'の機能を活用し、ダイナミックPDF作成のためのIronPDFと効果的なデータキャッシュのための
Caching.Memory`の助けを借りて、.NET開発者はアプリの速度を大幅に向上させることができます。この強力な組み合わせにより、開発者はサーバーの負荷を軽減し、ユーザー体験を向上させ、処理のオーバーヘッドを排除することで、高性能でスケーラブル、かつ応答性の高いアプリケーションを簡単に設計することができる。
IronPDFは手頃な価格で購入でき、パッケージの購入には永久ライセンスが含まれます。 このパッケージは、複数のシステムに対応する単一の料金である $749 から始まるため、優れた価値を提供します。 ライセンスをお持ちのユーザーには、24時間365日オンラインのエンジニアリングサポートを提供します。 料金の詳細については、以下のページをご覧くださいIronPDF ライセンスページ. こちらをご覧くださいIron Softwareに関するページIron Softwareの製品については、こちらをご覧ください。
9つの .NET API製品 オフィス文書用