Аналоги технологій / фреймворків Java та .NET


75

Я працюю в магазині, який поєднує переважно технологів Java та .NET. Обговорюючи нові рішення та архітектури, ми часто стикаємося з імпедансом, намагаючись порівняти різні технології, фреймворки, API тощо, що використовуються між двома таборами. Здається, кожен табір мало що знає про інший, і ми в підсумку порівнюємо яблука з апельсинами і забуваємо про бушелі.

Досліджуючи тему, я виявив: Java -> .Net грубі еквіваленти

Це приємний список, але він не зовсім вичерпний, і в ньому бракує ключових технологій .NET 3.0 та кількох інших ласощів. Щоб заповнити цей список: які еквіваленти близького / грубого рівня (або комбінація технологій) у Java наступним у .NET?

  • WCF ~ =
  • WPF ~ =
  • Silverlight ~ =
  • WF ~ =
  • Дженерики ~ =
  • Методи розширення ~ =
  • Лямбда-вирази ~ =
  • Linq (не Linq-to-SQL) ~ =
  • TPL ~ =
  • F # ~ =
  • IronPython ~ =
  • IronRuby ~ =
  • ... я щось ще пропустив?

Java Technologies (чи існують еквіваленти .NET?):

  • ~ = EJB
  • ~ = WebSphere
  • ~ = GlassFish
  • ~ = Сервер додатків JBoss
  • ~ = Tomcat?

Зауважте, що я опустив технології, про які вже йдеться у статті, на яку пов’язано посилання. Я також хотів би почути відгук про те, чи правильна пов’язана стаття.

Примітка: Це, здається, перетворюється на статтю типу wiki, тому я позначив її як таку.


1
+1: чудове запитання, добре поставлене ... і це поставило вас на 5555 реп. Як я не міг?
Matt Ball

+1: погоджено, чудове запитання та одне, на яке я люблю дізнатись відповідь.
elduff

+1, пропозиція: що еквівалентно EJB, WebSphere, GlassFish або JBoss Application Server на платформі .NET?
mjn

1
@mjustin: чудове доповнення. я також думаю Tomcat. Це допустиме доповнення, порівнянне з .NET? Чи все ще використовується?
Пол Сасік,

1
Блін! Презентація має велике значення. Я задав те саме питання 1 рік тому, коли нещодавно приєднався до SO. Але моє запитання було закрите, кажучи, що це не справжнє питання. З приниження я видалив це запитання.
кігті

Відповіді:


48

.NET -> Java

Java -> .NET

  • EJB ~ = MTS / COM +
  • WebSphere AS , GlassFish , JBoss AS - це конкретні реалізації API Java EE . Еквівалентом .NET був би IIS з принаймні підтримкою MTS / COM + (чи є, до речі, конкуренція за IIS?).
  • Tomcat - веб- контейнер, який також називається servletcontainer, він реалізує лише частину веб-компонента величезного API Java EE (в основному лише частини javax.elта javax.servlet, JSP / EL та API сервлетів ). Еквівалент .NET все ще залишався б IIS, але тоді без підтримки MTS / COM +, пошти, черги повідомлень, постійності тощо. Тобто лише простий веб-сервер для чистого "класичного ASP".

1
мені подобається ця відповідь, але я не впевнений у порівнянні WPF ~ = Swing. Це дві основи, які я насправді торкнувся між .Net та Java, і я не впевнений, що вони всі подібні. Не могли б ви розширити це порівняння? (Дякую за всі посилання, крім того. Я буду стежити за ними протягом наступних кількох годин. Ця відповідь, безумовно, є кандидатом на прийняття. Адже, як тільки я продовжу, буду складати відповіді в тілі оригінального запитання. )
Пол Сасік

7
Я не впевнений, наскільки порівняння WPF ~ = Swing відповідає дійсності. Я знаю, що це не має бути точним порівнянням, але найбільша частина WPF - це його декларативний характер, тому я б вважав WinForms ~ = Swing кращим порівнянням.
Рафа Кастанеда

Погоджуючись з Рафою. Хоча, здається, Swing вимушує деякі шаблони, тоді як WinForms досить широко відкритий.
Paul Sasik

Невелика неточність: RI JAX-WS - це JAX-WS RI, а не метро. Метро = JAX-WS RI + WSIT.
Паскаль Тівент

@ Пол і @ Рафа: WPF - це дійсно більше, ніж просто інтерфейс. Я розширив відповідь. @Pascal: Я видалив Metro van відповідь.
BalusC

14

Ось список мого власного дослідження та подальших досліджень відповідей BalusC, Rafa (et al.):

(Повільне оновлення цього списку. Також надасть посилання на технології .NET для тих, хто цікавиться Java.)


Мене зацікавлять еквіваленти .NET для GWT, Maven2 / Nexus / Sonatype, JMX
David J. Liszewski

Приємно. я додаю їх до списку.
Paul Sasik

@ DavidJ.Liszewski GWT ~ = WebSharper (але це досить груба аналогія, історично склалося так, що Microsoft не мала інструментів для перехресної компіляції в JavaScript); Maven2 ~ = MSBuild + NuGet; Sonatype = Sonatype Nexus або низка інших реалізацій сервера NuGet * JMX ~ = WMI (Інструментарій управління Windows)
DmytroL


3

Основні технології вже охоплені, тому кілька периферійних технологій:

  • TPL ~ = одночасний пакет java.concurrent
  • F # ~ = Скала
  • IronPython / IronRuby ~ = Jython / JRuby
  • .Net Remoting ~ = RMI
  • MEF / System.AddIn ~ = OSGi / Jigsaw

Дійсно, той самий хлопець, який створив Jython, продовжував писати IronPython.
Гейб,


2

Еквівалентом Linq у світі Java є Quaere - http://quaere.codehaus.org/


Мені це здалося трохи дивним. закриття дійсно змінить його подальші реалізації ...
Джон,

1
Погляньте також на Жака, він виглядає більш перспективним - code.google.com/p/jaque
Джон

Приємна знахідка теж. Чому б не опублікувати це як відповідь на підтримку? Ви отримаєте від мене +1.
Paul Sasik

1

Якщо я правильно зрозумів, лямбда-вирази в C # "позичаються" у функціональних мов, і тому в Java немає прямого еквівалента ( принаймні зараз ), однак LambdaJ тим часом дає щось подібне.


Приємна знахідка. Це свого роду підключення третьої сторони (правильно?), Але, схоже, забезпечує подібну функціональність до .NET лямбда.
Paul Sasik

Це бібліотека, а не плагін. ... ну, я думаю, семантика абсолютно однакова, але в будь-якому випадку. І так, Java існує вже давно, багато корисного є в сторонніх бібліотеках та фреймворках, а не в самій Java.
Еско
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.