我应该在网站开发中使用Java还是.NET?

5

这两个平台 / 生态系统哪个更适合编写 Web 应用程序 / 网站?

我对语言特性不感兴趣,而是对可用工具感兴趣,例如:Monorail、MVC.NET、NHibernate 等。这些工具通常用于构建现代化的数据驱动、启用 AJAX 的网站。

假设选择平台由您决定。操作系统并不重要。


在我的情况下,问题是我更喜欢哪个平台:Windows/IIS还是*NIX/Tomcat。 - ojrac
1
投票重新开放;尽管存在主观性,但似乎是一个合理的问题。虽然应该是社区维护的内容。 - Paul Sonier
9
大家好,我的问题是:假设两种生态系统的知识水平相同,哪一种更容易构建网页?这不是一个虚构的问题。我的公司决定选择其中一种而不是另一种,因为“它更好”。我想听听社区的反馈,但我真的不明白所有的负面情绪来源。 - ripper234
1
然后编辑问题,不要关闭它。 - ripper234
1
然后请评论并说您需要更多信息...(我认为我的问题是通用的,与构建标准现代网站的特定要求无关)。 - ripper234
显示剩余8条评论
11个回答

17

都不是。这完全取决于你的个人偏好和你感到舒适的工具。两者都能完成任务。

编辑

针对你在编辑后提出的工具问题,你可以直接比较这些工具:

+--------------------+------------+-----------+
| Tool \ Environment | .NET       | Java      |
+--------------------+------------+-----------+
| Web framework      | .NET MVC   | Struts    |
| ORM Mapper         | NHibernate | Hibernate |
| Unit testing       | NUnit      | JUnit     |
+--------------------+------------+-----------+

事实上,许多工具(例如NHibernate和NUnit)最初来自Java世界,然后被移植并在.NET领域中使用。


你确定吗?工具/平台/生态系统/第三方库同样舒适且表达能力强吗? - ripper234
.NET MVC只是一种可能性,我们现在实际上正在使用Monorail,我想。作为一个非Web开发人员,我无法就框架提出具体问题,但我真正想知道的是{.Net MVC,Monorail,...}与{Java中的任何工具相比如Struts?}。 - ripper234
好的,你也可以使用在.NET和Java上都可用的Spring。这样,你只需要学习一个框架。 - Richard Clayton
请注意,三年后的世界更加多元化。Spring、JBoss和Java EE都拥有自己的Web框架。 - Thorbjørn Ravn Andersen

13

这要看你最擅长哪一种技术?就选那个。


9
你需要问你的公司最重要的问题是:我们将来只使用Windows作为部署平台吗?
如果不是,那么.NET就不在考虑范围内 :)
如果是,那么我们可以继续下去——我相信在工具方面,.NET比Java更有优势。

显然,游戏已经改变:http://blogs.msdn.com/b/somasegar/archive/2014/11/12/opening-up-visual-studio-and-net-to-every-developer-any-application-net-server-core-open-source-and-cross-platform-visual-studio-community-2013-and-preview-of-visual-studio-2015-and-net-2015.aspx - Thorbjørn Ravn Andersen

3

我两者都使用过,现在很难推荐哪个更好(当然,前提是不考虑平台、许可成本和现有团队技能等因素)。

有一件事我想说的是,Java生态系统比.Net生态系统更大更多样化(尽管差距正在迅速缩小)。这和许多.Net用户倾向于支持直接来自Microsoft的产品和框架似乎导致了更多的".Net世界"标准化。

我曾经加入过Java项目,花了我2-3周才开始变得有生产力。在其中一个案例中,构建系统(Maven)、IDE(NetBeans)、Web框架(Tapestry)、O\R层(某个我不记得并且从未使用过的东西)对我来说都是新的。从我所看到的情况来看,在.Net店里你很少会看到这种情况。

Java世界中的所有选项可能会令人非常困惑,这可能会使新来的团队成员难以适应。话虽如此,一旦做出(明智!!)决策并建立标准,Java开发与.Net一样具有高效性。


1
我完全同意马克的观点。Java框架的一个缺点是你似乎总是在学习新的框架(并不一定是因为它更好)。 - Richard Clayton

2

这取决于你使用的托管平台。我个人更喜欢.NET,但如果我使用其他环境,我会使用Java(如果没有其他选择,例如PHP/Ruby)。


我也提到了PHP/Ruby的事情。如果他不是在开发某种企业应用程序,并且没有微软的偏好,为什么不使用更加面向Web的东西呢? - Richard Clayton

2

我喜欢Java。我热爱Eclipse。

然而,你总会发现.NET托管比Java服务器便宜得多。


1
如果你使用的是Windows,并且决定使用这两个框架之一,那么没有理由不使用.Net。

0

对于我来说,Visual Studio 是一个很容易的选择 :)


1
不要忽略NetBeans和Eclipse。它们都是非常有能力的IDE。当然,Visual Studio可能更好,但它没有其他两个IDE具有的功能广度(由社区创建的插件)。 - Richard Clayton

0

我建议您看一下Groovy和基于它构建的Web框架:Grails。它易于使用,简单而且如果需要,可以使用完整的Java堆栈。

我不了解.NET,但我不会选择一个仅限Java的解决方案,即任何存在的100多个Web框架...太多样板代码,太多抽象。如果遇到麻烦并且您真的必须知道底层发生了什么,那么您可能会陷入麻烦...


但如果他真的迈出这一步,他可能会因此受益。特别是如果他研究一下像Spring这样更有文档记录的框架。 - Richard Clayton

0

我认为这两个系统都有各自的优势。

你可以轻松地打包Java Web应用程序并在众多应用服务器(Tomcat、Glassfish等)上部署。Java拥有一个非常丰富、成熟的社区,提供了许多出色的开发框架和功能丰富的IDE(NetBeans和Eclipse)。该技术是可移植的,因此您永远不会被锁定选择操作系统。最好的部分是,大部分都是免费的。Java中的大多数框架也设计为“友好相处”,因此您实际上可以随意插入和播放不同的功能(ORM、AOP、IOP容器等)。这在.NET方面并不特别正确,没有太多免费的库/框架可与该技术一起使用(绝对没有Java框架具有的采用水平)。

就个人喜好而言,我更喜欢.NET,因为我认为开发环境稍微容易一些,文档也比较一致(我感觉更有生产力)。这并不是说Java没有好的文档,只是它往往取决于项目的命中率。在我看来,Visual Studio是最好的开发环境;它减轻了学习一个相当复杂的网站框架的难度。不幸的是,它需要花费一些钱,而且技术方面比较狭窄,只能采用微软认为你应该遵循的最佳模式和实践(尽管它们借鉴了Java,所以最终通常会得到解决)。

我相信还有更多人对此有话要说。我希望您在编写一些商业应用程序的情况下提出这个问题。如果这是为您自己的个人网站,请考虑使用更便宜(托管)和轻量级的技术,如Ruby或PHP。


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