这取决于您的具体情况。我不敢保证有确切的答案,因为实际上是没有的,但以下是我的一些想法和经验。(提前说明,我主要是.NET开发人员,但偶尔也会在Java上工作)我先总结一下——如果选择.NET,你将得到一个紧密集成的堆栈,非常易于使用,并且可以高效地解决80%的问题,但你需要为此付出代价,而解决一些边缘情况可能会成为一个问题。选择Java可以给你灵活性,但你需要为此付出时间和复杂性,但它基本上是免费的。平台 首先,Java在更多的平台上受到本地支持,但C#并非纯粹限于Windows。Mono项目使C#可以在Linux和Mac上运行。如果你正在进行手机开发,你可以在iPhone上使用它(MonoTouch),并很快在Android上使用它(MonoDroid)。编程语言 对我来说,毫无疑问,C#是更现代、优雅的语言,但这并不意味着Java不好。它仍然比试图在C++中做事情要好得多...工具 Visual Studio有很多很酷的东西,Eclipse也有很多有用的插件。我发现在Visual Studio中完成任务要快得多,但Eclipse有很多有用的插件。VS是收费的,而且相当昂贵,虽然有免费的Express版本和更便宜的版本,也有通过MS合作伙伴计划以低价获得的方法。Eclipse是免费的。应用服务器 J2EE应用程序通常是高度可配置的工具和平台堆栈,但可能会非常复杂。它们作为应用程序在应用程序中运行。.NET应用程序直接在Windows IIS/WAS/(Server AppFabric)中运行,我发现这使得它们的设置变得更加容易,但再次强调,这是速度、简单性和成本与自由和复杂性之间的取舍。
非常广泛的问题,很难涵盖所有。但是这里有一些论文(或多或少是最近的,或多或少有偏见)可能会让您感兴趣: 比较Microsoft .NET和IBM WebSphere/J2EE(这更像是由Microsoft“赞助”的.NET与IBM WebSphere比较) IBM回应“比较Microsoft .NET和IBM WebSphere/J2EE” 关于在J2EE和.NET中教授Web服务的相对优势 J2EE vs. Microsoft .NET - 历史和比较 J2EE vs. Microsoft.NET - 基于XML的Web服务构建的比较 也许您应该添加一些有关您情境的详细信息以获得更具体的答案。