天彤的tdmanager给我们提供了一个开发的舞台,在项目的测试中,深深受益了,尤其是测一口价和拍卖宝贝的自动重发,由于要进行多个用户不同权限的的转化,而且要清除缓存,用事务大大提高了我的测试效率。于是跃跃欲试,项目2.17号发布了之后,就开始投入了事务的开发中。
1.分层开发
tdmanager是采用分层开发,所谓的三层开发就是将整个业务应用划分为表示层-业务逻辑层―数据访问层-数据库等,明确地将客户端的表示层、业务逻辑访问、和数据访问及数据库访问划分出来,十分有利于系统的开发,维护、部署和扩展。 
数据访问层:也叫 DataAccess层、DAL(DataAccess Layer层),这一层的工作就是与数据库或其它文件打交道,从数据库里取数据、更新数据、删除数据等。
业务逻辑层:也叫中间层,Bussiness Logical layer,也可说是Bussiness Rule(业务规则),这一层是处理业务逻辑的。
表现层:这一层主要是与用户打交道,也就是界面。
我要参与的开发就是在业务逻辑层里写方法。由于我在上个项目中很大部分的工作是测试一口价和拍卖宝贝的自动重发,而测试自动重发需要修改宝贝的starts、ends和gmt_modified,所以我打算做一个快速修改时间的事务。
 
2.确定参数个数
一口价宝贝自动重发和拍卖宝贝自动重发需要修改的时间字段是不一样的。一口价宝贝的自动重发是只看starts和gmt_modified,需要把starts改成7天之前或者14天之前,这个时间是需要测试人员自行决定时间修改的,而拍卖宝贝的自动重发是只看ends和gmt_modified,ends直接设置成系统当前时间就可以了,不需要测试人员自行决定时间修改的。这样的话测一口价宝贝需要两个参数:宝贝id和starts的修改时间,测拍卖宝贝只需要一个参数:宝贝id,而时间参数我采用了DateTime类型,无法为空,于是我采用了函数重载,只可惜webserver不支持函数重载。最后时间参数我采用String类型,在函数内部再进行类型转化,这样,当测试拍卖宝贝自动重发,就只需要输入参数宝贝id,而不需要输入starts的修改时间;而测试一口价宝贝自动重发,输入参数宝贝id和starts的修改时间。
 
3.认识了DataSet的强大力量
在做事务之前,我对DataSet不熟悉,而着手写这个方法之后,我参阅了资料。
DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖与数据库的独立数据集合。即使断开数据链路,或者关闭数据库,DataSet依然是可用的.DataSet在内部是用XML来描述数据的。DataSet 由一组 DataTable 对象组成,您可使这些对象与 DataRelation 对象互相关联。在从数据库完成数据抽取后,DataSet就是数据的存放地,它是各种数据源中的数据在计算机内存中映射成的缓存。同事它在客户端实现读取、更新数据库等过程中起到中间部件的作用。
DataSet给我的感觉就是一个数据容器,我们从数据库中用sql语句查询到的结果存到DataSet中,然后在DataSet中进行数据的修改,最后一次性更新到数据库中。虽然我这次写的方法只是更新了一个表中的字段,没有真正看出DataSet的强大力量,但如果是更新多张表,可以先在DataSet中把多张表的数据修改好,一次性更新到数据库中。关于DataSet,我会继续关注,继续学习的。