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

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

数据访问层:

订购产品的业务逻辑:

实体层:

应用层调用:

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

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

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

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

下面叙述一下如何实现:

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

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

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

这个例子的数据表结构:

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

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

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

调试和运行:

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<stringobject> input = new Dictionary<stringobject> 
17             {
18                 { "ItemList" , li }
19             };
20 
21             WorkflowInvoker.Invoke(new Test2(), input);

结果:

优点:

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

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

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

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

.......

缺点:

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

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

代码:/Files/zhuqil/WorkflowConsoleApplication12.rar 

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

 



(全文完)


以下为广告部分

您部署的HTTPS网站安全吗?

如果您想看下您的网站HTTPS部署的是否安全,花1分钟时间来 myssl.com 检测以下吧。让您的HTTPS网站变得更安全!

SSL检测评估

快速了解HTTPS网站安全情况。

安全评级(A+、A、A-...)、行业合规检测、证书信息查看、证书链信息以及补完、服务器套件信息、证书兼容性检测等。

SSL证书工具

安装部署SSL证书变得更方便。

SSL证书内容查看、SSL证书格式转换、CSR在线生成、SSL私钥加解密、CAA检测等。

SSL漏洞检测

让服务器远离SSL证书漏洞侵扰

TLS ROBOT漏洞检测、心血漏洞检测、FREAK Attack漏洞检测、SSL Poodle漏洞检测、CCS注入漏洞检测。

posted @ 2010-04-23 06:58  麒麟  阅读(5481)  评论(21编辑  收藏  举报