本教程首先描述了标准数据绑定模式在处理非常大的数据源时的缺点,用户可以学习如何使用服务器模式数据绑定来解决初始数据加载和数据操作性能问题。最后将演示即时反馈数据绑定模式,该模式确保应用程序的UI不会因在后台线程中执行与数据相关的操作而冻结。
P.S:DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
获取DevExpress WinForms v24.1正式版下载
DevExpress技术交流群11:749942875 欢迎一起进群讨论
默认模式
在示例应用程序中,使用默认数据绑定模式将网格绑定到具有100,000行的数据源。在这种模式下,网格将把所有数据加载到内存中,然后根据最终用户的操作对这些数据进行操作。
运行应用程序来分析网格的性能,网格将把所有记录加载到内存中,这意味着内存消耗增加,应用程序启动延迟。您可以看到启动花费了很长时间,正如在任务管理器中看到的,应用程序实际上正在运行,并且已经消耗了大约220M的内存。
单击 Break All来查看应用程序状态,如您所见,数据源仍在被填充。单击Continue并等待,应用程序最终启动后,将显示100000条记录。
数据操作将全部由客户端上的网格控件执行,因此性能将取决于客户端计算机。您可以看到,即使在快速的计算机上,数据分组和排序的执行也有明显的滞后。
服务器模式
现在关闭应用程序并切换到Server Mode数据绑定,以提高应用程序的性能。在这种数据绑定模式下,网格控件将只请求要显示在屏幕上的数据的一部分,数据整形操作将由服务器执行。
删除之前由Data Source Configuration Wizard(数据源配置向导)添加的代码和BindingSource组件,然后调用DevExpress网格控件的智能标记并单击Data Source Wizard链接。
选择Entity Framework(实体框架)技术并选择现有的数据连接。
在下一页上,选择Server-Side Data Processing并单击Next。
最后,选择所需的表、键表达式和默认排序。
现在启动应用程序来查看结果,请记住在服务模式下,网格将只请求一些记录显示在屏幕上,这意味着减少内存消耗和更快的应用程序启动。这一次,应用程序在几秒钟内启动。同时,您可以访问所有100,000条记录,滚动视图可以看到几乎没有延迟。
分组、排序和过滤的工作速度也很快,数据操作速度很快,因为在每个终端用户操作之后,网格都会向服务器发送更新数据的请求。服务器通常会更快地执行这些操作,然后只有少数可见记录返回到网格。这意味着您可以访问所有记录,并且可以自由地应用您想要的任何数据塑造操作。
如果您检查任务管理器,将看到与标准模式相比,内存消耗大大减少。
关闭应用程序来尝试另一种用于处理大型数据源的数据绑定模式。
即时反馈模式
当前应用的数据绑定模式为同步,这意味着当网格等待来自服务器的更新数据时,用户界面会暂时冻结。DevExpress Grid Control还提供异步服务器模式,也称为即时反馈模式。它与服务器模式相同,只是它在后台线程中重新加载数据以确保应用程序的UI不会冻结。
再次调用数据源向导,这次选择异步服务器端数据处理来启用即时反馈模式,然后再次选择所需的表、键表达式和默认排序。
启动应用程序来查看更改,请注意在滚动、分组和排序数据时,网格不会冻结。当数据在后台线程中检索时,加载指示器显示在左上角。
支持数据访问技术
注意Entity Framework(实体框架)并不是唯一支持这些数据绑定模式的技术,在Visual Studio工具箱中,您可以看到在服务器模式和即时反馈模式下用于各种数据访问技术的数据源组件——实体框架、LINQ到SQL、并行LINQ到对象或WCF数据服务。
您可以从工具箱中添加这些组件并手动绑定数据,替代使用向导。
更多产品资讯及授权,欢迎“立即咨询”!
更多DevExpress线上公开课、中文教程资讯请上中文网获取
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/4952.html
相关产品: DevExpress WinForms Subscription, DevExpress Universal Subscription,