レポート制御 DevExpress レポート中国語チュートリアル - Web アプリケーションのスケーラビリティを強化するには?

スケーラビリティの問題は常に主要な Web アプリケーションの中心であり、プロジェクトにとってスケーラビリティが重要な場合は、キャッシュ戦略の実装が必要になる場合があります。DevExpress Web ドキュメント ビューアに関連するため 、キャッシュにはアプリケーションが一時的な状態をキャッシュに保存する必要があります。分散システムの場合、すべてのノードの同期を保つためにキャッシュ ストレージ システムが必要になります。この記事では、DevExpress Web ドキュメント ビューアーのキャッシュ管理機能を確認し、それらを使用してアプリケーションのパフォーマンスを最適化する方法を示します。

DevExpress Reporting は、.NET Framework のフル機能を備えたレポート プラットフォームです。使いやすい Visual Studio レポート デザイナーと、ピボット テーブルやグラフなどの豊富なレポート コントロール セットが付属しているため、明確な情報を含む比類のないレポートを作成できます。 。

DevExpress Reporting v23.1 正式バージョンのダウンロード(Q テクニカル エクスチェンジ: 523159565)

キャッシュレベル

DevExpress Web Document Viewer は、短期 (メモリ キャッシュ) と長期 (ストレージ) の 2 つのレベルのキャッシュを使用します。

短期キャッシュ (メモリ キャッシュ)

短期キャッシュはメモリ内に常駐し、頻繁に使用される操作をより高速に実行できるようにオブジェクト モデルを保存します。レポート レイアウトとドキュメントをオブジェクトとしてキャッシュし、後でシリアル化し、(必要に応じて) 長期ストレージに移動します。

長期キャッシュ (ストレージ)

長期キャッシュにはシリアル化されたデータが保存されるため、オブジェクトをオンデマンドで取得できます。DevExpress Reporting は、ファイル ストレージ、データベース ストレージ (XPO ベース)、ASP.NET Core 分散キャッシュ (SQL Server、Redis)、Azure クラウド ストレージなど、長期キャッシュ用のさまざまなストレージ オプションを提供します。

キャッシュ管理

キャッシュ レベルについて簡単に説明した後、実装の詳細を見てみましょう。DevExpress Reporting では、選択したストレージ タイプ (データベース キャッシュの UseDbStorage メソッドや分散キャッシュの UseDistributedCache メソッドなど) に従ってキャッシュを構成できます。ストレージ タイプを選択すると、DevExpress Web ドキュメント ビューアが指定されたキャッシュを効率的に利用できるようになります。レポート レイアウト、生成されたドキュメント、エクスポートされたファイルをキャッシュして取得します。

ASP.NET Core アプリケーションの分散キャッシュ

UseDistributedCache メソッドは、ASP.NET Core アプリケーションでの分散キャッシュの使用をサポートします。SQL Server、Redis、NCache など、さまざまな分散キャッシュ実装が利用可能です。

ASP.NET Core アプリケーション (DevExpress Web ドキュメント ビューアー用) に分散キャッシュを実装するには、次のことを行う必要があります。

ステップ 1: 必要なパッケージをインストールする

必要なパッケージが ASP.NET Core プロジェクトにインストールされていることを確認してください。次のパッケージが必要になります。

ステップ 2: 分散キャッシュを構成する

ASP.NET Core アプリケーションで、次のガイドラインに従って分散キャッシュを構成し、有効にします。

ステップ 3: DevExpress Web ドキュメント ビューアで分散キャッシュを有効にする

同じ Startup.cs ファイルで、ConfigureServices メソッドと services.ConfigureReportingServices ブロックを見つけます。そのブロック内に次のコードを追加して、分散キャッシュを有効にします。

services.ConfigureReportingServices(builder =>
{
builder.ConfigureWebDocumentViewer(viewerBuilder =>
{
viewerBuilder.UseDistributedCache();
});
});
データベース キャッシュ (XPO ベースのストレージ)

ASP.NET Core でのみ機能する分散キャッシュとは異なり、このタイプのキャッシュはサポートされているすべての Web プラットフォームで機能します。

UseDbStorage メソッドを使用すると、データベース キャッシュ ストレージを使用できます。これには、既存のデータベースへの接続文字列が必要です。キャッシュは XPO データ プロバイダーに基づいており、複数のリレーショナル データベース管理システムをサポートします。データベース キャッシュを実装するには、次のことを行う必要があります。

ステップ 1: Web ドキュメント ビューアーでデータベース キャッシュを使用する

Startup.cs ファイルで、ConfigureServices メソッドと services.ConfigureReportingServices ブロックを見つけます。そのブロックに次のコードを追加してデータベース キャッシュを有効にします。

public void ConfigureServices(IServiceCollection services) {
//…
services.ConfigureReportingServices(configurator => {
configurator.ConfigureWebDocumentViewer(viewerConfigurator => {
viewerConfigurator.UseCachedReportSourceBuilder();
viewerConfigurator.UseDbStorage("XpoStorageConnection");
//…
});
//…
}

XpoStorageConnection を選択したデータベースの接続文字列に置き換え、データベースがセットアップされ、適切な XPO データベース プロバイダーがインストールされていることを確認します。

ステップ 2: データベースを初期化する

IStorageDbInitializer インターフェイスを使用してデータベース テーブルとスキーマを初期化します。

public class Program {
public static void Main(string[] args) {
IWebHost host = CreateWebHostBuilder(args).Build();

if (args.Any(s => s.ToLower() == "--initDatabase")) {
using (var scope = host.Services.CreateScope()) {
var services = scope.ServiceProvider;
services.GetRequiredService<IStorageDbInitializer>().InitDbSchema();
}
}
host.Run();
}

public static IWebHostBuilder CreateWebHostBuilder(string[] args) {
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
}
ファイルキャッシュ

キャッシュされたレポート ソースからドキュメントを生成するのに必要な時間は、ファイル ストレージ システムのパフォーマンスによって異なります。

レポート ドキュメントをファイルとしてキャッシュするには、UseFileDocumentStorage、  UseFileExportedDocumentStorage、  UseFileReportStorage、および UseCachedReportSourceBuilderメソッドを必要に応じて使用します。

Azureキャッシュ

Azure が提供するオプションを使用してレポート ドキュメントをキャッシュする場合は、ヘルプ トピック「Web ファームと Web ガーデンのサポート」を参照してください。

キャッシュの有効期限ポリシー

キャッシュは適切に管理されれば、キャッシュされたレポートのレイアウトとドキュメントの保持期間の両方において効果的です。DevExpress Reporting は、 CacheCleanerSettings と StorageCleanerSettings を使用して、アプリケーションのパフォーマンスとメモリ消費のバランスを実現するキャッシュ有効期限オプションを提供します 。

おすすめ

転載: blog.csdn.net/AABBbaby/article/details/131910651