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

时间:2010-09-12 14:47:01

标签: design-patterns

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

感谢。

2 个答案:

答案 0 :(得分:1)

我认为它与postback + viewstate + events模型有很大关系。

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

上述内容可能更多地是一种宁静的论据,这促使人们更多地依赖协议的做事方式。使用帖子来实现上述目的,实际上不是HTTP协议的意图。只需采用asp.net网格的原始内置分页,因为它基于回发搜索引擎忽略了第1页以外的任何内容。此外,您再也无法通过网址访问所述信息页面了。

imho在asp.net MVC的上下文中的MVC模式更多地是关于简单的请求/响应操作。您可以根据需要使其变得复杂,但它可以促进更简单的操作方式。它不是基于与基于在经典中分散在页面/视图上的几个不同信息的状态一起工作;但如果这就是你所需要的,你仍然可以实现它,但在这样做的时候你必须更加明确。

答案 1 :(得分:0)

Steven Sanderson在“Pro ASP.NET MVC 2 Framework”上找到答案(第5页)

  

“......实际上,开发人员鼓励在这些相同的代码隐藏类中混合表示代码(例如,操纵服务器端控制树)和他们的应用程序逻辑(例如,操纵数据库数据)。
  没有更好地分离关注点,最终结果往往是脆弱和难以理解的。“