什么是ASP.NET MVC不适合?

时间:2009-08-04 03:05:30

标签: asp.net-mvc

我非常喜欢ASP.NET MVC在很多层面上所做的工作。

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

该网站需要以下内容:

  • 支持Javascript密集,高度互动的网页
  • 但与此同时,为搜索引擎提供基础语义HTML
  • 支持多种语言
  • 可以换肤了
  • 为合作伙伴公开RESTful网络服务API

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

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

但使用MVC是否存在我未考虑过的潜在缺点?

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

5 个答案:

答案 0 :(得分:11)

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

在你的情况下,我认为MVC将是一个很好的方式。 MVC已在高流量网站(例如此网站)上证明了自己。但是你必须记住MVC是新的并且在变化。可能不存在执行特定任务的库,这意味着您必须自己编写该代码。

祝你重建好运!

答案 1 :(得分:6)

根据你对项目所说的内容,你很高兴与MVC合作。

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

答案 2 :(得分:3)

我的两分钱:

ASP.NET MVC是一个很好的选择,但涉及到一些学习曲线,因此请确保您的项目计划/时间表已经处理完毕。您的团队中可能有开发人员可能不习惯使用ASP.NET MVC,这可能会导致延迟(许多开发人员仍在ASP.NET 1.1中工作!)。

  

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

IMO在ASP.NET MVC中使用控件的想法没有多大意义。您可以轻松地使用jQuery创建树视图控件。经典的ASP.NET服务器控件带来了很多包袱(viewstate等),因此ASP.NET MVC没有使用任何这些控件(尽管你可以使用帮助器)。

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

答案 3 :(得分: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 是什么错误的描述。 顺便说一句,友好的网址可以很容易地实现,没有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中的好东西和坏东西的书,但我不认为在这里讨论它是合适的。

答案 4 :(得分:0)

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