Dorado 5 : 13.深入了解dorado (T1)

经过之前的学习,我们会发现有一些dorado中的专业名词频频出现。比如,Dataset数据集对象,Control控件,Module数据坞,ViewModel视图模型属性,事件,绑定,映射等等,这些在之后的学习中还会遇到更多。相信在之前的学习中,大多数读者在一边学做例子的同时,也会有不少疑惑。为什么Dataset一定要和Control控件绑定?这些绑定是在什么时候发生的?Dataset有多少种,可以满足实际业务中的所有需求吗?dorado中的事件和以前传统开发中的事件有什么不同?ViewModel的作用是什么等等......
本章主要介绍dorado的运行原理,讲解dorado中主要的构成部分,包括Dataset数据集对象、ViewModel视图模型等等这些概念。

小测验

1.关于ViewModel视图模型,下面说法错误的是()【单选】
A) ViewModel是一种用于封装界面逻辑和操作逻辑的对象。
B) ViewModel是客户端的对象,也是服务器端对象。
C) ViewModel中的各种控件元素都只能在客户端创建。
D) 可以把ViewModel看作是Dataset和各种控件的容器。

2.不同的情况ViewModel会有不同的状态,以下哪些是ViewModel的状态()【多选】
A) ViewModel.STATE_VIEW
B) ViewModel.STATE_SERVICE
C) ViewModel.STATE_ NULL
D) ViewModel.STATE_ DESIGN

3.在ViewModel的不同状态下,实现类中被调用的方法不同,但是有些方法总是被调用,下面正确的是()【多选】
A) public void init(int state)throws Exception {}
B) protected void doLoadData() throws Exception {}
C) protected void initControls() throws Exception {}
D) protected void initDatasets() throws Exception {}

4.在ViewModel中有哪些子元素对象()【多选】
A) Datasets
B) Controls
C) Parameters
D) Properties

5.ViewModel中的Dataset数据集对象有哪几种()【多选】
A) SqlDataset,AutoSqlDataset,DODataset
B) DatasetReference,FormDataset
C) CustomDataset,MarmotDataset
D )以上全部都是

6.在使用ViewModel时,下面哪些说法是正确的()【多选】
A) ViewModel对象只在第一次请求的时候被创建。
B) ViewModel对象在每一次和客户端交互的时候都被创建一次。
C) 避免在ViewModel对象中使用私有变量保存状态信息。
D) ViewModel对象不会在服务器端做缓存。

7.在服务器端和客户端, ViewModel中的properties分别如何使用()【多选】
A) 客户端:ViewModel.properties().setValue(key,value);
B) 客户端:getViewModel().properties().setValue(key,value);
C) 服务器端:this.properties().setValue(String key,String value);
D) 服务器端:this.properties().setValue(String key,Object value);

8.关于Module数据坞中的Dataset对象,下面说法正确的是()【单选】
A) SqlDataset,AutoSqlDataset,CustomDataset
B) SqlDataset,AutoSqlDataset,FormDataset,DODataset,MarmotDataset
C) SqlDataset,AutoSqlDataset,CustemDataset,DatasetReference
D) SqlDataset,AutoSqlDataset,CustomDataset,MarmotDataset,DODataset

9.在Module数据坞中,具有scope和timeout属性的Dataset有()【】
A) SqlDataset,AutoSqlDataset
B) DODataset
C) MarmotDataset,CustomDataset
D) 以上全部都有

10.关于数据集对象Dataset,下面说法正确的是()【多选】
A) 数据集对象用来管理一组数据,其结构类似于关系型数据库中的表或视图。
B) 数据集对象包含Field列对象和Record记录对象。
C) 数据集中的记录对象是有状态的。
D) 数据集对象的接口是com.bstek.dorado.data.Dataset

11.关于Dataset中Record对象的记录操作,下面说法正确的是()【】
A) Dataset的默认当前记录是第1条记录
B) Dataset的isFirst在数据加载之后默认为true
C) Dataset的moveFirst执行之后,Dataset的当前记录是第1条,isFirst为true
D) Dataset的当前记录是最后1条记录的时候执行moveNext,当前记录仍然是最后1条,isLast为true。

12.关于flushData方法,下面说法正确的是()【】
A) flushData方法是Dataset数据集对象的服务器端方法。
B) flushData方法的作用是将客户端的Dataset对象提交至服务器端处理。
C) flushData方法的执行,对于在服务器端ViewModel状态来说是ViewModel.STATE_VIEW。
D) flushData方法的执行,对于在服务器端ViewModel状态来说是ViewModel.STATE_SERVICE。

小结

本章首先分步讲解了dorado的运行原理,帮助我们逐步了解从请求页面开始直到页面数据及控件加载完成并最终展现的全部过程。之后,详细分章节讲解ViewModel视图模型、Module数据坞、Dataset数据集对象的概念、结构、作用等等。其中重点讲解了ViewModel的状态及不同状态下的实现类种方法执行的顺序步骤。在Dataset章节,重点讲解了Dataset对象的结构和记录指针的概念,对Dataset对象的客户端事件和服务器端监听器都有详细介绍说明。
然后,通过三个不同方式实现查询的示例从不同的角度帮助读者理解Dataset数据集对象的常用属性和方法的使用,熟练掌握Dataset的客户端事件及服务器端监听器的编程开发。
本章最后还对Dataset数据集中的数据校验做了简单的介绍并通过示例讲解使用方法,实现了客户端数据合法性的校验。
Dorado运行原理、ViewModel以及Dataset数据集的概念和原理需要重点掌握。