使用asp.net MVC的缺点是什么?

7

在使用asp.net MVC时,您是否遇到任何缺点?

编辑
如果有的话,您能列举一些这些缺点吗?

9个回答

6

使用WebForms,您可以拥有大量预构建的UI控件,例如网格、图形工具等等。这里有整个RAD控件行业。

不幸的是,在ASP.NET MVC中,很多这些东西还没有完全到位。


4
对你来说,这是一个缺点。我却认为这是一个优点,因为所有那些预先构建的东西最终都会带来比它们所值得的更多的麻烦。 - John Sheehan
1
对此表示赞同。大多数这些控件所包含的头痛与其功能一样多。 - Ben Scheirman
1
我也认为这是一个好处 :) - David P
网格是主要问题。图表已经存在,不要把它放在你的列表上。 - Andrei Rînea

4
最大的缺点是,您可能会被迫使用JavaScript/AJAX来实现更复杂的表单。例如,如果您有很多小部件(比如数据网格、附加侧边栏等)不是当前视图的直接部分,则管理状态非常麻烦。
在ASP.NET WebForms中,ViewState可以自动处理这一点,以便您可以拥有多个独立控件进行提交和触发事件,而不会弄乱页面上的其他任何东西。
在ASP.NET MVC中,您需要自己处理所有这些问题,最简单的方法就是将事情移到浏览器端。
从积极方面来看,调试完所有问题后,它能够带来整体更好的用户体验。

3

3
这取决于项目类型。一些人喜欢MVC,因为它可以通过使用智能URL猜测实现干净的URL和允许用户智能"hack" URL来获得SEO好处。但是,MVC的缺点是你将失去Web控件,因此无法使用ASP.NET AJAX和UI库中的拖放网格。
总的来说,公开可用的网站可能更适合MVC,因为它有SEO好处,而内部或商业应用程序可能更适合在其他领域使用时间。然而,如果你只想要干净的URL,你可以通过URL重写实现相同的功能,而不需要MVC。

http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx http://msdn.microsoft.com/en-us/library/ms972974.aspx

就使用MVC而言,它的 '缺点' 可能更多是个人问题,具体表现在:

  • 您是否愿意接受学习曲线,学习MVC?
  • 您是否依赖控件?您是否可以通过传统的HTML、CSS编写相同的代码?
  • 如果您的项目有更好的编码时间利用方式,那么使用MVC是否会浪费时间?
  • 如果您只关注SEO,使用URL重写是否更适合您的需求?

我认为缺点实际上与开发人员和项目相关。


4
失去WebControls是一个显著的优势 - Jamiec
我在想,是否拥有一个已经具备自动排序、分页和其他所有功能的网格控件是一件坏事。 - TheAgent
你将MVC总结为干净的URL和SEO!在ASP.NET Web Forms中,有许多方法可以使网站对SEO友好! - Mohsen Tavoosi محسن طاوسی

2

学习曲线和缺乏预构建控件会影响WebForms开发人员的生产力。

然而,我可以给你一个非常好的优势:如果你还没有这样做,你将最终学习到HTML/CSS和HTTP的基础知识,这是进行任何严肃的Web开发所必需的,而不仅仅是在编辑器中拖放东西。


1

像控制状态(输入字段中的文本)这样的东西需要手动处理,与WebForms相比..假设您使用它“正确”。

总的来说,您必须自己做更多的实际演示工作,我认为这是一件好事,但在表单密集型应用程序(例如管理)中,它可能会减慢您的速度。

(我的意思是,当然,您可以在MVC应用程序中运行大多数正常的asp.net内容,但如果您经常这样做,那么您应该只运行WebForms。)


1

ASP.NET需要IIS7路由(即Windows Server 2008或Vista)。您可以在Server 2003下运行它在IIS6上,但您将失去无扩展名路由的酷炫效果。


2
不准确。您可以通过通配符映射在IIS6上获得无扩展名路由(请参见http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx)。 - John Sheehan

1
  • 使用此模式开发应用程序的复杂性很高。
  • 不适合小型应用程序,这对应用程序的性能和设计产生不利影响。
  • 就Servlet和JSP而言,两者通常包含业务逻辑和表示层。
  • UI作者、业务逻辑作者和控制器作者之间的隔离开发过程可能导致各自模块的开发延迟。
  • 即使它们是解耦的,开发人员也不能完全忽略模型的视图。如果模型经常更改,则视图可能会充斥着更新请求。像图形显示这样的视图可能需要一些时间才能呈现。因此,视图可能会落后于更新请求。 REF: http://www.careerride.com/MVC-disadvantages.aspx

0
  1. ASP.NET MVC网站需要的开发时间平均比传统的ASP.NET网站多10倍。
  2. 它不使用强大的ASP.NET控件。

  3. 代码难以阅读。如果你被要求在别人开发的网站上添加一些增强功能,你会感到很疯狂。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接