透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
.NETアプリケーションでは、レスポンスよく効果的にアプリケーションを構築するために、最適化手法が頻繁に必要となります。 キャッシュとは、分散型キャッシュに頻繁に要求される素材を一時的に保存することで、より高速な取得を実現する強力な手法です。 この戦略による処理時間およびサーバー負荷の削減は、アプリケーションのパフォーマンスを大幅に向上させる可能性があります。 さらに、パフォーマンスカウンターを実装することで、キャッシュシステムの監視と強化が可能です。
キャッシュはこの文脈において強力な最適化戦略です。 Microsoft.Extensions.Caching.Memory
は、.NETアプリケーション用の効率的なインメモリオブジェクトキャッシングソリューションを提供します。 PDF中心のアプリは、MemoryCache
キャッシュをIronPDFと共に戦略的に使用することで、より高速に動作し応答するようになります。
私たちは、Microsoft.Extensions.Caching.Memory
C# の例を IronPDF と効率的に統合する方法を探ります。 この記事では、IronPDF HTMLからPDFへの変換プロセスに関するキャッシュの利点について話し合い、役立つ実装のヒントを示し、IronPDFプログラムでキャッシュを設定するための詳細な手順を提供します。 最終的には、効果的で直感的なPDFアプリケーションを開発するためのスキルとリソースを持つことができます。
Microsoft.Extensions.Caching.Memory
: .NETにおけるキャッシングの基盤キャッシングは、多くのハイパフォーマンスな .NET アプリケーションで使用される手法であり、よくアクセスされるデータをメモリに保存して迅速に取得することができます。 Microsoft.Extensions
は、アクセス可能なキャッシングオプションの一つです。 Caching.Memory
は特に強力で適応性のあるオプションです。 このライブラリは、より大きな Microsoft.Extensions.Caching
名前空間のコンポーネントで、単純ながら効果的なインメモリキャッシングアプローチを提供します。
Microsoft.Extensions.Caching.Memory
" の主な型IMemoryCache
IMemoryCache
の実装はこのクラスにあります。 キャッシュされたアイテムに対する管理およびリアルなインメモリストレージを提供します。MemoryCache
のインスタンスを取得するために使用されます。MemoryCacheEntryOptions
このクラスを使用して特定のキャッシュアイテムの設定を指定することができます。 これらの設定は次のようなことを制御します:
CacheEntry
ICacheEntry
CacheEntry
クラスによって実装されます。Microsoft.Extensions.Caching
構成。 アプリケーションの起動中、メモリはASP.NET Coreアプリケーションのサービスコレクション内でキャッシュサービスを構成するために使用されます。 以下に、Microsoft.Extensions.Caching.Memory
が設定されたASP.NET Coreアプリケーションを示します:
まず、プロジェクトにMicrosoft.Extensions.Caching.Memory
がインストールされていることを確認してください。 NuGet パッケージ マネージャー コンソールを使用して、次のコマンドでインストールできます:
Install-Package Microsoft.Extensions.Caching.Memory
Install-Package Microsoft.Extensions.Caching.Memory
あるいは、NuGetパッケージマネージャーを使用してパッケージをインストールすることもできます:
ASP.NET Core アプリで ConfigureServices
メソッドに移動するには、Startup.cs
ファイルを開いてください。メモリーキャッシュサービスを設定するには、次のコードを追加してください。
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
ASP.NET Core アプリケーション内で ConfigureServices
関数にアクセスするには、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
のインスタンスを 1 つだけ作成して使用することを保証します。
Microsoft.Extensions.Caching.Memory
を使用する.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は依存性注入を提供します。 [HttpGet
] プロパティが適用されると、Generate メソッドは指定されたルート (/Demo) からストアへの HTTP GET リクエストを処理するように指定されています。 与えられたキャッシュキーを使用して、Generate関数内のキャッシュから天気予報データを取得しようとします。 データがキャッシュにあるASPで使用できない場合、Generate関数を使用して新しい気象データを生成します。
複数のアプリケーションサーバーがある場合は、すべてのサーバーで一貫したキャッシュ処理を行うために、分散キャッシュを設定してください。
Microsoft.Extensions.Caching.Memory
を利用するには、ASP.NET Coreアプリケーションでデータをキャッシュし、パフォーマンスを向上させるために、提供されたドキュメントとサンプルコードを参照してください。 実際には、アプリケーションのニーズに合わせて、有効期限ポリシー、キャッシュキー、およびキャッシュ動作を調整することができます。 キャッシュにデータを保存することは、生成コストが高いデータや複数のスレッドによって頻繁にアクセスされるデータの場合、全体的なユーザーエクスペリエンスを向上させ、応答時間を大幅に短縮することができます。
全体的に見て、Microsoft.Extensions.Caching.Memory
は、特にASP.NET Coreフレームワークに基づく.NETアプリケーションのスケーラビリティとパフォーマンスを向上させるために使用できます。 開発者は、インメモリキャッシングを利用することで、ユーザー体験を向上させ、レイテンシを最小限に抑え、データアクセスを最適化することができます。 このライブラリは、リファレンスデータ、クエリ結果、または計算された値のキャッシュに関する特定のアプリケーション要件に対応するキャッシング戦略を開発するための柔軟で使いやすいAPIを提供します。 キャッシングのベストプラクティスを採用し、Microsoft.Extensions.Caching.Memory
を .NET アプリに追加することで、目に見える速度の向上とアプリケーション応答性の強化を実現できます。
Microsoft.Extensions
の機能を利用し、動的なPDF作成のためのIronPDFと効果的なデータキャッシュのためのCaching.Memory
を使用することで、.NET開発者はアプリケーションの速度を大幅に向上させることができます。この強力な組み合わせにより、開発者はサーバーの負荷を減らし、ユーザーエクスペリエンスを向上させ、処理のオーバーヘッドを排除することで、高性能でスケーラブル、かつ応答性の高いアプリケーションを容易に設計することが可能になります。
IronPDFは手頃な価格で購入でき、パッケージの購入には永久ライセンスが含まれます。 このパッケージは、複数のシステムに対する単一の料金である$749から始まるため、非常に優れた価値を提供します。 ライセンスをお持ちのユーザーには、24時間365日オンラインのエンジニアリングサポートを提供します。 料金の詳細については、IronPDF Licensing Pageをご覧ください。 Iron Software についてのページにアクセスして、Iron Software が作成した製品について詳しく学んでください。