过MVP

2009-07-30 78 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