Java和.NET技术/框架的类似物


75

我在一家主要由Java和.NET技术人员组成的商店工作。在讨论新的解决方案和体系结构时,在比较两个阵营之间使用的各种技术,框架,API等时,我们经常遇到阻力。似乎每个营地对彼此的了解都不多,我们最终将苹果与橘子进行了比较,而忘记了蒲式耳。

在研究该主题时,我发现了这一点:Java-> .Net粗略等效项

这是一个不错的列表,但还不够详尽,并且缺少关键的.NET 3.0技术和其他一些花絮。要完成该列表:Java中与.NET中以下内容的近似/近似等效(或技术组合)是什么?

  • WCF〜=
  • WPF〜=
  • Silverlight〜=
  • WF〜=
  • 泛型〜=
  • 扩展方法〜=
  • Lambda表达式〜=
  • Linq(不是Linq-to-SQL)〜=
  • TPL〜=
  • F#〜=
  • IronPython〜=
  • 铁红宝石〜=
  • ...我还错过了其他吗?

Java技术(是否有.NET等效项?):

  • 〜= EJB
  • 〜= WebSphere
  • 〜=玻璃鱼
  • 〜= JBoss应用服务器
  • 〜= Tomcat?

请注意,我省略了链接文章中已经介绍的技术我也想听听有关链接文章是否正确的反馈。

注意:这似乎变成了Wiki类型的文章,因此我将其标记为这样。


1
+1:一个很好的问题,问得好...它使您的排名达到5555。我怎么可能
马特·鲍尔

+1:同意,很好的问题,我很喜欢学习答案。
elduff

+1,建议:.NET平台上的EJB,WebSphere,GlassFish或JBoss应用服务器等效?
mjn

1
@mjustin:很棒的补充。我也在考虑Tomcat。这是与.NET相当的有效补充吗?还在使用吗?
保罗·萨西克

1
该死的!演示很重要。我1年前刚加入SO时曾问过同样的问题。但是我的问题已经结束,说这不是一个真正的问题。出于屈辱,我删除了这个问题。
爪子

Answers:


48

.NET-> Java

Java-> .NET

  • EJB = MTS / COM +
  • WebSphere ASGlassFishJBoss AS都是具体的Java EE API实现。相当于.NET的是至少具有MTS / COM +支持的IIS(是否有与IIS竞争的方式?)。
  • Tomcat的是一个Web容器又名servletcontainer,它只是实现了Web组件庞大的Java EE API的一部分(基本上只有javax.eljavax.servlet部分,JSP / ELServlet API的)。相当于.NET的仍然是IIS,但随后不支持MTS / COM +,邮件,消息队列,持久性等。即,仅一个用于纯“经典ASP”的简单Web服务器。

1
我喜欢这个答案,但是我不确定WPF〜= Swing比较。那是我在.Net和Java之间实际接触过的两个框架,我不确定它们是否是如此相似。您能否扩大这一比较?(感谢所有链接。接下来的几个小时内,我将继续关注它们。这个答案肯定是可以接受的。当我跟进时,我会将答案汇总到原始问题的主体中。 )
Paul Sasik 2010年

7
我不确定比较WPF〜= Swing是否正确。我知道这并不意味着要进行精确的比较,但是WPF的最大部分是它的声明性,因此我认为WinForms〜= Swing是更好的比较。
拉法·卡斯塔内达

同意拉法。虽然Swing似乎确实强制了某些模式,但是WinForms还是很开放的。
Paul Sasik 2010年

不太准确:JAX-WS的RI是JAX-WS RI,而不是Metro。Metro = JAX-WS RI + WSIT。
Pascal Thivent

@Paul和@Rafa:WPF确实不仅仅是UI。我扩大了答案。@Pascal:我删除了Metro van的答案。
BalusC 2010年

14

这是我自己的研究得出的清单,并对BalusC,Rafa(等)的回答进行了跟踪:

(慢慢地更新此列表。还将为可能感兴趣的Java人员提供指向.NET技术的链接。)


我会对GWT,Maven2 / Nexus / Sonatype,JMX的.NET等效项感兴趣
David J. Liszewski 2010年

真好 我将它们添加到列表中。
Paul Sasik 2010年

@ DavidJ.Liszewski GWT〜= WebSharper(但这是一个大致的类比,从历史上看,微软没有任何可以交叉编译为JavaScript的工具);Maven2〜= MSBuild + NuGet; Sonatype = Sonatype Nexus或许多其他NuGet服务器实现*
JMX〜


3

已经涵盖了主要技术,因此提供了一些外围技术:

  • TPL〜= java.concurrent包
  • F#〜=斯卡拉
  • IronPython / IronRuby〜= Jython / JRuby
  • .Net Remoting〜= RMI
  • MEF / System.AddIn〜= OSGi /拼图

确实,创建Jython的那个人继续编写IronPython。
加布



1

如果我正确理解的话,C#中的Lambda表达式是从功能语言中“借来的”,因此Java中没有直接等效的语言(至少目前如此),但是LambdaJ同时为您提供了类似的功能。


好发现。这是第三方插件(正确吗?),但似乎提供了与.NET lambdas类似的功能。
保罗·萨西克

这是一个库,而不是一个插件。...嗯,我想语义是一样的,但无论如何。是的,Java已经存在了很长一段时间,很多有用的东西在第三方库和框架中,而不是Java本身。
艾斯科(Esko)2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.