簡體   English   中英

通過Windows和Web UI在C#應用程序之間共享演示邏輯

[英]Sharing presentation logic between C# application with windows and web UIs

我需要使用C#構建一個具有多個UI的應用程序,其中2個用於Web,另一個將是相同的應用程序,但不能在沒有Internet訪問的情況下使用。 我傾向於將MVC用於Web,然后將MVVM / WPF用於Windows應用程序(不能選擇Silverlight)。 我應該能夠為這兩種范例注入不同的存儲庫實現,從而解決與互聯網斷開連接的問題。

我想知道的是如何最好地重用盡可能多的表示邏輯。 理想情況下,我希望能夠使用相同的控制器/演示者類型的實體來運行兩個UI。 我正在尋找解決此問題的一個好例子。 我看不到重用MVC控制器的明確途徑(它們似乎太緊密地綁定到MVC框架而無法工作),但是與此同時,我對實現自定義MVVM或MVP模式所涉及的開銷並不感到興奮網絡(我擔心這是答案)。

另外,我是否瘋狂甚至嘗試重用那些組件? 這不值得麻煩嗎? 我們可以輕松地共享作為UI基礎的服務,但是兩次編寫類似的UI代碼似乎很可惜。

正確的做法是僅共享業務層數據庫訪問層 至少您將在所有客戶端之間保持一致。

然后利用每個平台的優勢(桌面應用程序的豐富性和Web應用程序的簡單性)來構建客戶

當然,這完全取決於預算。

您可以選擇對所有內容都使用WPF,以實現最大程度的重用。 WPF可以部署為部分信任XBAP。

盡管存在一些缺點*下載大小可能是一個問題*客戶端需要正確的框架版本,並且只能在Internet Explorer中運行(Firefox通過插件運行(不適用於Windows 7))

我已經在具有小型XBAP客戶端和較大的獨立應用程序的解決方案上進行了嘗試-實際上這是細微的細節,無法重用(應用程序中的窗口,XBAP中的Page等)。 也使布局保持一致。

這有點駭人聽聞(除非您真的了解自己在做什么,否則不建議這樣做),但是您可以嘗試創建一個嵌入瀏覽器的桌面應用程序。 這使您可以重用GUI。 您還需要打包Web服務器,但是如果使用的是C#/ MVC / .NET,則可能會出現問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM