2009-08-04 86 views
7

我很喜欢ASP.NET MVC在很多层面上正在做的事情。什么是ASP.NET MVC不适合?

我即将参与重建一个流量非常高的网站,我不是哪个框架最好(如果有的话)。

该网站将需要以下内容:

  • 为了支持Javascript重,高度交互性的网页
  • 但在同一时间,提供搜索引擎底层语义HTML
  • 支持多国语言
  • 可换肤
  • 为合作伙伴公开一个REST风格的Web服务API

据我所知,没有理由不使用ASP.NET MVC。

  • 我可以使用jQuery在顶部显示语义HTML和图层Javascript。
  • 多种语言可以照顾使用资源文件(与目前相同)。
  • 皮肤可以用CSS来完成(它不会涉及标记的更改)。
  • 我可以集中业务逻辑,以便控制器和WCF Web服务使用相同的代码。

但是使用MVC有没有潜在的缺点,我没有考虑过?

我不想成为挑选技术的人,因为它很酷,但后来发现它不适合这项工作。

回答

11

当你所做的一切都是在制作一个需要服务器端代码的网站时(但对于ASP.NET也是这样),ASP.NET MVC并不好。

在你的情况,我认为MVC将是一个伟大的路要走。 MVC已经在高流量的网站(例如这个网站)上证明了自己。但是你必须记住,MVC是新的和变化的。图书馆可能不存在执行特定的任务,这意味着您必须自己编写该代码。

祝你好运!

+0

加一个这个! :); – 2013-10-22 07:54:20

6

根据你对项目的评价,你很高兴与MVC合作。

就我而言,ASP.NET MVC实际上只适用于WebForms中有大量代码的情况(意味着您有很多ASP.NET用户控件,自定义控件等)。如果你打算让那些不知道这是什么的人工作,那也不好。除此之外,这是一项相当不错的技术。

0

我不喜欢ASP.NET MVC的原因如下:

1. 丑陋路由API,有http://ayende.com/Blog/archive/2008/11/05/a-case-study-of-bad-api-design-asp.net-mvc-routing.aspx 是什么是错的描述。 顺便说一句,友好的URL可以轻松无MVC http://demo.liveui.net/bugtracker/Tasks/7

2. 可怜的对象模型来实现。证明好的软件应该包含可重用的组件。没有什么可以在基于ASP.NET MVC的网站中重用。例如,如果您实施了智能下拉列表,则很难再次使用它(即使在同一网站上)。

3. 缺乏控制。某些功能(如TreeView或Menu)已经作为控件实现,使用mvc重新实现它们将浪费时间。

如果我是你,我会尝试找到一些CMS并根据WebSite的需要进行自定义。

回复: 是的。我知道ASP.NET控制的缺点,但问题是关于ASP.NET MVC。可以写一本关于ASP.NET的好东西和坏东西的书,但我认为在这里讨论它不合适。

+2

如果它是像这个问题一样的社区wiki,我会低估它,它的答案应该是。你没有真正解决他的问题。控件往往有不好的标记。您可以轻松地创建可重用组件(尝试使用Spark而不是Webforms视图引擎)。您可能在路由API上有一点意思。它可能很丑,但它确实工作得很好。 – 2009-08-04 03:55:22

3

我的两分钱:

ASP.NET MVC是一个很好的选择,但是这牵涉到一点的学习曲线,所以一定要确保你的项目计划/时间表有这个处理。您的团队中可能有不熟悉ASP.NET MVC的开发人员,这可能会导致延迟(很多开发人员仍在使用ASP.NET 1.1!)。

@Alex:缺乏控制。某些功能(如TreeView或Menu)已经作为控件实现,使用mvc重新实现它们将浪费时间。

IMO在ASP.NET MVC中使用控件的想法没有多大意义。你可以很容易地使用jQuery创建一个treeview控件。经典的ASP.NET服务器控件包含很多行李(视图状态等),因此ASP.NET MVC没有使用任何这些控件(尽管您可以使用助手)。

最后,ASP.NET MVC是替代,而不是Web窗体的替代品。我不会使用ASP.NET MVC,因为它仍在不断发展,我的团队对此并不是很满意,但我认为越来越多的程序员会慢慢转向这个(更好的)选项。

0

没有使用asp.net MVC,有更好的方法来实现MVC。我之前做过,甚至在asp.net MVC上线之前。 MVC是一种模式,而不是技术,我不明白为什么有些人称之为技术。您可以通过从webforms中移除代码隐藏并创建您自己的控制器和路由器来分离所有关注点,并且您仍然可以使用大多数asp.net开发人员所使用的webform控件等。 asp.net mvc适合那些没有时间在webforms环境中正确创建MVC应用程序的人以及那些没有时间去构建更好解决方案的人。尽管如此,asp.net mvc还不错,但还有更好的方法,最后,MVC不是一项技术。