翻譯|使用教程|編輯:龔雪|2023-07-24 11:25:26.230|閱讀 115 次
概述:本文介紹如何使用DevExpress Reporting組件來通過文檔緩存管理和分布式緩存在Web應用程序中增強性能和可伸縮性,歡迎下載相關組件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
可擴展性問題一直是主要Web應用程序的前沿和核心問題,如果可伸縮性對您的項目很重要,可能需要實現緩存策略。由于它與DevExpress Web Document Viewer相關,緩存將要求應用程序在緩存中存儲臨時狀態。對于分布式系統,您將需要一個緩存存儲系統來保持所有節點同步。在本文中,我們將回顧DevExpress Web Document Viewer的緩存管理功能,并演示如何使用它們來優化應用程序性能。
DevExpress Reporting是.NET Framework下功能完善的報表平臺,它附帶了易于使用的Visual Studio報表設計器和豐富的報表控件集,包括數據透視表、圖表,因此您可以構建無與倫比、信息清晰的報表。
DevExpress Reporting v23.1正式版下載
DevExpress技術交流群8:523159565 歡迎一起進群討論
DevExpress Web Document Viewer使用兩種級別的緩存:短期(內存緩存)和長期(存儲)。
短期緩存駐留在內存中并存儲對象模型,以便更快地執行頻繁使用的操作。它將報表布局和文檔緩存為對象,這些對象稍后被序列化并移動到長期存儲(在需要時)。
長期緩存存儲序列化的數據,以便按需檢索對象。DevExpress Reporting為長期緩存提供了各種存儲選項,包括文件存儲、數據庫存儲(基于XPO)、ASP. NET Core分布式緩存(SQL Server, Redis)和Azure云存儲。
簡要介紹了緩存級別之后,讓我們來看看實現細節。DevExpress Reporting允許您根據所選擇的存儲類型(例如數據庫緩存的UseDbStorage方法或分布式緩存的UseDistributedCache方法)配置其緩存,選擇存儲類型允許DevExpress Web Document Viewer利用指定的緩存來高效地緩存和檢索報告布局、生成的文檔和導出的文件。
UseDistributedCache方法支持在ASP. NET Core應用程序中使用分布式緩存,不同的分布式緩存實現是可用的,包括SQL Server, Redis和NCache。
要實現ASP. NET Core應用程序(用于DevExpress Web Document Viewer)中的分布式緩存,您必須:
Step 1:安裝所需的軟件包
確保您在ASP. NET Core項目中安裝了必要的包,將需要以下軟件包:
Step 2:配置分布式緩存
在您的ASP. NET Core應用程序中,按照以下指南配置和啟用分布式緩存:
Step 3:在DevExpress Web Document Viewer中啟用分布式緩存
在同一個Startup.cs文件中,找到ConfigureServices方法并找到services.ConfigureReportingServices塊。在該塊中,添加以下代碼以啟用分布式緩存:
services.ConfigureReportingServices(builder => { builder.ConfigureWebDocumentViewer(viewerBuilder => { viewerBuilder.UseDistributedCache(); }); });
分布式緩存只適用于ASP.NET Core,與之不同的是,這種類型的緩存適用于所有支持的Web平臺。
UseDbStorage方法允許使用數據庫緩存存儲,它需要一個到現有數據庫的連接字符串。該緩存基于XPO Data Providers,支持多個關系數據庫管理系統。要實現數據庫緩存,您必須:
Step 1:在Web Document Viewer中使用數據庫緩存
在Startup.cs文件中,找到ConfigureServices方法并找到services.ConfigureReportingServices塊。在該塊中,添加以下代碼來啟用數據庫緩存:
public void ConfigureServices(IServiceCollection services) { //… services.ConfigureReportingServices(configurator => { configurator.ConfigureWebDocumentViewer(viewerConfigurator => { viewerConfigurator.UseCachedReportSourceBuilder(); viewerConfigurator.UseDbStorage("XpoStorageConnection"); //… }); //… }
用所選數據庫的連接字符串替換XpoStorageConnection,確保設置了數據庫并安裝了適當的XPO數據庫提供程序。
Step 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>(); } }
從緩存的報表源生成文檔所需的時間將根據文件存儲系統的性能而有所不同。
要將報告文檔緩存為文件,請根據需要使用, , , 和 方法。
如果您希望使用Azure提供的選項緩存報表文檔,請參考以下幫助主題:。
如果管理得當,緩存是有效的——包括緩存的報表布局和文檔保留的時間長度。DevExpress Reporting提供緩存過期選項,使用 和StorageCleanerSettings,在您的應用程序中實現性能和內存消耗之間的平衡。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網