WCF EF 實戰四 UI層MVP模式處理

2021-04-22 16:55:23 字數 3609 閱讀 2947

在本系列的第一篇中,我們曾經描述了本系統的整個實現結構,可以檢視第一篇。

在客戶端的實現我們將採用

mvp模式來實現,就是將客戶端再分為二層,ui及

presenter,

ui主要是定義介面的元素及響應客戶的操作。

presenter

主要是對

ui層響應客戶端操作的業務處理。關於

mvp的一些知識,如果不太清楚可以檢視

mvp中的model

我們不需要實現了,因為

wcf服務將會給我們提供相應的

model.

下面我們新建乙個類庫

demo. presentation,

同時新增上次建立的

wcf的服務的引用。(先要執行

demo.

同時注意要點下圖的高階,將返回的集合型別設為泛型

list。

由於我們的

ui業務相當的簡單,就是對

employee

物件進行增刪改查。因此首先我們定義

mvp中的

view

介面using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

demo.presentation.wcfservice;

namespace

demo.presentation

//////員工列表

///

list

users

//////新增事件

///

event

voideventhandler onaddnewemp;

//////刪除

///

event

voideventhandler ondeleteemp;

//////更新

///

event

voideventhandler onupdateemp;

//////

初始事件

///

event

voideventhandler prepareview;

}

//////

定義員工業務的操作

///

public

inte***ce

iuserpresenter

}

presenter

的真正實現:

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

demo.presentation.wcfservice;

namespace

demo.presentation

void view_prepareview()

#region

iuserpresenter 成員

public

void addnewuser()

}

public

void deleteuser()

}

public

list

getusers()

}

public

void updateuser()

}

#endregion

}

}

}

現在我們來實現客戶端的ui。當然ui要響應使用者的操作,會呼叫到demo.

presentation

。但其本身不會直接處理任何資料。

新增乙個window類庫demo.ui

using

system;

using

system.collections.generic;

using

system.componentmodel;

using

system.data;

using

system.drawing;

using

system.linq;

using

system.text;

using

system.windows.forms;

using

demo.presentation.wcfservice;

using

demo.presentation;

namespace

demo.ui

#region

iuserview

成員employee _currentemployee = null;

public

employee currentemployee

set}

public

list

users

}

public

event

voideventhandler onaddnewemp;

public

event

voideventhandler ondeleteemp;

public

event

voideventhandler onupdateemp;

public

event

voideventhandler prepareview;

#endregion

private

void cmddelete_click(object sender, eventargs e)

}private

void cmdrefresh_click(object sender, eventargs e)

private

void cmdadd_click(object sender, eventargs e)

private

void cmdupdate_click(object sender, eventargs e)

}

//////判斷網格是否有選擇的

///

employee selectedemployee

} }

}

我們的介面實現了iuserview介面,在介面裡只處理最基本的一些操作,而資料訪問的實現實際是是由iuserpresenter來完成的。當有使用者操作時,只需引發一些相關的事件。如果要進行ui的移植,那麼相應的工作量將會大大的減少。

僅僅是乙個demo相對來說比較的簡單,實際在使用ef時真的很難用。很多最終的sql語句我發覺都不是自己想要的那種簡單的。搞得太複雜了。網上的資料也比較少,同時也遇到了很多的難題。以後我會講一下ef中遇到的問題。  

OSI七層網路模型與TCP IP四層網路模型

osi七層模型 osi中的層 功能 tcp ip協議族 應用層 檔案傳輸,電子郵件,檔案服務,虛擬終端 tftp,http,snmp,ftp,smtp,dns,telnet 表示層 資料格式化,轉換,資料加密 沒有協議 會話層 解除或建立與別的接點的聯絡 沒有協議 傳輸層 提供端對端的介面 tcp,...

OSI七層網路模型與TCP IP四層網路模型

osi模型,即開放式通訊系統互聯參考模型 open system interconnection,osi rm,open systems interconnection reference model 是 國際標準化組織 iso 提出的乙個試圖使各種計算機在世界範圍內互連為網路的標準框架,簡稱osi...

OSI七層網路模型與TCP IP四層網路模型

1.osi網路分層參考模型 網路協議設計者不應當設計乙個單 一 巨大的協議來為所有形式的通訊規定完整的細節,而應把通訊問題劃分成多個小問題,然後為每乙個小問題設計乙個單獨的協議。這樣做使得每個協議的設計 分析 時限和測試比較容易。協議劃分的乙個主要原則是確保目標系統有效且效率高。為了提高效率,每個協...