技术开发 频道

基於IIS的WCF的分布式多層架構開發實現


【IT168技术文档】

  曾用.NET Remoting,基於IIS,為公司實現過分布式多層架構,客戶端采用Web Browser瀏覽,當時,公司領導告訴我可能會有多臺中間服務器用於系統,又不想每臺電腦的去安裝程序,所以,我最后采用了.NET Remtoing來實現分布式,可直到如今,我也沒有看到有購置多臺中間服務器,哪怕多臺Web服務器的可能性。不過,功能咱是實現了,只要有了機器,俺就用上。先不管他,上博客園來看看,這一看,就看到张逸 和 赵颉兩位牛人的“你知道什么是WCF嗎”的訪談錄,看完之后,對於WCF也就躍躍欲試,於是結合张逸以及博客园另一位牛人artech(都是MVP,羨慕中…..)介紹的內容, 加上本人對於Remoting的開發也有一點功底,於是也就沒有花多少時間,鼓搗出以下這個自己號稱目前最先進的基於IIS的WCF的分布式多層開發架構。

  至於WCF的相關知識,咱也不說什么,张逸和Artech這兩位牛人說得已經很是明白了,各位可以通過上面的鏈接去他們的博客上學習啦,不過,感覺有Remoting開發經驗的,對於WCF的相關概念應該不是很難理解。

  下面還是用代碼來說明一下(由於這家公司的經理要求使用VB來做,我只好放棄用了近兩年的C#的而改用VB了。還好現在基本上兩種都不會混了,也算是間接的掌握了一門新語言吧,喜歡看C#的朋友就請多擔待,或者留言,本人考盧是否提供一份C#的實現。呵呵:))

  1、首先從整體來看這個架構,這個架構的圖示大約如下,共包括了6個專案,大概從專案名稱應該也可看出其主要用途了:

  HL.EntityReflect.Osp專案實現是實體對象化。HL.Shared.Osp就是WCF的Contract了,於了Remoting來說,就是一個建議在Server端實現的接口了,其實為了安全性著想,對於WCF,本人也建議使用接口,在Server端實現。HL.Business.Osp就是我們常說的邏輯業務層,它主要負責調用HL.DALSQLServer.Osp真正實現了HL.Shared.Osp的方法。最后兩個HL.Service和HL.Win不用我說,各位也可想到一個是IIS Host的WCF及客戶端的Winform程序了。

  上面簡單介紹了各個專案的用途了,下面我們來分步用VB實現:

  2、建立實體對象:
Imports System Imports System.Runtime.Serialization '/ <summary> '/ Summary description for EREmployee. '/ </summary> <Serializable()> _ <DataContract()> _ Public Class EREmployeeClass EREmployee Public Sub New()Sub New() End Sub Private _strbs_no As String Private _strbs_name As String <DataMember()> _ Public Property strBS_NO()Property strBS_NO() As String Get Return Me._strbs_no End Get Set(ByVal value As String) Me._strbs_no = value End Set End Property <DataMember()> _ Public Property strBS_NAME()Property strBS_NAME() As String Get Return Me._strbs_name End Get Set(ByVal value As String) Me._strbs_name = value End Set End Property End Class
0
相关文章