尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
报表控件DevExpress Reporting中文教程 - 如何增强Web应用的可伸缩性?
可扩展性问题一直是主要Web应用程序的前沿和核心问题如果可伸缩性对您的项目很重要可能需要实现缓存策略。由于它与DevExpress Web Document Viewer相关缓存将要求应用程序在缓存中存储临时状态。对于分布式系统您将需要一个缓存存储系统来保持所有节点同步。在本文中我们将回顾DevExpress Web Document Viewer的缓存管理功能并演示如何使用它们来优化应用程序性能。DevExpress Reporting是.NET Framework下功能完善的报表平台它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集包括数据透视表、图表因此您可以构建无与伦比、信息清晰的报表。DevExpress新旧版本帮助文档获取可点击这篇文章查看——《界面控件DevExpress v26.1帮助文档大全CHM版本》缓存级别DevExpress Web Document Viewer使用两种级别的缓存短期(内存缓存)和长期(存储)。短期缓存(内存缓存)短期缓存驻留在内存中并存储对象模型以便更快地执行频繁使用的操作。它将报表布局和文档缓存为对象这些对象稍后被序列化并移动到长期存储(在需要时)。长期高速缓存(存储)长期缓存存储序列化的数据以便按需检索对象。​​​​​​​DevExpress Reporting为长期缓存提供了各种存储选项包括文件存储、数据库存储(基于XPO)、ASP. NET Core分布式缓存(SQL Server, Redis)和Azure云存储。缓存管理简要介绍了缓存级别之后让我们来看看实现细节。DevExpress Reporting允许您根据所选择的存储类型(例如数据库缓存的UseDbStorage方法或分布式缓存的UseDistributedCache方法)配置其缓存选择存储类型允许DevExpress Web Document Viewer利用指定的缓存来高效地缓存和检索报告布局、生成的文档和导出的文件。ASP.NET Core应用程序中的分布式缓存UseDistributedCache方法支持在ASP. NET Core应用程序中使用分布式缓存不同的分布式缓存实现是可用的包括SQL Server, Redis和NCache。要实现ASP. NET Core应用程序用于DevExpress Web Document Viewer中的分布式缓存您必须Step 1安装所需的软件包确保您在ASP. NET Core项目中安装了必要的包将需要以下软件包DevExpress.AspNetCore.ReportingMicrosoft.Extensions.Caching.SqlServer (用于SQL Server缓存) 或 Microsoft.Extensions.Caching.StackExchangeRedis (用于Redis缓存)Step 2配置分布式缓存在您的ASP. NET Core应用程序中按照以下指南配置和启用分布式缓存Step 3在DevExpress Web Document Viewer中启用分布式缓存在同一个Startup.cs文件中找到ConfigureServices方法并找到services.ConfigureReportingServices块。在该块中添加以下代码以启用分布式缓存services.ConfigureReportingServices(builder { builder.ConfigureWebDocumentViewer(viewerBuilder { viewerBuilder.UseDistributedCache(); }); });数据库缓存(基于XPO的存储)分布式缓存只适用于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.GetRequiredServiceIStorageDbInitializer().InitDbSchema(); } } host.Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) { return WebHost.CreateDefaultBuilder(args) .UseStartupStartup(); } }文件缓存从缓存的报表源生成文档所需的时间将根据文件存储系统的性能而有所不同。要将报告文档缓存为文件请根据需要使用UseFileDocumentStorage, UseFileExportedDocumentStorage, UseFileReportStorage, 和 UseCachedReportSourceBuilder方法。Azure缓存如果您希望使用Azure提供的选项缓存报表文档请参考以下帮助主题Web Farms and Web Garden Support。缓存过期策略如果管理得当缓存是有效的——包括缓存的报表布局和文档保留的时间长度。DevExpress Reporting提供缓存过期选项使用 CacheCleanerSettings 和StorageCleanerSettings在您的应用程序中实现性能和内存消耗之间的平衡。
RELATED

相关推荐

原神抽卡模拟器:告别盲目氪金,开启理性规划的策略游戏新时代

原神抽卡模拟器:告别盲目氪金,开启理性规划的策略游戏新时代

原神抽卡模拟器:告别盲目氪金,开启理性规划的策略游戏新时代 【免费下载链接】Genshin-Impact-Wish-Simulator Best Genshin Impact Wish Simulator Website, no need to download, 100% running on browser! 项目地址: https://gitcode.com/gh_mirror…

📅 2026/9/30 22:19:25
ComfyUI-LTXVideo完全指南:如何在5分钟内开启你的AI视频创作之旅

ComfyUI-LTXVideo完全指南:如何在5分钟内开启你的AI视频创作之旅

ComfyUI-LTXVideo完全指南:如何在5分钟内开启你的AI视频创作之旅 【免费下载链接】ComfyUI-LTXVideo LTX-Video Support for ComfyUI 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-LTXVideo 想要在ComfyUI中体验最前沿的AI视频生成技术吗&…

📅 2026/9/30 22:19:24
BlenderGIS完全指南:免费实现地理数据与3D建模的完美融合

BlenderGIS完全指南:免费实现地理数据与3D建模的完美融合

BlenderGIS完全指南:免费实现地理数据与3D建模的完美融合 【免费下载链接】BlenderGIS Blender addons to make the bridge between Blender and geographic data 项目地址: https://gitcode.com/gh_mirrors/bl/BlenderGIS 想要将真实世界的地理数据带入Blen…

📅 2026/9/9 16:42:13
MORE NEWS

更多资讯

📰

Windows 离线中文语音输入盘点:本地识别与整理工具怎么选

在 Windows 上找中文语音输入,常见的诉求不是“能不能识别”,而是“录音会不会离开电脑”。市面上的工具叫法很杂:有的只把识别放本地,有的连标点、改写、术语替换也在本机;有的依赖命令行,有的装完就能用。…

📰

书霸AI科研绘图:从数据到图表的操作指南

做论文时,图表往往不是“把数据放进去”这么简单。折线图适合展示变化趋势,柱状图适合比较差异,散点图适合观察变量关系,热力图则更适合呈现矩阵数据。如果图表类型选错,即使数据准确,也可能让读者难以理解…

📰

PLL已锁定但外设无响应:低功耗唤醒时序排查实战

半夜两点半被测试同事一个电话拽起来,说低功耗唤醒之后设备就是不动,串口敲什么都没反应。我第一反应是看了下log里的标志位:PLL lock,唤醒源正确,电源域状态也恢复了。从纸面上看,一切正常,可设…

📰

代账 pipeline 的 Incident Response:申报异常、税局函询与数据泄露的 runbook 设计(上海 5 家样本对照)

作者按:前几篇把 bookkeeping pipeline 拆到供给架构、failure mode、数电票/四流、ERP 对接、observability、WORM、可移植性、PII/RBAC。这一篇补运营闭环里最难但最容易被忽略的一块——incident response。代账不是"交了钱就完事"的后台职能&#xff…

📰

A2A协议和MCP协议的区别:从配置文件骨架看多智能体协作与工具调用的分工

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

双支FCN-8s:高分辨率遥感森林分类的细节恢复与实现

简介:《一种改进的高空间分辨率遥感影像森林类型深度学习精细分类方法:双支FCN-8s》是一份面向遥感与深度学习交叉领域的参考文献,目标读者包括从事森林类型分类、遥感影像解译、机器学习应用的研究生、科研人员及工程师。该文献重点介绍双支…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬