Analoga von Java- und .NET-Technologien / Frameworks

75

Ich arbeite in einem Geschäft, das hauptsächlich aus Java- und .NET-Technologen besteht. Bei der Erörterung neuer Lösungen und Architekturen stoßen wir häufig auf Impedanz beim Versuch, die verschiedenen Technologien, Frameworks, APIs usw. zu vergleichen, die zwischen den beiden Lagern verwendet werden. Es scheint, dass jedes Lager wenig über das andere weiß und wir am Ende Äpfel mit Orangen vergleichen und die Scheffel vergessen.

Bei der Recherche zum Thema habe ich Folgendes gefunden: Java -> .Net grobe Äquivalente

Es ist eine schöne Liste, aber sie ist nicht ganz vollständig und es fehlen die wichtigsten .NET 3.0-Technologien und einige andere Leckerbissen. Um diese Liste zu vervollständigen: Was sind die nahen / groben Entsprechungen (oder eine Kombination von Technologien) in Java zu den folgenden in .NET?

  • WCF ~ =
  • WPF ~ =
  • Silverlight ~ =
  • WF ~ =
  • Generika ~ =
  • Erweiterungsmethoden ~ =
  • Lambda-Ausdrücke ~ =
  • Linq (nicht Linq-to-SQL) ~ =
  • TPL ~ =
  • F # ~ =
  • IronPython ~ =
  • IronRuby ~ =
  • ... habe ich noch etwas verpasst?

Java-Technologien (gibt es .NET-Entsprechungen?):

  • ~ = EJB
  • ~ = WebSphere
  • ~ = GlassFish
  • ~ = JBoss App Server
  • ~ = Kater?

Beachten Sie, dass ich Technologien weggelassen habe, die bereits im verlinkten Artikel behandelt werden. Ich würde auch gerne Feedback dazu hören, ob der verlinkte Artikel korrekt ist.

Hinweis: Dies scheint sich in einen Artikel vom Typ Wiki zu verwandeln, daher habe ich ihn als solchen markiert.

Paul Sasik
quelle
1
+1: tolle Frage, gut gestellt ... und es hat dich auf 5555 Wiederholungen gebracht. Wie könnte ich nicht?
Matt Ball
+1: Einverstanden, tolle Frage und eine, auf die ich gerne die Antwort lerne.
Elduff
+1, Vorschlag: Was entspricht EJB, WebSphere, GlassFish oder JBoss Application Server auf der .NET-Plattform?
mjn
1
@ Justin: tolle Ergänzung. Ich denke auch an Tomcat. Ist das eine gültige Ergänzung, die mit .NET vergleichbar ist? Wird es noch verwendet?
Paul Sasik
1
Verdammt! Präsentation ist sehr wichtig. Ich habe die gleiche Frage vor einem Jahr gestellt, als ich neu zu SO kam. Aber meine Frage wurde geschlossen und sagte, es sei keine echte Frage. Aus Demütigung habe ich diese Frage gelöscht.
Krallen

Antworten:

48

.NET -> Java

Java -> .NET

  • EJB ~ = MTS / COM +
  • WebSphere AS , GlassFish und JBoss AS sind konkrete Java EE API- Implementierungen. Das .NET-Äquivalent wäre IIS mit mindestens MTS / COM + -Unterstützung (gibt es übrigens Konkurrenz für IIS?).
  • Tomcat ist ein WebContainer aka servletcontainer, implementiert es nur das Web Component Teil des riesigen Java EE API (im Grunde nur die javax.elund javax.servletTeile, die JSP / EL und Servlet API ). Das .NET-Äquivalent wäre immer noch IIS, jedoch ohne Unterstützung für MTS / COM +, E-Mail, Nachrichtenwarteschlange, Persistenz und mehr. Dh nur ein einfacher Webserver für reinen "Classic ASP".
BalusC
quelle
1
Ich mag diese Antwort, bin mir aber nicht sicher über den WPF ~ = Swing-Vergleich. Das sind die beiden Frameworks, die ich tatsächlich zwischen .Net und Java angesprochen habe, und ich bin mir nicht sicher, ob sie sich alle so ähnlich sind. Könnten Sie diesen Vergleich erweitern? (Danke übrigens für alle Links. Ich werde sie in den nächsten Stunden weiterverfolgen. Diese Antwort ist definitiv ein Kandidat für die Annahme. Wenn ich sie weiterverfolge, werde ich die Antworten in den Text der ursprünglichen Frage einfügen. )
Paul Sasik
7
Ich bin mir nicht sicher, inwieweit der Vergleich WPF ~ = Swing wahr ist. Ich weiß, dass es kein exakter Vergleich sein soll, aber der größte Teil von WPF ist seine deklarative Natur, daher würde ich WinForms ~ = Swing als besseren Vergleich betrachten.
Rafa Castaneda
Ich stimme Rafa zu. Obwohl Swing einige Muster zu erzwingen scheint, ist WinForms ziemlich weit offen.
Paul Sasik
Kleine Ungenauigkeit: Der RI von JAX-WS ist JAX-WS RI, nicht Metro. Metro = JAX-WS RI + WSIT.
Pascal Thivent
@Paul und @Rafa: WPF ist in der Tat mehr als nur eine Benutzeroberfläche. Ich habe die Antwort erweitert. @Pascal: Ich habe Metro van die Antwort entfernt.
BalusC
14

Hier ist eine Liste aus meiner eigenen Forschung und Follow-up zu den Antworten von BalusC, Rafa (et al.):

(Diese Liste wird langsam aktualisiert. Außerdem werden Links zu .NET-Technologien für Java-Benutzer bereitgestellt, die möglicherweise interessiert sind.)

Paul Sasik
quelle
Ich würde mich für .NET-Äquivalente für GWT, Maven2 / Nexus / Sonatype, JMX interessieren
David J. Liszewski
Nett. Ich werde sie der Liste hinzufügen.
Paul Sasik
@ DavidJ.Liszewski GWT ~ = WebSharper (aber dies ist eine ziemlich grobe Analogie, in der Vergangenheit hatte Microsoft keine Tools, die sich mit JavaScript kompilieren ließen); Maven2 ~ = MSBuild + NuGet; Sonatype = Sonatype Nexus oder eine Reihe anderer NuGet-Server-Implementierungen * JMX ~ = WMI (Windows Management Instrumentation)
DmytroL
6

JavaFX ist das grobe Äquivalent von Silverlight. Das ist alles was ich aus dieser Liste weiß ...

Dave Swersky
quelle
3

Die Haupttechnologien sind bereits abgedeckt, daher einige Peripherietechnologien:

  • TPL ~ = java.concurrent-Paket
  • F # ~ = Scala
  • IronPython / IronRuby ~ = Jython / JRuby
  • .Net Remoting ~ = RMI
  • MEF / System.AddIn ~ = OSGi / Jigsaw
Rafa Castaneda
quelle
In der Tat schrieb derselbe Typ, der Jython hergestellt hat, IronPython.
Gabe
2

Das Linq-Äquiv in der Java-Welt ist Quaere - http://quaere.codehaus.org/

Jon
quelle
Ich fand es allerdings etwas komisch. Schließungen werden zukünftige Implementierungen wirklich verändern ...
Jon
1
Werfen
Jon
Schöner Fund auch. Warum nicht als Antwort auf Upvotes posten? Du bekommst +1 von mir.
Paul Sasik
1

Wenn ich es richtig verstanden habe, werden Lambda-Ausdrücke in C # aus funktionalen Sprachen "ausgeliehen", und als solche gibt es in Java ( zumindest für den Moment ) kein direktes Äquivalent , aber LambdaJ bietet Ihnen in der Zwischenzeit etwas Ähnliches.

Esko
quelle
Schöner Fund. Es ist eine Art Plug-In von Drittanbietern (richtig?), Scheint aber die ähnliche Funktionalität wie .NET Lambdas zu bieten.
Paul Sasik
Es ist eine Bibliothek, kein Plugin. ... nun, ich denke die Semantik ist ziemlich gleich, aber trotzdem. Und ja, Java gibt es schon lange. Viele nützliche Dinge befinden sich in Bibliotheken und Frameworks von Drittanbietern anstelle von Java.
Esko