2010-07-22 45 views
1

我們正在使用Microsoft技術棧重新訪問我們的表示層架構,作爲未來新的和重新編寫的業務系統(只是表示層)的藍圖。我們有大約30個.NET系統(2,3和3.5),其中約60%是基於Web的(CWAB + Web窗體)和40%的智能客戶端(使用CAB/SCSF,WinForms)。 所有系統集成成經由ASMX或WCF後端SOA堆(即,「後端」系統架構是常見)業務系統線程的.NET演示層架構/藍圖

目標是

  • 如果可能的話,要儘量保持基本代碼爲「普通」地在Web,Windows和Mobile之間(目前在Web和WinForms之間不再使用MVP/MVC)
  • 將增加ingly需要支持移動設備
  • 我們的大多數系統都是業務系統的呼嚕聲線 - 功能比審美要求
  • 肯定更重要的精益朝對面WPF
  • 移動即使沒有表現層重用,保持客戶端之間的一致架構(MVC/MVP/MVVM等)
  • 保持主流!

一些想法已

  • ASP.NET MVC 2 +的jQuery等爲網絡+?棱鏡/ WPF的智能客戶端 VS
  • 棱鏡所有的(智能客戶端和Silverlight) 之間搖擺VS
  • SharePoint Web部件(門戶體系結構) VS
  • 離開網絡/ WinForms和等待灰塵沉降更多一些)

未來的HTML5會如何影響您的想法?

對於這樣一個開放式問題的道歉,但真的很重視SO社區的建議和經驗!

在此先感謝!

回答

1

我們處於類似的情況,並給了這個主題相當多的想法。對於我們來說,我們排除了Sharepoint Web部件有幾個原因。對於一些人來說,這可能是一個有效的途徑,但代價很高

對於需要更豐富用戶交互的特定需求,我們正在使用MVC作爲面向外部用戶界面的一些Silverlight模塊。

對於面向內部的用戶界面,我們將Silverlight/Prism/MVVM用於新模塊,並且現在使用瀏覽器控件在現有的WinForms Smart Client系統中託管新的Silverlight模塊。我們已經能夠在現有的智能客戶端代碼和Silverlight模塊之間創建所需的交互,而且很麻煩。這對我們的系統運行良好,但您的里程可能會有所不同。我相信我們使用簡單的應用程序框架,而不是更通用但更復雜的智能客戶端CAB框架,可以幫助我們輕鬆實現集成。

在未來的某個時刻,當我們將舊模塊從WinForm升級到Silverlight時,將它們放棄,因爲它們不再需要,或者重寫它們以適應重大的業務變化。然後,我們將重做主機應用程序,完全接受Silverlight/Prism/MVVM環境並刪除所有WinForm代碼。這種方法的明顯優勢是我們不必一次重做所有的UI。

到目前爲止,它對我們運作良好。祝你好運,你選擇的路線。

+0

感謝v多吉姆 - 我想我們仍然離開魔棒解決方案; 同意關於CAB的評論 - 對我們的大多數應用程序來說,它通常也是矯枉過正的。 當你說「......很多麻煩的Silverlight模塊」時,你遇到了什麼問題? – StuartLC 2010-07-23 08:26:24

+0

唯一的困難是通過瀏覽器控件將Silverlight模塊傳回WinForms主機應用程序。它的工作原理,但我更喜歡的工作。 http://stackoverflow.com/questions/198360/silverlight-hosted-in-winforms – 2010-07-28 21:09:50