Java和.NET技术/框架的类比

我在一个主要由Java和.NET技术人员组成的商店中工作。 在讨论新的解决scheme和体系结构时,我们经常在试图比较两个阵营之间使用的各种技术,框架,API等方面遇到阻碍。 看来每个阵营对另一个阵营知之甚less,我们最终将苹果与橘子进行比较,忘记了蒲式耳。

在研究这个话题的时候,我发现了这个: Java – > .Net粗略的等价物

这是一个不错的列表,但并不完整,缺less关键的.NET 3.0技术和其他一些小技巧。 要完成这个清单:在Java中,接近/粗略的等价物(或者技术的组合)是什么?

  • WCF〜=
  • WPF〜=
  • Silverlight〜=
  • WF〜=
  • generics〜=
  • 扩展方法〜=
  • Lambdaexpression式〜=
  • Linq(而不是Linq-to-SQL)〜=
  • TPL〜=
  • F#〜=
  • IronPython〜=
  • IronRuby〜=
  • …我错过了什么吗?

Java技术(有没有.NET等价物?):

  • 〜= EJB
  • 〜= WebSphere
  • 〜= GlassFish
  • 〜= JBoss应用服务器
  • 〜= Tomcat?

请注意,我省略了链接文章中已经涵盖的技术。 我还想听到关于链接文章是否准确的反馈。

注意:这似乎正在变成一个维基types的文章,所以我标记为这样。

.NET – > Java

  • WCF〜 = JAX-WS (如WS)和/或JMS (用于MQ)。
  • WPF〜 = Swing (用户界面), Java 2D (用于2D), Java 3D (用于3D)和/或RMI (用于远程处理)。
  • Silverlight〜 = JavaFX
  • WF〜 =不确定? 有人说这是CAPS 。
  • Generics自Java 5.0起已经可用。 主要区别在于它是编译时(不是Reified )。
  • Lambdaexpression式在Java 8.0中还没有成为“闭包”
  • Linq〜 = Jaque和jpropel-light
  • TPL〜 = java.util.concurrent ( 这里指导和教程 )
  • F# 〜= Scala或Clojure
  • IronPython〜 = Jython
  • IronRuby〜 = JRuby

Java – > .NET

  • EJB〜 = MTS / COM +
  • WebSphere AS , GlassFish , JBoss AS都是具体的Java EE API实现。 .NET的等价物将是至less有MTS / COM +支持的IIS(有没有竞争IIS的方式?)。
  • Tomcat是一个webcontainer,也就是servletcontainer,它只实现庞大的Java EE API(基本上只有javax.eljavax.servlet部分, JSP / EL和Servlet API )的Web Component部分。 .NET等价物仍然是IIS,但是不支持MTS / COM +,邮件,消息队列,持久性等等。 即只有一个简单的networking服务器纯“经典ASP”。

下面是我自己的研究和BalusC的后续列表,Rafa's(et al。)的回答:

(慢慢地更新这个列表,也会提供链接给.NET技术人员,他们可能会感兴趣。)

  • WCF
  • WPF
  • Silverlight = JavaFx
  • WF = jBMP(Java业务stream程pipe理)
  • generics = Javagenerics
  • Lambdaexpression式 = lambdaJ项目或闭包
  • Linq (不是Linq-to-SQL)= jaque或Quaere
  • TPL〜 = java.concurrent包
  • F# = 斯卡拉
  • IronPython = JPython
  • IronRuby = JRuby
  • Hibernate = NHibernate
  • JUnit = NUnit
  • Spring = Spring.NET
  • .Net Remoting〜= RMI
  • MEF / System.AddIn〜= OSGi / Jigsaw
  • 〜= EJB
  • 〜= WebSphere
  • 〜= GlassFish
  • 〜= JBoss应用服务器
  • 〜= Tomcat?
  • 〜= GWT
  • 〜= Maven2 / Nexus / Sonatype
  • 〜= JMX
  • ClickOnce〜 = Java Web Start

JavaFX与Silverlight大致相当。 这就是我从列表中知道的

主要技术已经涵盖,所以一些外围技术:

  • TPL〜= java.concurrent包
  • F#〜= Scala
  • IronPython / IronRuby〜= Jython / JRuby
  • .Net Remoting〜= RMI
  • MEF / System.AddIn〜= OSGi / Jigsaw

对于越来越多的名单我​​提交:

  • ClickOnce≅Java Web Start

Java世界中的Linq equiv是Quaere – http://quaere.codehaus.org/

如果我理解正确,C#中的Lambdaexpression式是从函数式语言中“借用”的,因此在Java中没有直接的等价物( 至less现在是这样 ),但是LambdaJ同时给你类似的东西。