2010-03-26 93 views
72

我在一家主要由Java和.NET技術人員組成的商店中工作。在討論新的解決方案和體系結構時,我們經常在試圖比較兩個陣營之間使用的各種技術,框架,API等方面遇到阻礙。看起來,每個陣營對另一個陣營知之甚少,我們最終將蘋果與橘子進行比較,並忘記了蒲式耳。Java和.NET技術/框架的類似物

雖然研究,我發現這個話題:Java --> .Net rough equivalents

這是一個不錯的清單,但它不是很詳盡,缺少關鍵的.NET 3.0技術和其它一些信息。要完成這個列表:Java中的近似/粗略等效(或多種技術的組合)到.NET中的以下內容是什麼?

  • WCF〜=
  • WPF〜=
  • 的Silverlight〜=
  • WF〜=
  • 泛型〜=
  • 擴展方法〜=
  • Lambda表達式〜=
  • Linq(不是Linq-to-SQL)〜=
  • TPL = =
  • F#〜=
  • IronPython的〜=
  • 的IronRuby〜=
  • ...我錯過了什麼事嗎?

的Java技術(在那裏.NET等效):

  • 〜= EJB
  • 〜=的WebSphere
  • 〜= GlassFish的
  • 〜=的JBoss應用服務器
  • 〜 = Tomcat?

請注意,我省略了已在the linked article.中涵蓋的技術,我也希望聽到關於鏈接文章是否準確的反饋。

注意:這似乎正在變成一個維基類型的文章,所以我標記爲這樣。

+1

+1:很好的問題,好的問...並且它把你放在5555代表。我怎麼不能? – 2010-03-26 19:18:32

+0

+1:同意,很好的問題,我很樂意學習答案。 – elduff 2010-03-26 19:21:03

+0

+1,建議:.NET平臺上EJB,WebSphere,GlassFish或JBoss應用服務器的等價物是什麼? – mjn 2010-03-27 18:56:29

回答

45

.NET - > Java的

爪哇 - > .NET

  • EJB〜= MTS/COM+
  • WebSphere AS,,JBoss AS都是混凝土Java EE API實現。 .NET的等價物至少是具有MTS/COM +支持的IIS(是否有競爭IIS的方式?)。
  • Tomcatwebcontainer又名servletcontainer,它只是實現了巨大的Java EE API的Web Component部分(基本上只有javax.eljavax.servlet部分,JSP/ELServlet API)。 .NET等價物仍然是IIS,但不支持MTS/COM +,郵件,消息隊列,持久性等等。即只有純粹的「經典ASP」的簡單網絡服務器。
+1

我喜歡這個答案,但我不確定WPF〜= Swing比較。那些是我在.Net和Java之間實際碰到的兩個框架,我不確定它們是否都是類似的。你可以擴大這種比較嗎? (感謝所有的鏈接,我會在接下來的幾個小時內跟進他們,這個答案肯定是接受的候選人,Adn一旦我跟進,我會將答案摺疊到原始問題的正文中。 ) – 2010-03-26 20:21:54

+7

我不確定比較WPF〜= Swing的真實程度。我知道這並不意味着是一個確切的比較,但WPF的最大部分是它的聲明性質,所以我會認爲WinForms〜= Swing是一個更好的比較。 – 2010-03-26 20:39:23

+0

同意Rafa。儘管Swing似乎強制某些模式,而WinForms卻相當開放。 – 2010-03-26 20:51:47

6

JavaFX是Silverlight的粗略等價物。這就是我從該列表知道...

1

如果我理解正確的話,在C#Lambda表達式是「租借」函數式語言,因此沒有直接等效的Java(至少現在),但是LambdaJ讓你在類似的東西與此同時。

+0

很好找。這是第三方插件(正確?),但似乎提供了與.NET lambda類似的功能。 – 2010-03-26 20:34:41

+0

這是一個圖書館,而不是一個插件。 ......好吧,我猜這些語義是完全一樣的,但無論如何。是的,Java已經存在很長一段時間了,很多有用的東西都在第三方庫和框架中,而不是Java本身。 – Esko 2010-03-26 21:03:36

13

這裏是一個列表,從我自己的研究和跟進BalusC的,拉法的(等人)回答:

(慢慢更新這份名單還將提供鏈接回用於Java的鄉親.NET技術誰可能感興趣。)

+0

我對GWT,Maven2/Nexus/Sonatype,JMX的.NET等價物感興趣。 – 2010-03-29 14:55:09

+0

不錯。我會將它們添加到列表中。 – 2010-03-29 15:18:30

+0

@ DavidJ.Liszewski GWT〜= WebSharper(但這是一個相當粗略的比喻,歷史上微軟沒有任何工具可以交叉編譯爲JavaScript); Maven2〜= MSBuild + NuGet; Sonatype = Sonatype Nexus或其他一些NuGet服務器實現 * JMX〜= WMI(Windows Management Instrumentation) – DmytroL 2016-07-13 20:01:54

2

在Java世界LINQ的當量是Quaere - http://quaere.codehaus.org/

+0

+1非常好的發現! – 2010-03-26 20:54:25

+0

雖然我發現它有點奇怪。關閉將真正改變它的未來實現... – Jon 2010-03-26 20:55:30

+1

看看雅克也是如此,看起來更有希望 - http://code.google.com/p/jaque/ – Jon 2010-03-26 20:56:54

3

主要技術已經涵蓋,所以一些外圍技術:

  • TPL〜= java.concurrent包
  • F#〜= Scala的
  • IronPython的/ IronRuby的〜=的Jython/JRuby的
  • .NET遠程〜= RMI
  • MEF/System.AddIn〜= OSGi的/拼圖
+0

你的意思是jython,而不是jpython,對吧? – 2010-03-27 02:30:45

+0

是的,已更正。 – 2010-03-27 02:52:52

+0

事實上,做Jython的那個人繼續寫IronPython。 – Gabe 2010-03-27 04:36:31