2010-03-26 19 views
72

Trabajo en una tienda que es una mezcla de tecnólogos 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.Analogues of Java and .NET technologies/frameworks

Mientras investigaba el tema me encontré con esto: Java --> .Net rough equivalents

Es una lista agradable, pero no es bastante exhaustiva y carece de los principales tecnologías .NET 3.0 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 ~ =
  • Generics ~ =
  • 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 se cubren en the linked article. También me gustaría recibir comentarios sobre si el artículo vinculado es preciso.

Nota: Esto parece estar convirtiéndose en un artículo de tipo wiki por lo que he marcado como tal.

+1

+1: gran pregunta, bien preguntado ... y lo puso en 5555 rep. ¿Cómo no iba a hacerlo? –

+0

+1: gran pregunta, acordada, y una que me ha encantado para conocer la respuesta. – elduff

+0

+1, sugerencia: ¿qué es el equivalente de EJB, WebSphere, GlassFish o JBoss Application Server en la plataforma .NET? – mjn

Respuesta

45

NET -> Java

Java -> .NET

  • EJB ~ = MTS/COM+
  • WebSphere AS, , JBoss AS son todos concretas Java EE API implementaciones. El equivalente de .NET sería IIS con al menos compatibilidad MTS/COM + (¿existe, por cierto, competencia para IIS?).
  • Tomcat es una servletcontainer webcontainer alias, sólo se implementa la parte de la enorme Web Component API Java EE (básicamente sólo las javax.el y javax.servlet partes, la 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".
+1

me gusta esta respuesta, pero no estoy seguro acerca de la comparación WPF ~ = Swing. Esos son los dos marcos que he tocado entre .Net y Java, y no estoy seguro de que sean tan similares. ¿Podrías ampliar esa comparación? (Gracias por todos los enlaces, los seguiré en las próximas horas. Esta es definitivamente una candidata para ser aceptada. Una vez que hago el seguimiento, doblo las respuestas en el cuerpo de la pregunta original.) –

+7

No estoy seguro en qué medida la comparación WPF ~ = Swing es verdadera. Sé que no pretende ser una comparación exacta, pero la mayor parte de WPF es su naturaleza declarativa, por lo que consideraría que WinForms ~ = Swing es una mejor comparación. –

+0

Estoy de acuerdo con Rafa. Aunque Swing parece forzar algunos patrones, mientras que WinForms está bastante abierto. –

6

JavaFX es el equivalente aproximado de Silverlight. Eso es todo lo que sé de esa lista ...

1

Si he entendido bien, expresiones lambda en C# son "prestadas" de los lenguajes funcionales y, como tal, no hay equivalente directo en Java (al menos por ahora), sin embargo LambdaJ le da algo similar en el mientras tanto.

+0

Buen hallazgo. Es una especie de plug-in de terceros (¿correcto?) Pero parece proporcionar la funcionalidad similar a .NET lambdas. –

+0

Es una biblioteca, no un complemento. ... bueno, creo que la semántica es bastante similar, pero de todos modos. Y sí, Java ha existido por mucho tiempo, hay muchas cosas útiles en bibliotecas y frameworks de terceros en lugar de Java. – Esko

13

Aquí está una lista de mi propia investigación y el seguimiento de la BalusC, Rafa (et al.) Respuestas:.

(actualización Poco a poco esta lista también proporcionará enlaces a las tecnologías .NET para la gente de Java que puede estar interesado.)

+0

Me interesarían los equivalentes de .NET para GWT, Maven2/Nexus/Sonatype, JMX –

+0

Niza. los agregaré a la lista. –

+0

@ DavidJ.Liszewski GWT ~ = WebSharper (pero esta es una analogía bastante aproximada, históricamente Microsoft no tenía ninguna herramienta que compilara de forma cruzada a JavaScript); Maven2 ~ = MSBuild + NuGet; Sonatype = Sonatype Nexus o una serie de otras implementaciones del servidor NuGet * JMX ~ = WMI (Instrumental de administración de Windows) – DmytroL

2

El equiv LINQ en el mundo Java es Quaere - http://quaere.codehaus.org/

+0

+1 ¡Muy buen hallazgo! –

+0

Aunque me ha parecido un poco raro. los cierres realmente cambiarán las implementaciones futuras de él ... – Jon

+1

Eche un vistazo a Jacque también, se ve más prometedor - http://code.google.com/p/jaque/ – Jon

3

Las principales tecnologías ya están cubiertas, por lo que algunas tecnologías periféricas:

  • TPL ~ = java.concurrent paquete
  • F # ~ = Scala
  • IronPython/IronRuby ~ = Jython/JRuby
  • .Net Remoting ~ = RMI
  • MEF/System.AddIn ~ = OSGi/Jigsaw
+0

quieres decir jython, no jpython, ¿verdad? –

+0

Sí, corregido. –

+0

De hecho, el mismo tipo que hizo Jython pasó a escribir IronPython. – Gabe