摘要:將SQL數(shù)據(jù)庫操作語言用于分布式開發(fā)中,并基于Windows Commuunication Foundation(WCF)開發(fā)了某應(yīng)用軟件,測試了這些代碼的實用性。測試證明相關(guān)代碼可以廣泛應(yīng)用于各種具體解決方案中。
關(guān)鍵詞:WCF;SQL數(shù)據(jù)庫;代碼
DOIDOI:10.11907/rjdk.151117
中圖分類號:TP392
文獻標識碼:A 文章編號:16727800(2015)006014502
基金項目基金項目:
作者簡介作者簡介:蔣美云(1977-),女,江蘇宜興人,碩士, 南京工業(yè)職業(yè)技術(shù)學院計算機與軟件學院講師,研究方向為軟件工程與人工智能、數(shù)據(jù)庫技術(shù)。
1 WCF編程模型
Windows Commuunication Foundation(WCF)[1]是統(tǒng)一的編程模型,用來為微軟平臺編寫分布式應(yīng)用,它涵蓋了之前出現(xiàn)的多種技術(shù),是面向服務(wù)(SOA)思想的一個具體應(yīng)用。WCF通過SOAP(Simple Object Access Protocal 簡單對象訪問協(xié)議)[2]能夠方便訪問分布在異構(gòu)網(wǎng)絡(luò)中的不同應(yīng)用。WCF實際上構(gòu)建了一個框架,這個框架實現(xiàn)了在互聯(lián)系統(tǒng)中各個Application之間通信。
基于WCF的開發(fā)主要分為服務(wù)端和客戶端應(yīng)用兩部分。服務(wù)端包括契約的定義、實現(xiàn)和寄宿三方面;客戶端包括客戶端代理的生成和服務(wù)的實現(xiàn)。構(gòu)建一個典型的解決方案包括4個項目[3]:①Contracts:定義服務(wù)契約(Service Contract),引用System.ServiceMode程序集(WCF框架的絕大部分實現(xiàn)和API定義在該程序集中);說明要實現(xiàn)什么服務(wù);②Services:提供WCF服務(wù)的實現(xiàn)。實現(xiàn)定義在Contracts中相應(yīng)的服務(wù)契約,說明如何實現(xiàn)Contracts定義的服務(wù);③Hosting:實現(xiàn)對定義在Services項目中服務(wù)的寄宿,該項目須同時引用Contracts和Services兩個項目和System.ServiceMode程序集,啟動和關(guān)閉服務(wù)、實例化Service類并提供服務(wù)的訪問地址和通信方式;④Client:生成終結(jié)點、綁定、契約相關(guān)服務(wù)代理類,通過代理類完成最終服務(wù)。
2 WCF中SQL Server常用操作
WCF中的編程語言是C#,C#對數(shù)據(jù)庫的操作基于ADO.NET對象模型,該對象模型包括數(shù)據(jù)提供程序和DataSet組件,數(shù)據(jù)提供程序有4個,分別是:Connection對象、Command對象、DataAdapter對象和DataReader對象,WCF主要使用這幾個對象對數(shù)據(jù)庫進行操作。
2.1 數(shù)據(jù)庫連接
本例中定義了兩個方法,分別實現(xiàn)數(shù)據(jù)庫的連接和關(guān)閉。
2.2 Services數(shù)據(jù)庫查詢、插入、更新和刪除
在Contracts中定義了一系列和數(shù)據(jù)庫操作相關(guān)的接口,在Services中實現(xiàn)了數(shù)據(jù)庫的打開和關(guān)閉服務(wù),對數(shù)據(jù)的增刪改查也是在Services中實現(xiàn)的。數(shù)據(jù)的增刪改查操作通過DML(Data Manipulation Language)語句實現(xiàn),DML包括4種基本操作,即INSERT、UPDATE、SELECT和DELETE,分別對應(yīng)插入、更新、查詢和刪除操作。
(5)HOSTING托管
本例通過IIS托管相應(yīng)服務(wù)。
3 Client數(shù)據(jù)顯示
3.1 生成客戶端代理
WCF生成客戶端代理的方法有多種:硬編碼代理類、通過SvcUtil.exe和添加服務(wù)引用。本文通過添加服務(wù)引用生成了ServiceReference1.ServiceClient代理類,通過代理類的對象可以調(diào)用Services中定義的服務(wù)。
3.2 客戶端查詢數(shù)據(jù)實現(xiàn)
(1)登陸實現(xiàn)
以上代碼實現(xiàn)了整表數(shù)據(jù)查詢,并綁定到數(shù)據(jù)控件GridView中顯示。
4 結(jié)語
本文給出了一個基于WCF的數(shù)據(jù)庫訪問完整應(yīng)用,在WCF架構(gòu)下,通過ADO.NET常用數(shù)據(jù)庫組件對SQL Server數(shù)據(jù)庫進行訪問,實現(xiàn)增刪改查相關(guān)業(yè)務(wù),并在客戶端完成調(diào)用,實現(xiàn)不同應(yīng)用。
WCF架構(gòu)依次分為:客戶層→服務(wù)層(業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層)。本文例子不足之處是業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層沒有分離,今后的改進中可以更加清晰這兩層關(guān)系。
參考文獻:
[1]STEVE RESNICK,RICHARD CRANE,CHRIS BOWEN. WCF核心技術(shù)[M].魯成東,戚文敏,譯.北京:人民郵電出版社 ,2009.
[2]PABLO CIBRARO,KURT CLAEYS,F(xiàn)ABIO COZZOLINO,et al.WCF 4高級編程[M].吳文國,譯.北京:清華大學出版社,2011.
[3]蔣金楠.WCF技術(shù)剖析 [M]. 北京:電子工業(yè)出版社,2009.
[4][WCF 4.0新特性]標準終結(jié)點與無(SVC)文件服務(wù)激活[EB/OL]. http://www.cnblogs.com/artech.
[5]實訓(xùn)中使用到SqlCommandBuilder例子[EB/OL].http://blog.sina.com.cn/u/3798122933.
責任編輯(責任編輯:杜能鋼)