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

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

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

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

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

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

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

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

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

.NET -> Java

  • WCF ~ = JAX-WS (как WS) и / или JMS (для MQ).
  • WPF ~ = Swing (как пользовательский интерфейс), Java 2D (для 2D), Java 3D (для 3D) и / или RMI (для удаленного доступа).
  • Silverlight ~ = JavaFX
  • WF ~ = не уверен? Некоторые говорят, что это CAPS .
  • Дженерики уже доступны с Java 5.0 . Основное различие заключается в том, что это compiletime (не Reified ).
  • Лямбда-выражения еще должны появиться в Java 8.0 как «Closures»
  • Linq ~ = Jaque и jpropel-light
  • TPL ~ = java.util.concurrent ( здесь и здесь учебник )
  • F # ~ = Scala или Clojure
  • IronPython ~ = Jython
  • IronRuby ~ = JRuby

Java -> .NET

  • EJB ~ = MTS / COM +
  • WebSphere AS , GlassFish , JBoss AS – все конкретные реализации Java EE API . Эквивалент .NET был бы IIS с поддержкой как минимум MTS / COM + (есть ли конкуренция для IIS?).
  • Tomcat является webcontainer aka servletcontainer, он только реализует часть веб-компонента огромного API Java EE (в основном только части javax.el и javax.servlet , API JSP / EL и Servlet ). Эквивалент .NET будет по-прежнему IIS, но без поддержки MTS / COM +, почты, очереди сообщений, настойчивости и т. Д. Т.е. только простой веб-сервер для чистого «classического ASP».

Вот список моих собственных исследований и ответов на ответы BalusC, Rafa’s (и др.):

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

  • WCF
  • WPF
  • Silverlight = JavaFx
  • WF = jBMP (управление бизнес-процессами Java)
  • Generics = Java Generics
  • Лямбда-выражения = проект lambdaJ или закрытие
  • Linq (не Linq-to-SQL) = jaque или Quaere
  • Пакет TPL ~ = java.concurrent
  • F # = Scala
  • IronPython = JPython
  • IronRuby = JRuby
  • Hibernate = NHibernate
  • JUnit = NUnit
  • Spring = Spring.NET
  • .Net Remoting ~ = RMI
  • MEF / System.AddIn ~ = OSGi / Jigsaw
  • ~ = EJB
  • ~ = WebSphere
  • ~ = GlassFish
  • ~ = Сервер приложений JBoss
  • ~ = Tomcat?
  • ~ = GWT
  • ~ = Maven2 / Nexus / Sonatype
  • ~ = JMX
  • ClickOnce ~ = Java Web Start

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

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

  • Пакет TPL ~ = java.concurrent
  • F # ~ = Scala
  • IronPython / IronRuby ~ = Jython / JRuby
  • .Net Remoting ~ = RMI
  • MEF / System.AddIn ~ = OSGi / Jigsaw

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

  • ClickOnce ≅ Java Web Start

Linq equiv в мире Java – Quaere – http://quaere.codehaus.org/

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

  • R: сравнить все столбцы попарно в матрице
  • Подписанные / неподписанные сравнения
  • Гарантировано ли, что новый Integer (i) == i в Java?
  • Сравните два файла в Visual Studio
  • Что «отсутствует» в выпусках Visual Studio 2008 Express?
  • Как упростить реализацию null-safe compareTo ()?
  • Сравнение встроенных баз данных Java
  • Что такое «Лучшая практика» для сравнения двух экземпляров ссылочного типа?
  • Проверка изображений для сходства с OpenCV
  • Как сравнить две метки времени в формате «Месяц Дата hh: mm: ss», чтобы проверить + ve или -ve значение
  • Сравните двойную точность в задаче точности VBA
  • Давайте будем гением компьютера.