这两个平台 / 生态系统哪个更适合编写 Web 应用程序 / 网站?
我对语言特性不感兴趣,而是对可用工具感兴趣,例如:Monorail、MVC.NET、NHibernate 等。这些工具通常用于构建现代化的数据驱动、启用 AJAX 的网站。
假设选择平台由您决定。操作系统并不重要。
这两个平台 / 生态系统哪个更适合编写 Web 应用程序 / 网站?
我对语言特性不感兴趣,而是对可用工具感兴趣,例如:Monorail、MVC.NET、NHibernate 等。这些工具通常用于构建现代化的数据驱动、启用 AJAX 的网站。
假设选择平台由您决定。操作系统并不重要。
都不是。这完全取决于你的个人偏好和你感到舒适的工具。两者都能完成任务。
编辑
针对你在编辑后提出的工具问题,你可以直接比较这些工具:
+--------------------+------------+-----------+
| Tool \ Environment | .NET | Java |
+--------------------+------------+-----------+
| Web framework | .NET MVC | Struts |
| ORM Mapper | NHibernate | Hibernate |
| Unit testing | NUnit | JUnit |
+--------------------+------------+-----------+
事实上,许多工具(例如NHibernate和NUnit)最初来自Java世界,然后被移植并在.NET领域中使用。
这要看你最擅长哪一种技术?就选那个。
我两者都使用过,现在很难推荐哪个更好(当然,前提是不考虑平台、许可成本和现有团队技能等因素)。
有一件事我想说的是,Java生态系统比.Net生态系统更大更多样化(尽管差距正在迅速缩小)。这和许多.Net用户倾向于支持直接来自Microsoft的产品和框架似乎导致了更多的".Net世界"标准化。
我曾经加入过Java项目,花了我2-3周才开始变得有生产力。在其中一个案例中,构建系统(Maven)、IDE(NetBeans)、Web框架(Tapestry)、O\R层(某个我不记得并且从未使用过的东西)对我来说都是新的。从我所看到的情况来看,在.Net店里你很少会看到这种情况。
Java世界中的所有选项可能会令人非常困惑,这可能会使新来的团队成员难以适应。话虽如此,一旦做出(明智!!)决策并建立标准,Java开发与.Net一样具有高效性。
这取决于你使用的托管平台。我个人更喜欢.NET,但如果我使用其他环境,我会使用Java(如果没有其他选择,例如PHP/Ruby)。
我喜欢Java。我热爱Eclipse。
然而,你总会发现.NET托管比Java服务器便宜得多。
对于我来说,Visual Studio 是一个很容易的选择 :)
我建议您看一下Groovy和基于它构建的Web框架:Grails。它易于使用,简单而且如果需要,可以使用完整的Java堆栈。
我不了解.NET,但我不会选择一个仅限Java的解决方案,即任何存在的100多个Web框架...太多样板代码,太多抽象。如果遇到麻烦并且您真的必须知道底层发生了什么,那么您可能会陷入麻烦...
我认为这两个系统都有各自的优势。
你可以轻松地打包Java Web应用程序并在众多应用服务器(Tomcat、Glassfish等)上部署。Java拥有一个非常丰富、成熟的社区,提供了许多出色的开发框架和功能丰富的IDE(NetBeans和Eclipse)。该技术是可移植的,因此您永远不会被锁定选择操作系统。最好的部分是,大部分都是免费的。Java中的大多数框架也设计为“友好相处”,因此您实际上可以随意插入和播放不同的功能(ORM、AOP、IOP容器等)。这在.NET方面并不特别正确,没有太多免费的库/框架可与该技术一起使用(绝对没有Java框架具有的采用水平)。
就个人喜好而言,我更喜欢.NET,因为我认为开发环境稍微容易一些,文档也比较一致(我感觉更有生产力)。这并不是说Java没有好的文档,只是它往往取决于项目的命中率。在我看来,Visual Studio是最好的开发环境;它减轻了学习一个相当复杂的网站框架的难度。不幸的是,它需要花费一些钱,而且技术方面比较狭窄,只能采用微软认为你应该遵循的最佳模式和实践(尽管它们借鉴了Java,所以最终通常会得到解决)。
我相信还有更多人对此有话要说。我希望您在编写一些商业应用程序的情况下提出这个问题。如果这是为您自己的个人网站,请考虑使用更便宜(托管)和轻量级的技术,如Ruby或PHP。