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