ASP.NET WebC的优点和缺点与ASP.NET MVC有关

Lui*_*cia 3 asp.net-mvc asp.net-mvc-3 asp.net-mvc-2

可能重复:
使用ASP.Net MVC与Web表单的最大优势

我正在读这份文件

http://msdn.microsoft.com/en-us/library/dd381412(VS.98).aspx
Run Code Online (Sandbox Code Playgroud)

具体的优缺点:

基于MVC的Web应用程序的优点

ASP.NET MVC框架具有以下优点:

通过将应用程序划分为模型,视图和控制器,可以更轻松地管理复杂性.

它不使用视图状态或基于服务器的表单.这使得MVC框架非常适合希望完全控制应用程序行为的开发人员.

它使用Front Controller模式,通过单个控制器处理Web应用程序请求.这使您可以设计支持丰富路由基础结构的应用程序.有关更多信息,请参阅Front Controller.

它为测试驱动开发(TDD)提供了更好的支持.

它适用于大型开发人员团队支持的Web应用程序以及需要对应用程序行为进行高度控制的Web设计人员.

基于Web窗体的Web应用程序的优点

基于Web窗体的框架具有以下优势:

它支持通过HTTP保留状态的事件模型,这有利于业务线Web应用程序开发.基于Web窗体的应用程序提供了数百个服务器控件支持的许多事件.

它使用页面控制器模式,为各个页面添加功能.有关更多信息,请参阅页面控制器.

它在基于服务器的表单上使用视图状态,这可以使管理状态信息更容易.

它适用于希望利用大量可用于快速应用程序开发的组件的Web开发人员和设计人员团队.

通常,它对于应用程序开发来说并不复杂,因为组件(Page类,控件等)紧密集成,通常需要的代码少于MVC模型.


因为我是MVC的新手而不是webforms,我对这个优点和缺点有以下问题:?

  1. MVC没有观点?那么如何在当前页面中保存数据呢?这似乎是一个非常大的缺点.

  2. Webform说,提供一个包含大量控件的广泛事件模型,Doesnt MVC支持控件和事件作为普通的webform?

让我们假设我是两者的专家?我为什么要选择其中一个?到目前为止,我认为MVC唯一的好处就是可测试性,因为webforms中的快速应用程序开发在很多方面都赢得了MVC.(只是我的意见)

现在谈论RazonEngine,它似乎回到旧的ASP,你不能使用服务器端控件?这对我来说有什么好处?

Dar*_*rov 10

1)MVC没有视图状态?那么如何在当前页面中保存数据呢?这似乎是一个非常大的缺点.

为什么要保存页面中的内容?这就是数据库应该做的事情.保存数据.在页面中,您只需使用隐藏字段,即可从最初存储的位置重新获取数据.对于可以更改的数据,您有表单输入字段,因此它将存在.

2)Webform说,提供一个包含大量控件的广泛事件模型,不是MVC支持控件和事件作为普通的webform吗?

不,MVC不支持控件和事件.它支持模型,控制器和视图.

让我们假设我是两者的专家?我为什么要选择其中一个?到目前为止,我认为MVC唯一的好处就是可测试性,因为webforms中的快速应用程序开发在很多方面都赢得了MVC.

这是一个主观问题,没有客观答案.我能给你的答案是:它取决于具体情况.我同意RAD在WebForms中获胜,但你必须记住的是,这不是应用程序的开发成本最高的.这是它的支持和维护.因此,如果您的应用程序是快速编写的,那么您确实可以快速发送它,但是如果您没有正确地构建它,那么快速的应用程序开发会慢慢变成一场噩梦,直到​​有一天您只需要重写它因为你花了这么多钱继续支持它.

现在谈论RazonEngine,它似乎回到旧的ASP,你不能使用服务器端控件?这对我来说有什么好处?

您可以完全控制标记,您的页面不再受到无用ViewStates的污染,最后您的标记会被验证.如果要在ASP.NET MVC中重用某些视图部分,可以使用部分视图.

这是我可以给你的建议.由于您已经是WebForms的专家,因此在学习ASP.NET MVC时,这将是一个很大的优势.所以学习它并通过学习它你可能会开始自己看到不同的优点,并能够回答自己的问题,哪一个更适合你.

  • @Luis我在每个页面中都关闭了ViewStates和PostBacks.:) (2认同)

Ste*_*gan 5

ASP.NET MVC应用程序可以让您重新控制应用程序的工作方式,并且它符合HTTP/HTML的"本机"模型.

WebForms是Web应用程序编程的抽象; 设想简化Visual Basic程序员的过渡,这些程序员在.NET启动时是.NET的主要目标.麻烦的是,这是一个"漏洞的抽象".它使用封面下的"技巧"使其看起来像对于习惯于VB的基于事件的模型(如视图状态和回发)的操作简单.这个(以及所有那些"漏洞抽象")的问题在于,虽然基本的东西很容易,但是一旦你尝试做一些不适合抽象的东西,它就会变得非常复杂.

如果您的应用程序是微不足道的,并且WebForms抽象始终适合您,请随时坚持使用它.微软已经考虑周到,继续支持它.

但是如果你的应用程序完全复杂或复杂(现在越来越多),我建议以开放的心态看待MVC.

作为测试,从非Microsoft背景中获取Web开发人员,让他们在webforms和MVC上松散,看看他们的工作效率更高.

  • 没有评论的downvote?你太无耻了... (2认同)