Dorado 5 : 07.Module(数据坞) (RF1)

数据坞(Module)是用于管理一个到多个dataset,作为容器形式存在,以便于实现Dataset在应用系统中的重用。在早期的dorado版本中占有很重要的地位,在Dorado5之后,数据坞已经变得很边缘化了。
数据坞(Module)中的数据集(dataset),可以被视图模型(ViewModel)引用以及重用,从而使同样数据可以在不同页面上的被重用。
但是这种引用偏向于无页面特征的数据集,就是说与request无关,否则就与定义在视图模型中就没有什么差别,也没有什么优势了。例如字典类型的数据一般来说在系统中都不会有什么变化也一般不需要执行查询,不需要分页处理,每一次都是取出所有的数据。在dorado开发中一般被用于LookupField与DynamicDropDown。
字典类型的数据在系统开发中具备一种特征,就是读多写少,而且这些信息被经常引用。则我们可以数据坞中dataset提供的一个属性scope:

属性

说明

Scope

指定dataset的生命周期
application;
session;
request;

Timeout

指定过期时间

Dataset的默认scope为request,也就是请求结束之后就主动地释放该dataset对象,这也是ViewModel中dataset的存在形式。由于字典类型的数据需要经常读取,为了增加读取得效率,dataset通过指定scope指定其存在的生命周期为session或application级别,就能够保证该dataset在整个会话或则系统运行的生命周期中都会缓存,并不需要经常的读取数据库,从而在大并发量的客户访问是可以显著的提供响应速度。缓存时间的长短由timeout设定,在timeout过期之后,系统会自动的清除该dataset对象,直到下一次接受到用户的请求再重新从数据库加载数据。
注意这种缓存处理方式中,一般都应该是小数据量的表格使用才有意义,否则需要dataset分页处理,这样的话session, application等级制也就失去了意义。与request的差别就很小了。
采用session或application机制处理之后性能提高的相关数据可以参考<<dorado5 性能指南.doc>>。