completa - java vs.net 2018
Analogues de Java y tecnologías/frameworks.NET (7)
Trabajo en una tienda que es una mezcla de tecnólogos principalmente Java y .NET. Cuando hablamos de nuevas soluciones y arquitecturas, a menudo nos encontramos con una impedancia al tratar de comparar las diversas tecnologías, marcos, API, etc. que se utilizan entre los dos campos. Parece que cada campamento sabe poco sobre el otro y terminamos comparando manzanas con naranjas y olvidando las fanegas.
Mientras investigaba el tema encontré esto: Java -> .Net rough equivalent
Es una buena lista, pero no es exhaustiva y le faltan las tecnologías .NET 3.0 clave y algunas otras cositas. Para completar esa lista: ¿cuáles son los equivalentes cercanos / aproximados (o una combinación de tecnologías) en Java a los siguientes en .NET?
- WCF ~ =
- WPF ~ =
- Silverlight ~ =
- WF ~ =
- Genéricos ~ =
- Métodos de extensión ~ =
- Expresiones Lambda ~ =
- Linq (no Linq-to-SQL) ~ =
- TPL ~ =
- F # ~ =
- IronPython ~ =
- IronRuby ~ =
- ... ¿Me he perdido algo más?
Tecnologías Java (¿hay equivalentes .NET?):
- ~ = EJB
- ~ = WebSphere
- ~ = GlassFish
- ~ = Servidor de aplicaciones JBoss
- ~ = Tomcat?
Tenga en cuenta que omití las tecnologías que ya están cubiertas en el artículo vinculado. También me gustaría recibir comentarios sobre si el artículo vinculado es exacto.
Nota: Esto parece estar convirtiéndose en un artículo de tipo wiki, así que lo marqué como tal.
.NET -> Java
- WCF ~ = JAX-WS (como WS) y / o JMS (para MQ).
- WPF ~ = Swing (como UI), Java 2D (para 2D), Java 3D (para 3D) y / o RMI (para comunicación remota).
- Silverlight ~ = JavaFX
- WF ~ = no estoy seguro? Algunos dicen que es CAPS .
- Generics ya está disponible desde Java 5.0 . La principal diferencia es que es tiempo de compilación (no Reified ).
- Las expresiones Lambda aún están por venir en Java 8.0 como "Closures"
- Linq ~ = Jaque y jpropel-light
- TPL ~ =
java.util.concurrent
( guía aquí y tutorial aquí ) - F# ~ = Scala o Clojure
- IronPython ~ = Jython
- IronRuby ~ = JRuby
Java -> .NET
- EJB ~ = MTS/COM+
- WebSphere AS , GlassFish , JBoss AS son todas las implementaciones concretas de la API de Java EE . El equivalente de .NET sería IIS con al menos compatibilidad MTS / COM + (¿existe, por cierto, competencia para IIS?).
- Tomcat es un webcontainer alias servletcontainer, solo implementa la parte Web Component de la enorme API Java EE (básicamente solo las partes
javax.el
yjavax.servlet
, JSP/EL y Servlet API ). El equivalente de .NET seguiría siendo IIS, pero sin soporte para MTS / COM +, correo, cola de mensajes, persistencia y más. Es decir, solo un simple servidor web para pura "ASP clásica".
A la creciente lista que presento:
Aquí hay una lista de mi propia investigación y seguimiento de las respuestas de BalusC, Rafa (et al.):
(Actualizando lentamente esta lista. También proporcionará enlaces a tecnologías .NET para personas de Java que puedan estar interesadas).
- WCF
- WPF
- Silverlight = JavaFx
- WF = jBMP (Java Business Process Management)
- Generics = Genéricos de Java
- Lambda expressions = lambdaJ project o "Closures"
- Linq (no Linq-to-SQL) = Jaque o Quaere
- TPL ~ = paquete java.concurrent
- F# = Scala
- IronPython = Jython
- IronRuby = JRuby
- Hibernate = NHibernate
- JUnit = NUnit
- Spring = Spring.NET
- .Net Remoting ~ = RMI
- MEF / System.AddIn ~ = OSGi / Jigsaw
- ~ = EJB
- ~ = WebSphere
- ~ = GlassFish
- ~ = Servidor de aplicaciones JBoss
- ~ = Tomcat?
- ~ = GWT
- ~ = Maven2 / Nexus / Sonatype
- ~ = JMX
- ClickOnce ~ = Java Web Start
El equivalente de Linq en el mundo de Java es Quaere - Quaere
Las principales tecnologías ya están cubiertas, por lo que algunas tecnologías periféricas:
- TPL ~ = paquete java.concurrent
- F # ~ = Scala
- IronPython / IronRuby ~ = Jython / JRuby
- .Net Remoting ~ = RMI
- MEF / System.AddIn ~ = OSGi / Jigsaw
Si lo he entendido correctamente, las expresiones Lambda en C # se "prestan" de los lenguajes funcionales y, como tal, no hay un equivalente directo en Java ( al menos por ahora ), sin embargo, LambdaJ le ofrece algo similar mientras tanto.
JavaFX es el equivalente aproximado de Silverlight. Eso es todo lo que sé de esa lista ...