WF4.0实战(八):实现一套图形化的数据访问层

现在,估计三层架构仍然被程序员广泛使用。先列出这三层,不是怕大家不知道这三层,而是下文的需要,:)。
1、数据访问层
2、业务逻辑层
3、表示层
    还有就是数据交换的实体层
    很多程序员都用代码生成器,我也不另外。一般的代码生成器会帮助程序员生成数据访问层和业务逻辑层。由于表示层是千变万化的,是很难通过生成器生成出来的。当固定生成的业务层不能满足需求的时候。往往需要去手动的修改代码,这篇文章教你如何通过图形化的界面定制流程化的业务逻辑,无需修改你的代码。
    先看下我的这套数据数据访问层的截图:

数据访问层:

WF4.0实战(八):实现一套图形化的数据访问层_第1张图片

订购产品的业务逻辑:

WF4.0实战(八):实现一套图形化的数据访问层_第2张图片

实体层:

WF4.0实战(八):实现一套图形化的数据访问层_第3张图片

应用层调用:

1         IDictionary < string object >  input  =   new  Dictionary < string object >  
2              {
3                  {  " Request "  , ListItem }
4              };
5 
6              WorkflowInvoker.Invoke( new  yewuloji(), input);

以上看了我的数据访问层的一个大概。

说明1:除了订购产品的业务逻辑,其他都是从代码生成器中生成的;

说明2:我的数据表操作都是sp。

下面叙述一下如何实现:

数据访问层:以一个添加操作为例,看下图:

WF4.0实战(八):实现一套图形化的数据访问层_第4张图片

这是微软新发布的WF4.0中的ado.net操作的活动,这里我用于调用已经生成好的基本存储过程。一个数据访问的xaml文件对应数据库中的一个sp。xaml文件以及对应数据库中的sp都是生成器自动生成的。

存储过程:自动产生的存储过程

WF4.0实战(八):实现一套图形化的数据访问层_第5张图片

这个例子的数据表结构:

WF4.0实战(八):实现一套图形化的数据访问层_第6张图片

Order是订单表,Item是订单项表,我要将要制定的业务是:订购一批产品,如果代码实现,方式是:在数据中Order表中新增一笔记录,接着将所有的订单项添加到Item表中,在此过程中要统计所有项的数量和价格,最后修改新增的Order表中的那笔记录的ItemCount和OrderPrice。

而在我的这套数据访问层中有下面两幅图的活动供你选择。第一副图是自定义的数据访问层的活动,第二副图是IF、Foreach等进行判断和循环还有事务等功能的WF4.0内置的活动。

WF4.0实战(八):实现一套图形化的数据访问层_第7张图片

WF4.0实战(八):实现一套图形化的数据访问层_第8张图片

通过拖拽上面两幅图的活动,我们就可以定制任意的复杂的业务逻辑,如下图。

WF4.0实战(八):实现一套图形化的数据访问层_第9张图片

调试和运行:

Demo使用代码:

 1         ItemInfo i1  =   new  ItemInfo();
 2              i1.Price  =   18 ;
 3              i1.ProductName  =   " 鼠标 " ;
 4              ItemInfo i2  =   new  ItemInfo();
 5              i2.Price  =   32 ;
 6              i2.ProductName  =   " 键盘 " ;
 7 
 8              ItemInfo i3  =   new  ItemInfo();
 9              i3.Price  =   5 ;
10              i3.ProductName  =   " 键盘垫 " ;
11 
12 
13              List < ItemInfo >  li  =   new  List < ItemInfo > ();
14              li.Add(i1);li.Add(i2);li.Add(i3);
15           
16              IDictionary < string object >  input  =   new  Dictionary < string object >  
17              {
18                  {  " ItemList "  , li }
19              };
20 
21              WorkflowInvoker.Invoke( new  Test2(), input);

结果:

WF4.0实战(八):实现一套图形化的数据访问层_第10张图片

优点:

1、业务逻辑用图形化表示,非常清晰。

2、可扩张性强,可以把常用的业务流程存放在DB中

3、容易维护,如果你的业务逻辑需要改动的时候。可以把业务逻辑的xaml文件拿出来。在vs或者宿主在windowsform、wpf中的wf4.0流程设计器进行修改。而无需从新修改和编译你的代码。

4、代码量少。由于sp、数据访问层、一般的业务逻辑都是自动生成的。只有一些复杂和特殊的业务逻辑需要人工去定制。

.......

缺点:

由于在普通的三层上加了工作流的思想,效率可能会有些损耗。有多少我没有测试过。

总结:这套数据访问层是从我现在的使用的数据访问层演变过来的。我将以前的代码统统的工作流化了。将.cs文件更改成了.xaml文件,但是还没有完善好。

代码:/Files/zhuqil/WorkflowConsoleApplication12.rar 

数据库:/Files/zhuqil/Test.rar


原文链接: http://www.cnblogs.com/zhuqil/archive/2010/04/23/dataacess.html

你可能感兴趣的:(WF4.0实战(八):实现一套图形化的数据访问层)