【问题标题】:Analogues of Java and .NET technologies/frameworksJava 和 .NET 技术/框架的类似物
【发布时间】:2010-03-26 19:15:16
【问题描述】:

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

在研究主题时,我发现了这个:Java --> .Net rough equivalents

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

  • WCF ~=
  • WPF ~=
  • 银光~=
  • WF ~=
  • 泛型 ~=
  • 扩展方法 ~=
  • Lambda 表达式 ~=
  • Linq(不是 Linq-to-SQL)~=
  • TPL ~=
  • F# ~=
  • IronPython ~=
  • 铁红宝石 ~=
  • ...我还有什么遗漏吗?

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

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

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

注意:这似乎变成了 wiki 类型的文章,所以我将其标记为这样。

【问题讨论】:

  • +1:很好的问题,问得很好......它让你获得了 5555 代表。我怎么能不呢?
  • +1:同意,很好的问题,我很想知道答案。
  • +1,建议:.NET 平台上的 EJB、WebSphere、GlassFish 或 JBoss Application Server 等价物是什么?
  • @mjustin:很好的补充。我也在想Tomcat。这是与 .NET 相媲美的有效补充吗?还在用吗?
  • 该死!演示文稿很重要。一年前我刚加入 SO 时问了同样的问题。但是我的问题已经结束,说这不是一个真正的问题。出于羞辱,我删除了那个问题。

标签: java .net comparison


【解决方案1】:

.NET --> Java

Java --> .NET

  • EJB ~= MTS/COM+
  • WebSphere ASGlassFishJBoss AS 都是具体的 Java EE API 实现。 .NET 等价物是至少支持 MTS/COM+ 的 IIS(顺便说一句,IIS 是否存在竞争?)。
  • Tomcat 是一个webcontainer aka servletcontainer,它只实现了巨大的Java EE API 的Web Component 部分(基本上只有javax.eljavax.servlet 部分,JSP/ELServlet API)。 .NET 等价物仍然是 IIS,但不支持 MTS/COM+、邮件、消息队列、持久性等。 IE。仅用于纯“经典 ASP”的简单 Web 服务器。

【讨论】:

  • 我喜欢这个答案,但我不确定 WPF ~= Swing 比较。这些是我在 .Net 和 Java 之间实际接触过的两个框架,我不确定它们是否都那么相似。你能扩展一下这个比较吗? (顺便说一句,感谢所有链接。我将在接下来的几个小时内跟进它们。这个答案绝对是接受的候选人。一旦我跟进,我会将答案折叠到原始问题的正文中。 )
  • 我不确定 WPF ~= Swing 的比较在多大程度上是正确的。我知道这并不是一个精确的比较,但 WPF 最重要的部分是它的声明性,所以我认为 WinForms ~= Swing 是一个更好的比较。
  • 同意拉法。虽然 Swing 似乎确实强制了一些模式,而 WinForms 却相当开放。
  • 一点不准确:JAX-WS 的 RI 是 JAX-WS RI,而不是 Metro。 Metro = JAX-WS RI + WSIT。
  • @Paul 和@Rafa:WPF 确实不仅仅是 UI。我已经扩展了答案。 @Pascal:我删除了 Metro van 的答案。
【解决方案2】:

这是我自己的研究和跟进 BalusC、Rafa(等人)的答案的列表:

(此列表正在缓慢更新。还将为可能感兴趣的 Java 人员提供返回 .NET 技术的链接。)

【讨论】:

  • 我会对 GWT、Maven2/Nexus/Sonatype、JMX 的 .NET 等效项感兴趣
  • 不错。我会将它们添加到列表中。
  • @DavidJ.Liszewski GWT ~= WebSharper(但这是一个相当粗略的类比,历史上微软没有任何可以交叉编译为 JavaScript 的工具); Maven2 ~= MSBuild + NuGet; Sonatype = Sonatype Nexus 或许多其他 NuGet 服务器实现 * JMX ~= WMI (Windows Management Instrumentation)
【解决方案3】:

JavaFX 大致相当于 Silverlight。这就是我从那个列表中知道的全部......

【讨论】:

    【解决方案4】:

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

    • TPL ~= java.concurrent 包
    • F# ~= Scala
    • IronPython/IronRuby ~= Jython/JRuby
    • .Net 远程处理 ~= RMI
    • MEF/System.AddIn ~= OSGi/Jigsaw

    【讨论】:

    • 确实,正是那个创造了 Jython 的人继续编写 IronPython。
    【解决方案5】:

    对于我提交的不断增长的列表:

    【讨论】:

      【解决方案6】:

      Java 世界中的 Linq 等价物是 Quaere - http://quaere.codehaus.org/

      【讨论】:

      • 我发现它有点奇怪。闭包真的会改变它的未来实现......
      • 也看看雅克,看起来更有希望 - code.google.com/p/jaque
      • 也不错。为什么不将其发布为赞成票的答案?你会得到我的 +1。
      【解决方案7】:

      如果我理解正确的话,C# 中的 Lambda 表达式是从函数式语言“借来”的,因此在 Java 中没有直接的等价物(至少现在),但是 LambdaJ 给了你同时也有类似的东西。

      【讨论】:

      • 不错的发现。它是某种类型的第 3 方插件(对吗?),但似乎提供了与 .NET lambda 类似的功能。
      • 这是一个库,而不是插件。 ...嗯,我想语义是完全一样的,但无论如何。是的,Java 已经存在很长时间了,很多有用的东西都在 3rd 方库和框架中,而不是 Java 本身。
      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 2014-11-23
      • 2018-07-22
      • 2010-10-30
      相关资源
      最近更新 更多