ASP.NET MVC和Spring MVC的区别

53

有人可以比较一下ASP.NET MVCSpring MVC吗?

哪种技术在性能、生产力、维护、功能等方面更好呢?

谢谢, sirmak


3
我本想对它们进行最长公共子序列的运算,因为它们被放在引号中。不过后来发现我太懒了。 - JoshJordan
30
如果你了解Java,那么选择Java选项会更好。如果你了解.NET,那么选择.NET选项会更好。其他任何选择都是完全主观的意见。 - Rex M
6
我同意 Rex 的观点。但是,如果你对两个平台都相当了解,最终还是要看功能和目的来进行选择。 - Samantha Branham
8
如果有人愿意花时间写答案,我不认为这个问题需要关闭。它不是主观的或争论性的,只是一个比较。请放心! - Andy White
实际上,框架之间的比较并不重要,最重要的是我们可以用这个框架做什么。我也同意@RexM的答案,因为如果你懂.Net,你会选择ASP.Net MVC4;如果你懂Java,你会选择SpringMVC+Hibernate;如果你懂PHP,你会选择Zend Framework 1.x/2.x + ORM(Doctrine)+ ExtJS或jQuery/Bootstrap。取决于你知道什么。MVC在任何时候都是相同的,只是语言和其他特性可能会有所改变。 - Ashwin Parmar
显示剩余2条评论
5个回答

35
很难说哪个更“好”......首先 - 有整个基础的“Java vs .NET”争论 - 忽略这一点你无法真正比较两个框架。
Java中完整的Web开发历史,包括“重量级”J2EE应用程序和“轻量级”Spring应用程序。在Java中有大量的Web框架(MVC和非MVC,开源与Sun开发),而Spring MVC有很多可以基于的东西。
ASP.NET MVC方面 - 整个ASP-> ASP.NET-> ASP.NET MVC的历史。以及缺乏广泛使用的非Microsoft .NET框架 - Web或其他。
现在是个人意见部分......
我有点和@Luke101相反,我主要使用Spring MVC,几乎没有用过ASP.NET MVC。
我必须说,我更喜欢MVC风格的Web开发而不是基于组件的Web开发。
我曾经使用过类似于ASP.NET WebForms的JSF。(我必须说,我比JSF更喜欢ASP.NET - 尽管这可能更多与我使用每个框架的成熟度和可用工具有关 - 我使用的是没有JSF特定支持的JSF 1.0 / 1.1和Eclipse,而是ASP.NET 2.0 / .NET 3.5和Visual Studio 2008。)
就MVC框架而言,我更喜欢Spring MVC - 但这完全是因为我更熟悉Java - 语言和开发方面,而不是ASP.NET MVC / C#/ .NET。此外,Spring MVC需要Spring,我喜欢使用Spring的整个IOC模式并使用已经集成到Spring中的事物。
我还没有尝试使用Spring.NET和ASP.NET MVC - 也许这与Spring MVC / Spring / Java类似。

在Spring.NET代码库中,有一些将Spring.NET集成到ASP.NET MVC 版本3版本4版本5的示例。


30

我尝试过Spring和ASP.NET MVC框架。我发现ASP.NET MVC更容易使用,主要是因为ASP.NET框架需要较少的配置代码(包括xml和java/c#)才能使事情正常工作。在Spring中,您可以通过编写许多xml/java配置代码并可能使用一些第三方工具获得ASP.NET MVC默认拥有的所有功能。

Spring的强大优势之一是集成的IoC、ORM(主要针对我来说是Hibernate)和事务管理支持。


21
自Spring Boot问世以来,这个答案大部分已经过时。 - Apokralipsa
1
@Apokralipsa 是的,Spring Boot 看起来非常令人印象深刻 - 甚至不需要 Servlet 容器) - x__dos
@Apokralipsa 我可以使用Spring Boot编写MVC风格的应用程序,就像ASP.NET MVC一样吗? - Honinbo Shusaku
@kilonet“甚至无需servlet容器” - 这是什么意思?我不需要像IIS这样的Web服务器吗?它有内置的Web服务器吗? - Honinbo Shusaku
3
好的,你可以前往http://start.spring.io/,在依赖项中选择“Web”。它将生成一个简单的项目,其中包括框架的MVC部分和嵌入式Tomcat服务器。注意不要改变原文的意思。 - Apokralipsa

7
这个问题已经存在了几年,但我认为你们应该停止以谁更熟悉asp或Java来思考。在今天的世界中这并不重要,我可以雇佣一些像我们一样的代码猴子,或者例如我自己可以用两种语言编写代码,而任何人都可以在几天内学会其中任何一种。我认为在大规模的情况下,更重要的是什么是经济实惠的,在Windows/asp平台上托管还是Linux/Java平台上托管。当然技术的易用性也很重要,但我们不是在比较C编程和Java。我想每个人都同意它们都是竞争技术。你更愿意投资什么?类似这样的问题。例如,我认为在Linux平台上托管会更便宜。

5

ASP.NET MVC还很年轻,但非常强大和快速。我已经将所有网站应用程序从WebForms重写为ASP.NET MVC。我发现CPU利用率和使用的RAM数量有明显的差异。我认为如果我在MVC中从头开始构建项目,需要比WebForms花费更多的时间。

我真的无法评论Spring,因为我从未使用过它。但是,这里有一个关于Java和Microsoft的有趣讨论:

http://philip.greenspun.com/bboard/q-and-a-fetch-msg?msg_id=000tcP


4

我找到了一份PDF文件,标题为Spring和ASP.NET框架的比较,但我不同意其中关于ASP.NET MVC的一些评论,如:

  • 只提供一种视图格式(.aspx页面)
  • URL和类操作名称之间的紧密耦合

它似乎是一个快速完成的大学课程幻灯片,而不是由每个框架开发者编写的东西。


1
哇,一份全面的比较,谢谢。 - sirmak
2
链接已失效。 - Bogdan_Ch
1
看起来同样的文件现在可以在这里找到:http://www.philadelphia.edu.jo/courses/ADO.NET/Presentation_Preeti_Malik.pdf - Justin
1
哈哈,链接还是不起作用。 - om471987
1
以下是一个可用的链接(截至今天):http://www.psl.cs.columbia.edu/classes/cs6125-s11/presentations/2009/Presentation_Preeti_Malik.pdf - Astaar
该链接错误地表示你只能在ASP.NET中有一个控制器(而在ASP.NET MVC中并非如此,你可以创建任意数量的控制器)。大多数配置是通过源代码维护的(请问app.config?web.config??)。 - Fuzzy Analysis

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