design-patterns - 服务器控件如何违反 MVC 设计模式?

标签 design-patterns

我问的原因是 tvanfosson 的(第一次)评论他对另一个 question of mine 的回答他说(关于 ASP.NET MVC):“缺乏服务器端控件是由于固有的关注点分离,这使得 MVC 成为一种良好的开发模式......”。
我当然知道 ASP.NET 服务器控件,并且我想我知道 MVC 设计模式,但我不明白服务器控件如何违反 MVC。

谢谢。

最佳答案

我认为这与回发+ View 状态+事件模型有很大关系。

上述情况隐含地模拟了用户以多步方式与应用程序交互的模型,其中系统存在各种状态。由于每个控件都保持其 viewState,因此每个控件都对这个整体状态做出了固有的贡献,随着页面复杂性的增加,这可能变得难以遵循。我也相信便利会鼓励所说的复杂性。

以上可能更像是对restful的一个论点,它促进了更多地依赖协议(protocol)的做事方式。使用帖子来实现上述目的,确实不是 HTTP 协议(protocol)的意图。只需采用 asp.net 网格的原始内置分页,因为它基于回发,搜索引擎忽略了第 1 页以外的任何内容。此外,您不再能够仅通过 url 访问所述信息页面。

恕我直言,asp.net MVC 上下文中的 MVC 模式更多地是关于简单的请求/响应操作。你可以让它变得尽可能复杂,但它促进了一种更简单的操作方式。它不像经典那样基于分散在页面/ View 上的几个不同信息位来处理状态;但如果这是你需要的,你仍然可以实现它,但这样做时你必须更加明确。

关于design-patterns - 服务器控件如何违反 MVC 设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3695232/

相关文章:

c# - 您使用什么规则来描述 MVP 方法和成员

c# - 将存储库模式与(例如)DevExpress XPO 一起使用是否有意义?

java - Vaadin:一个合适的设计模式

java - 调用类的不同实现

design-patterns - 具有多种功能的命令行软件的设计模式

c#-4.0 - DB表和Class如何设计?

c# - 我怎样才能让一个类(class)单独负责创建和提供对另一个类(class)的访问

java - 在java中扩充工厂模式

events - 具有多个 View 的 MVP : Sending events the right way

wpf - WPF 中的简单 CRUD 应用