看到MVVM如何被高度認爲是一個很好的系統設計模式,我想我可能會跳上去給MVVM一個鏡頭。Silverlight 5 MVVM最佳實踐
只是我自己的一些背景之前,我首先的問題:
我已經做了幾年的ASP.NET Web表單的發展。我也在ASP.NET MVC中做了相當多的開發,我對此很滿意。
目前,我們有許多使用ASP.NET MVC 3編寫的「主幹」應用程序,我們可以在我們接近時定製並向客戶銷售這些應用程序。這些應用程序都是用於內部使用,因此插件不會成爲問題。開發的真正問題是,對於具有複雜業務規則的大規模業務應用程序,ASP.NET MVC往往會讓我們放慢速度(編寫jQuery/javascript>服務器端處理>返回結果,使用jQuery通知>改變視圖,沿着這條線)。
然後我開始尋找答案,這將幫助我們提高交付時間和響應速度(嗯,我們都知道JavaScript是如何殺死我們的),我的搜索將我帶到了Silverlight(我們有時間去改變,不用擔心)。
所以來這裏的問題:
- 我接觸過許多的Silverlight MVVM樣品在線,但它們都顯示應用程序一樣簡單,只有一個數據庫表進行交互。 MVVM模式非常適合大型應用程序嗎?
- 在MVC中,我習慣了Ninject的依賴注入,將UnitOfWork的實現傳遞給我的控制器。在我在網上找到的所有樣本中,沒有一個使用任何形式的DI。真的沒有必要嗎?由於MVVM的想法是分離的,爲什麼不將ViewModel與Model分離?
- 我已經閱讀了Jeremy Likness出版的一本書,名爲Designing Silverlight Business Applications。他使用MEF做解耦,我認爲這並不適合我們的應用。我們並不需要做「熱插拔」。你對此有何看法?
- MVVM是關於命令,數據綁定和無代碼隱藏的。如果我想與不接觸命令的用戶界面進行交互,該怎麼辦? (我也不太清楚這一點,我猜的ListView OnSelectionChange?)
1.你介意分享一下你的經驗嗎?是否因爲.xap的文件大小?你有沒有遇到任何併發症?這就是爲什麼我覺得很奇怪。就像你說的那樣,你還沒有用過MVVM的DI。我可以知道爲什麼嗎?是否因爲沒有必要進一步解耦?我會研究這一點。感謝您的反饋意見。 –
xap大小現在大約6Mb,所以它不是問題(之前它比以前更大,因爲我們包含的資源比需要的多)。我們遇到的更大問題是報告。只有當你想成爲「真正的MVVM」時才需要DI,我不需要那麼多的解耦。 – zapico
非常感謝與我分享:) –