2010-07-14 56 views
1

我有一個大學項目,我想作爲3層Winform應用程序來完成,因此我只需要在一個地方(即服務器)更新我的應用程序。有沒有人有建議如何做到這一點?我必須使用客戶機和相當好的服務器。我希望服務器能夠容納數據庫和業務邏輯,並希望客戶機成爲瘦客戶機。3級Winform應用程序

回答

1

寫下你的winform(雖然不是一個瘦客戶端),就像你平常那樣。我們將它稱之爲瘦,因爲它不適用於任何繁重的工作,只是UI邏輯。而不是引用您的業務和數據程序集,創建一個代理類,您將從您的winforms應用程序引用。然後,代理將執行與後端交談,並且您的前端將不知道通信如何發生。然後在一個單獨的項目中創建一個服務契約類(它將把接口展示給前端)。代理將使用此合約。

既然你在VS2005中,我假設你已經安裝了.net framework 3.0擴展,但不是3.5。您可以使用WCF與後端服務器進行通信,其中您的接口將暴露給代理調用。

如果你想遠離WCF,你也可以使用.net remoting,但這可能有點難以配置,而且它通常不是WCF的首選傳輸機制。

因此,這將是這樣的:

客戶層
WinForm的

代理

業務層
服務合同

業務組件

數據訪問

數據庫層
數據庫

Here is a article這有點兒描述了這種模式。

1

嘗試查看CSLA.NET框架,這是一個用例實現業務邏輯的方式。隨着UI綁定,網絡通信和其他功能,如無限制的撤消直出錫。

還附帶一本書,教你如何使用它 - 值得一讀。這是一個非常好的實施框架,並保持活躍 - 儘管像我一樣,你可能會發現它與你通常編程的方式有點轉變。

網絡功能允許您託管應用程序服務器,但該部分對UI是透明的。它堅持n層的想法,但方式稍有不同。