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

Я работаю в магазине, где в основном работают технологи Java и .NET. Обсуждая новые решения и архитектуры, мы часто сталкиваемся с сопротивлением, пытаясь сравнить различные технологии, фреймворки, API и т. Д., Используемые этими двумя лагерями. Кажется, что каждый лагерь мало знает о другом, и в итоге мы сравниваем яблоки с апельсинами и забываем о бушелях.

Изучая тему, я обнаружил следующее: Java -> .Net грубая эквиваленты

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

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

Технологии Java (есть ли эквиваленты .NET?):

  • ~ = EJB
  • ~ = WebSphere
  • ~ = GlassFish
  • ~ = Сервер приложений JBoss
  • ~ = Tomcat?

Обратите внимание, что я пропустил технологии, которые уже описаны в связанной статье. Я также хотел бы услышать отзывы о том, является ли ссылка на статью точной.

Примечание. Кажется, это превращается в статью вики-типа, поэтому я пометил ее как таковую.


person Community    schedule 26.03.2010    source источник
comment
+1: отличный вопрос, хорошо заданный ... и он поставил вас на 5555 респ. Как я мог не?   -  person Matt Ball    schedule 26.03.2010
comment
+1: согласен, отличный вопрос, и мне очень хотелось бы узнать ответ.   -  person elduff    schedule 26.03.2010
comment
+1, предложение: что эквивалентно EJB, WebSphere, GlassFish или JBoss Application Server на платформе .NET?   -  person mjn    schedule 27.03.2010
comment
@mjustin: отличное дополнение. Я тоже думаю о Tomcat. Это действительное дополнение, сравнимое с .NET? Он все еще используется?   -  person Paul Sasik    schedule 29.03.2010
comment
Tomcat - это контейнер сервлетов. Очень "легкий" IIS, на котором запущен ASP, будет его аналогом .Net.   -  person mjn    schedule 29.03.2010
comment
Черт! Презентация очень важна. Я задал тот же вопрос год назад, когда только что присоединился к SO. Но мой вопрос был закрыт, говоря, что это не настоящий вопрос. Я из унижения удалил этот вопрос.   -  person claws    schedule 05.08.2010


Ответы (7)


.NET -> Java

Java -> .NET

  • EJB ~ = МТС / COM +
  • WebSphere AS, GlassFish, JBoss AS - это все конкретные реализации Java EE API. Эквивалентом .NET был бы IIS с поддержкой как минимум MTS / COM + (есть ли, кстати, конкуренция для IIS?).
  • Tomcat - это webcontainer, он же servletcontainer, он реализует только Веб-компонент огромного Java EE API (в основном только части javax.el и javax.servlet, JSP / EL и Servlet API) . Эквивалентом .NET будет по-прежнему IIS, но без поддержки MTS / COM +, почты, очереди сообщений, постоянства и многого другого. Т.е. только простой веб-сервер для чистого "Классического ASP".
person BalusC    schedule 26.03.2010
comment
Мне нравится этот ответ, но я не уверен в сравнении WPF ~ = Swing. Это две структуры, которые я затронул между .Net и Java, и я не уверен, что они так похожи. Не могли бы вы расширить это сравнение? (Между прочим, спасибо за все ссылки. Я буду следить за ними в течение следующих нескольких часов. Этот ответ определенно является кандидатом на принятие. И как только я буду следить за ним, я сложу ответы в текст исходного вопроса. ) - person Paul Sasik; 26.03.2010
comment
Я не уверен, насколько верно сравнение WPF ~ = Swing. Я знаю, что это не предназначено для точного сравнения, но большая часть WPF - это его декларативный характер, поэтому я считаю WinForms ~ = Swing лучшим сравнением. - person Rafa Castaneda; 26.03.2010
comment
Согласен с Рафой. Хотя Swing, похоже, заставляет некоторые шаблоны, тогда как WinForms довольно широко открыт. - person Paul Sasik; 26.03.2010
comment
Небольшая неточность: RI JAX-WS - это RI JAX-WS, а не Metro. Метро = JAX-WS RI + WSIT. - person Pascal Thivent; 27.03.2010
comment
@Paul и @Rafa: WPF - это действительно больше, чем просто пользовательский интерфейс. Я расширил ответ. @Pascal: Я удалил Metro van ответ. - person BalusC; 27.03.2010
comment
ja ik zie dat :) Хороший ответ, кстати. - person Pascal Thivent; 27.03.2010
comment
@BalusC: Вы правы, поэтому для точности вы должны добавить Java RMI в сравнение WCF, поскольку вы можете использовать привязки .Net Remoting. - person Rafa Castaneda; 27.03.2010
comment
@Pascal: эй, я случайно вставил голландское слово в свой комментарий! Для других: van должно было быть from. @Rafa: действительная точка, тоже добавлено. - person BalusC; 28.03.2010
comment
Я бы сказал, что SWING больше похож на WINFORM, чем на WPF. - person jle; 29.03.2010
comment
Разве JavaFX не ближе к WPF, чем Swing? Парадигмы программирования, поддерживаемые WPF и Swing, далеки друг от друга. Во-первых, Swing не декларативен. - person Sayo Oladeji; 27.11.2015

Вот список из моего собственного исследования и последующих ответов BalusC, Rafa (и др.):

(Медленное обновление этого списка. Также будут предоставлены ссылки на технологии .NET для тех, кто может заинтересоваться Java.)

person Community    schedule 26.03.2010
comment
Меня бы интересовали эквиваленты .NET для GWT, Maven2 / Nexus / Sonatype, JMX - person David J. Liszewski; 29.03.2010
comment
Хороший. я добавлю их в список. - person Paul Sasik; 29.03.2010
comment
@ DavidJ.Liszewski GWT ~ = WebSharper (но это довольно грубая аналогия, исторически у Microsoft не было инструментов для кросс-компиляции с JavaScript); Maven2 ~ = MSBuild + NuGet; Sonatype = Sonatype Nexus или ряд других реализаций сервера NuGet * JMX ~ = WMI (инструментарий управления Windows) - person DmytroL; 13.07.2016

JavaFX является приблизительным эквивалентом Silverlight. Это все, что я знаю из этого списка ...

person Dave Swersky    schedule 26.03.2010

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

  • TPL ~ = пакет java.concurrent
  • F # ~ = Scala
  • IronPython / IronRuby ~ = Jython / JRuby
  • .Net Remoting ~ = RMI
  • MEF / System.AddIn ~ = OSGi / Головоломка
person Rafa Castaneda    schedule 26.03.2010
comment
Действительно, тот же парень, что создал Jython, продолжил писать IronPython. - person Gabe; 27.03.2010

К растущему списку я добавляю:

person Community    schedule 29.03.2010

Эквивалент Linq в мире Java - это Quaere - http://quaere.codehaus.org/

person Jon    schedule 26.03.2010
comment
Хотя мне это показалось немного странным. закрытие действительно изменит его будущие реализации ... - person Jon; 26.03.2010
comment
Взгляните и на Жака, он выглядит более многообещающим - code.google.com/p/jaque - person Jon; 26.03.2010
comment
Тоже хорошая находка. Почему бы не опубликовать его как ответ на голосование? Вы получите от меня +1. - person Paul Sasik; 27.03.2010

Если я правильно понял, лямбда-выражения в C # "заимствованы" из функциональных языков, и поэтому прямого эквивалента в Java нет (по крайней мере на данный момент), однако LambdaJ тем временем дает вам нечто подобное.

person Esko    schedule 26.03.2010
comment
Хорошая находка. Это своего рода плагин стороннего производителя (правильно?), Но, похоже, он обеспечивает ту же функциональность, что и лямбды .NET. - person Paul Sasik; 26.03.2010
comment
Это библиотека, а не плагин. ... ну, я думаю, семантика такая же, но в любом случае. И да, Java существует уже давно, много полезного есть в сторонних библиотеках и фреймворках, а не в самой Java. - person Esko; 27.03.2010