Аналоги технологій / фреймворків 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.