Asp.net mvc ASP.NET MVC不适合做什么?

Asp.net mvc ASP.NET MVC不适合做什么?,asp.net-mvc,Asp.net Mvc,我是ASP.NETMVC在很多层面上的忠实粉丝 我即将参与重建一个流量非常大的网站,我不知道哪种框架最好(如果有的话) 该站点将需要以下内容: 支持Javascript繁重、高度交互的页面 但同时,为搜索引擎提供底层语义HTML 支持多种语言 皮包骨头 为合作伙伴公开RESTful web服务API 据我所知,没有理由不为此使用ASP.NETMVC 我可以使用jQuery在上面显示语义HTML和层Javascript 可以为使用资源文件提供多种语言(与目前相同) 蒙皮可以通过CSS完成(它

我是ASP.NETMVC在很多层面上的忠实粉丝

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

该站点将需要以下内容:

  • 支持Javascript繁重、高度交互的页面
  • 但同时,为搜索引擎提供底层语义HTML
  • 支持多种语言
  • 皮包骨头
  • 为合作伙伴公开RESTful web服务API
据我所知,没有理由不为此使用ASP.NETMVC

  • 我可以使用jQuery在上面显示语义HTML和层Javascript
  • 可以为使用资源文件提供多种语言(与目前相同)
  • 蒙皮可以通过CSS完成(它不涉及对标记的更改)
  • 我可以集中化业务逻辑,以便控制器和WCF web服务使用相同的代码
但是使用MVC是否有我没有考虑过的潜在缺点呢


我不想成为一个选择技术的人,因为它很酷,但后来发现它不太适合这份工作。

ASP.NET MVC并不好,因为你所做的只是制作一个需要服务器端代码的网站(但ASP.NET也是如此)

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


祝你重建好运

考虑到您对项目的评价,您可以选择MVC


就我而言,ASP.NET MVC实际上只适用于WebForms中有大量代码库的情况(意味着有很多ASP.NET用户控件、自定义控件等)。如果你想让那些不知道这是怎么回事的人来做这件事,那也不好。除此之外,这是一项非常好的技术

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

一,。 丑陋的路由API,有吗 是对错误的描述。 顺便说一句,友好的URL可以在没有mvc的情况下轻松实现

二,。 糟糕的对象模型。实践证明,好的软件应该由可重用的组件组成。在基于ASP.NET MVC的网站中没有可重用的内容。例如,如果只实现了一次智能下拉列表,则很难再次使用它(即使在同一网站上)

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

如果我是你,我会尝试找到一些CMS,并根据网站需要进行定制

答复: 对我知道ASP.NET控件的缺点,但问题是关于ASP.NET MVC的。一个人可以写一本关于ASP.NET中什么是好的什么是坏的书,但我认为在这里讨论它是不合适的。

我的两分钱:

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

@亚历克斯:缺乏控制。一些特性(如TreeView或Menu)已经作为控件实现,使用mvc重新实现它们将浪费时间

在我看来,在ASP.NETMVC中使用控件的想法没有多大意义。您可以使用jQuery轻松地创建treeview控件。经典的ASP.NET服务器控件带来了很多麻烦(viewstate等),因此ASP.NET MVC没有使用这些控件中的任何一个(尽管您可以使用帮助器)


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

有更好的方法实现MVC而不使用ASP.NET MVC。我以前做过,甚至在asp.NETMVC上线之前。MVC是一种模式,而不是一种技术,我不明白为什么有些人把它称为技术。您可以通过从webforms中删除隐藏的代码并创建自己的控制器和路由器来分离所有关注点,并且您仍将拥有大多数asp.net开发人员使用的webform控件等的优势。asp.net mvc非常适合那些没有时间在webforms环境中正确创建mvc应用程序的人,也适合那些没有时间设计更好的解决方案的人。总而言之,asp.net mvc很好,但有一种更好的方法,最后,mvc不是一种技术。

如果是社区维基,我会投反对票,就像这个问题,答案应该是。你没有真正解决他的问题。控件往往具有错误的标记。您可以轻松地创建可重用组件(尝试使用Spark而不是Webforms视图引擎)。您可能对路由API有意见。这可能很难看,但它确实工作得很好。我同意他的观点,路由引擎可以改进。关于可重用性,您确实不能使用经典的ASP.NET控件,但是您可以在ASP.NET MVC中更轻松地使用jQuery/javascript组件,同时保持干净的语义标记。我不明白为什么控件应该有不好的标记。甚至类似MVC的语法也可以在任何ASCX控件中使用。关于糟糕的对象模型。事实证明,在创建对象模型后,可以对其进行修改或自定义。例如,使用基于控件的对象模型,我可以修改控件的属性、侦听事件等等。。。然而,使用MVC思想,一旦创建了视图,就很难更改某些内容。顺便说一句,JQuery很不错。但是