程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> WF4.0實戰(八):實現一套圖形化的數據訪問層

WF4.0實戰(八):實現一套圖形化的數據訪問層

編輯:關於.NET

現在,估計三層架構仍然被程序員廣泛使用。先列出這三層,不是怕大家不知道這三層,而是下文的需要,:)。

1、數據訪問層

2、業務邏輯層

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中的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<string, object> input = new Dictionary<string, object>
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文件 ,但是還沒有完善好。

代碼:http://files.cnblogs.com/zhuqil/WorkflowConsoleApplication12.rar

數據庫:http://files.cnblogs.com/zhuqil/Test.rar

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved