我已經設計了不少最近的Windows窗體應用程序(數據輸入應用程序,辦公一體化,等等),雖然我總是設計時考慮到邏輯層中, 「中間層」業務邏輯層始終託管在桌面PC(即物理客戶端 - 服務器)上。物理中間層分離應用程式
當我接近更復雜的應用,我發現自己渴望有一個物理中間層,而不是與傳遞請求返回到應用服務器來處理業務邏輯(可定期更改)和接口的桌面客戶端。這感覺就像我錯過了一些因素,比如更適合Web應用程序的可伸縮性和可維護性。
我很好奇,想知道的WinForms多遠其他開發商都採取了中間層的分離:
- 多少處理(如果有的話),你在中間層服務器上執行?
- 你使用什麼通信方式 - WCF,遠程處理,網絡服務等?
- 性能是多少因素,以及您往返服務器的頻率?
將業務邏輯轉移到單獨的層上還是有好處的,還是在PC上本地託管組件更爲實用(並確保您有一個良好的部署模型,以將常規版本推出爲業務規則改變)?
或者,我應該從WinForms的指導客戶完全消失,如果這些因素都參與?隨着諸如Silverlight甚至ASP.NET和AJAX等替代品的出現,選擇WinForms客戶端的原因似乎在縮小。
我當然可以看到Web環境的好處,但我想我正在考慮是否可行,通過連接WinForms客戶端來跨服務對某些基於服務器的邏輯進行交談來實現「兩全其美」。這隻適用於當你有很強的WinForms約束時,如重型辦公一體化顯然...... – Soundwave 2009-08-11 00:43:34
我可以理解你的觀點。它肯定可以用於你擁有一組服務器的Web服務,這些服務器可以完成真正的工作,保存數據等。 將您的WPF/WinForms視爲具有Web服務連接的瘦客戶端。這樣你就可以保持豐富的用戶界面。但是,您並不真正獲得傳統上在Web應用程序中看到的任何維護優勢。您可以在Web服務級別更改功能和行爲,但添加功能需要刷新UI。有一些更新的部署工具可用於客戶端應用程序,可能有所幫助。 – 2009-08-11 01:26:34