過MVP

2009-07-30 24 views

回答

0

有時候人們會掛在首字母和TLA之上。

如果Phil Haack在他的文章中說的是真的,我以爲我在ASP.NET MVC中使用MVC,但是我真正使用的是MVP(或MVC的調整形式)。

在MVC中,它總是控制器的 負責處理鼠標和鍵盤 事件。使用MVP,GUI 組件本身最初會處理 用戶的輸入,但委託給 演示者的該輸入的解釋。

但這並不是ASP.NET MVC的真正目的。

如果我處理鼠標和鍵盤事件,我喜歡在瀏覽器中使用jQuery來完成它。該將用戶交互與控制器分開,並提供UI層與「業務」層之間更好的解耦。

如果我需要使用AJAX調用或JSON調用來更新我的頁面的一部分,無論如何我仍然需要這樣做,無論我稱之爲MVC還是MVP。

ASP.NET的WebForms,例如, 試圖通過使用 的ViewState的模擬富客戶端 的發展模式。這就是爲什麼許多嘗試 將模式應用於ASP.NET的重點在於 MVP模式,因爲MVP 模式更適合具有GUI 客戶端應用程序和GUI 組件。

然而,許多網絡平臺接受 網絡的無狀態特性和 放棄試圖模擬 狀態,充滿了濃郁的客戶端開發 環境。在這樣的系統中,調整MVC模式更適用於 。

很明顯,Phil將MVC視爲一種更無國籍,更瘦客戶端的舉措,而MVP將更多責任放在UI層上,以提供豐富的用戶體驗。

這是否是件好事是主觀的。如果ASP.NET是MVP並且ASP.NET MVC是MVC,那麼我會很樂意接受MVC的首字母來放棄像viewstate和obtuse邏輯之類的東西。

+0

如果您想要決定的全部原因是什麼,那麼您希望將某個業務層用於Web版本和胖客戶端版本;-) aaak – FastAl 2010-05-17 13:14:38