999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于WCF技術框架的在線考試系統設計

2018-01-04 10:59:48封震震
電腦知識與技術 2018年28期

封震震

摘要:WCF是由微軟公司開發的一系列數據通信的應用程序框架,它是對Web Service的擴展,是獨立與IIS的應用程序,支持HTTP、TCP等多種協議。在線考試系統是一個客戶端與服務器的WCF程序系統,服務器與客戶端通過SOAP協議進行交互,服務器是控制臺應用程序,啟動后會監聽客戶網址,客戶端是一個WPF的窗體程序,啟動后輸入用戶名與密碼,根據用戶權限功能實施操作。

關鍵詞:WCF框架;WPF窗體;SOAP協議

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2018)28-0056-02

1 系統整體架構

考試系統服務器端采用三層框架+WCF服務模式,創建NetTestModel實體類,構造數據類型,創建NetTestDAL數據訪問層,完成數據庫連接與操作處理,創建NetTestBLL業務邏輯層,編寫業務邏輯函數接口,創建NetTestServer類提供WCF服務,客戶端調用WCF接口函數實現相關功能,系統架構如圖1所示。

2 功能模塊

根據課程在線考核要求,系統采用C/S模式,通過WCF技術架設在線考試服務器,接受客戶端請求進行在線考試。考生登錄系統后,系統隨機生成一套考卷,在規定時間內對考卷進行作答,提交后系統自動評分(若在規定時間內考生未手動提交,系統完成自動提交)。系統主要分為后臺教師和前臺考生兩種用戶權限,教師訪問需要實現的功能有:1)課程管理;2)題庫管理(試題類型、題干及參考答案);3)考生管理;4)考卷生成規則管理;5)考核成績管理。考生訪問需要實現功能有:1)考核課程選擇;2)隨機生成考卷;3)答題與提交功能。

3 WCF服務器程序

建立一個WCF服務,在解決方案資源管理器中生成NetTestService.cs文件和一個INetTestService.cs文件,打開INetTestService.cs文件,我們可以定義一個INetTestService的接口,接口如下:

[ServiceContract]

public interface INetTestService

{ [OperationContract]

string login(UserClass user); // 用戶登錄

[OperationContract]

TestClassaddTest(TestClasstset); //試題增加

[OperationContract]

DataTablegetTestDataTable(); // 獲取試題

[OperationContract]

bool deleteTest(TestClass test); // 刪除試題

[OperationContract]

void updateTest(TestClass test);//更新試題

}

接口有一個[ServiceContract]的屬性,表示該接口是用于公開服務的接口,類似Web Service中的[WebMethod]屬性,接口中帶有[OperationContract]屬性的函數表示公開的服務函數。對應地在NetTestService.cs的類中實現接口函數。

public class NetTestService : INetTestService

{

public string login(UserClass user)

{

UserManager manager = new UserManager();

returnmanager.login(user);

}

… //其他函數略

}

設計控制臺程序,在Program.cs中設計程序如下:

class Program

{

static void Main(string[] args)

{

try

{

stringurl = "http://localhost:8889/NetTestService/";

ServiceHost host = new ServiceHost(typeof(NetTestService), new Uri(url));

host.Open();

Console.WriteLine(url + "正在監聽……");

}

catch (Exception exp)

{

Console.WriteLine(exp.Message);

}

Console.ReadKey();

}

}

“http://localhost:8889/NetTestService/”是服務器地址,8889端口號是自定義的,host是一個ServiceHost對象,這個對象就是服務器啟動用的重要對象,建立它時調用ServeiceHost的構造函數,函數的第一個參數是WCF服務的類名稱,第二個參數是服務器的Uri地址對象。host調用Open方法就使得服務器開始工作了,服務器端就開始監聽客戶端了。

4 客戶端程序

新建一個WPF的窗體項目,執行“添加服務引用”菜單命令,彈出“添加服務應用”對話框,輸入服務器地址http://192.168.18.162:8889/NetTestService/,然后單擊“轉到”按鈕,結果可以看到“服務”中出現了NetTestService服務,在“操作”框中出現接口函數,將其命名空間定義為“TestWCF”。客戶端發現服務器的服務后會自動生成一個代理,在解決方案資源管理器中就可以看到一個名稱為Service References的服務。

客戶端程序的核心就是建立一個客戶端去異步調用接口函數,實現用戶操作功能,以用戶登錄功能為例,簡要代碼結構如下:

public partial class MainWindow : Window

{//建立client對象

TestWCF.NetTestServiceClient client = new TestWCF.NetTestServiceClient();

stringurl = "http://192.168.18.162:8889/NetTestService/";

publicMainWindow()

{

InitializeComponent();

//設置異步調用

client.loginCompleted += client_loginCompleted;

//設置訪問的服務器地址

client.Endpoint.Address = new System.ServiceModel.EndpointAddress(new Uri(url, UriKind.Absolute));

}

voidclient_loginCompleted(object sender, TestWCF.loginCompletedEventArgs e)

{

if (e.Error == null)

{

if (e.Result.Equals("logined"))

{

Get_Info.User = this.txtUser.Text;

Get_Info.Pass = this.txtPass.Password;

Option a = new Option();

a.Show();

this.Close();

}

else if (e.Result.Equals("registered"))

{

MessageBox.Show("注冊成功!請重新登錄");

}

else

{

MessageBox.Show("非法用戶");

}

}

else

MessageBox.Show(e.Error.Message);

}

private void btLogin_Click(object sender, RoutedEventArgs e)

{

stringuName = txtUser.Text.Trim();

stringuPass = txtPass.Password.Trim();

try

{ //異步調用login函數

client.loginAsync(new TestWCF.UserClass { uName = uName, uPass = uPass });

}

catch (Exception exp) { MessageBox.Show(exp.Message); }

}

}

}

程序首先通過TestWCF命名空間的TestWCF.NetTestServiceClient建立一個client對象,然后調用設置login的異步調用返回函數client_loginCompleted,設置client訪問的服務器地址后,在btLogin_Click中直接調用loginAsync函數。運行服務器程序使其處于監聽狀態,運行客戶端程序就可以實現相應功能。

5 結束語

考試系統使用WCF技術,功能代碼在服務器端編碼完成,開發人員只要把功能模塊統一發布為WCF,然后綁定不同的Endpoint進行發布,無需再考慮Model,BLL,DAL等復雜的邏輯轉換,就可以將B/S與C/S結構模式的業務邏輯層真正地融合在一起,從而降低客戶端編碼復雜度,同時提高系統功能更新與維護效率。使用WCF實現SOA,可以對事務、安全、編碼等進行統一管理,協調了各服務器之間的系統操作。

參考文獻:

[1] 馬勇超,金亞萍,張勝,等.基于WCF架構的OPC客戶端技術在物流系統中的應用[J].物流技術與應用,2017,22(3):126-128.

[2] 申華.一種基于WCF技術的遠程數據共享的實現[J].電腦編程技巧與維護,2017(11):67-68,82.

[3] 唐亮,陳向陽,鄭烽.基于WCF技術的分布式任務處理框架的設計[J].電子技術與軟件工程,2017(1):55-56.

[4] 紀洲鵬,趙斐斐.WCF技術在.NET多層架構開發中的應用[J].軟件導刊,2016,15(1):118-120.

【通聯編輯:朱寶貴】

主站蜘蛛池模板: 国产经典在线观看一区| 中文字幕久久亚洲一区| 丁香综合在线| 欧美啪啪一区| 成人免费一区二区三区| 亚洲成人精品| 囯产av无码片毛片一级| 日韩无码视频网站| 毛片免费高清免费| 免费一级成人毛片| 麻豆精品在线| 国产精品短篇二区| 丝袜久久剧情精品国产| 女人av社区男人的天堂| 国产精品偷伦视频免费观看国产| 亚洲国产精品成人久久综合影院 | 国产成人亚洲欧美激情| 久久国产精品电影| 亚洲毛片网站| 久久综合伊人77777| 久久这里只有精品66| 亚洲日韩每日更新| 国产乱论视频| 一本大道香蕉久中文在线播放| 亚洲乱码精品久久久久..| 夜夜爽免费视频| 在线国产你懂的| 国内毛片视频| 青青国产在线| 伊人查蕉在线观看国产精品| 亚洲成aⅴ人片在线影院八| 草逼视频国产| 国产乱子伦手机在线| 538国产在线| 亚洲一级毛片| 日韩成人在线一区二区| 2021精品国产自在现线看| 黄色网址手机国内免费在线观看| 欧美一区二区精品久久久| 国产亚洲视频中文字幕视频| 四虎AV麻豆| 精品无码一区二区三区在线视频| 人妻中文久热无码丝袜| 波多野结衣的av一区二区三区| 日韩小视频在线观看| 国产白浆视频| 亚洲欧美在线综合图区| 国产亚洲精| 日韩a在线观看免费观看| 毛片久久久| 亚洲成在人线av品善网好看| 一本大道香蕉久中文在线播放| 免费无码又爽又刺激高| 丁香综合在线| 国产成人精品午夜视频'| 欧美一级在线看| 99国产精品国产高清一区二区| 高清免费毛片| 国产打屁股免费区网站| 亚洲欧美另类专区| 色香蕉网站| 亚洲欧洲日产国产无码AV| 波多野结衣一级毛片| 国产成人午夜福利免费无码r| 内射人妻无码色AV天堂| 亚洲欧洲日产国产无码AV| 91年精品国产福利线观看久久| 国产呦视频免费视频在线观看| 五月婷婷丁香色| www.youjizz.com久久| 欧美日本在线播放| 成年看免费观看视频拍拍| 凹凸精品免费精品视频| 日韩在线中文| 亚洲αv毛片| 免费啪啪网址| 国产精品刺激对白在线| 亚洲第一网站男人都懂| 国产免费观看av大片的网站| 91娇喘视频| 欧美黄色网站在线看| www成人国产在线观看网站|