Ich habe die Eigenschaften von Java und .NET verglichen

Präambel

Mit diesem Artikel soll Java nicht mit ".NET" verglichen werden, um einen technologischen Unterschied zu bewirken. In der Ingenieurgemeinschaft gibt es oft einen religiösen Krieg gegen die Sprache. Java-Ingenieure beschweren sich, dass .NET nur unter Windows läuft, und .NET-Ingenieure beschweren sich, dass Java laut ist. Ich denke, dass ein solcher Konflikt unproduktiv und bedeutungslos ist.

Wir hoffen, dass Ingenieure, die nur eines erlebt haben, durch das Schreiben dieses Artikels die technischen Merkmale des anderen verstehen können, indem sie sowohl Sprachsysteme als auch Webframeworks und Bereitstellungsmethoden vergleichen.

Entwicklungswerkzeuge

Kou, wenn du das gut machen willst, wirst du definitiv das Schiff benutzen. (Wenn ein Handwerker gute Arbeit leisten möchte, schärfen Sie zuerst die Werkzeuge).

Zunächst erkläre ich die Werkzeuge, die für die Entwicklung unverzichtbar sind.

Rahmen Werkzeug Kommentar
.NET Visual Studio, Visual Studio Code, Rider Visual Studio, die offizielle IDE von Microsoft.NETKompatibel mit allen Plattformen.
Java Intellij, Eclipse, Visual Studio Code Codeausführung und Debugging-Rolle, abhängig vom JDK
Java Mavan, Gradle Die Rolle der Vorlagenverwaltung und -verpackung. Kommt auf JDK an
Java JDK Hat die Rolle des Kompilierens und Ausführens (Laufzeit)

Die Entwicklung von .NET kann durch Installation von Visual Studio (im Folgenden als VS abgekürzt) gestartet werden. Sie können nicht nur die IDE für Java installieren, sondern müssen auch JDK und Maven installieren und konfigurieren. Es gibt eine IDE (Intellij), die JDK und Maven automatisch installiert. Es ist jedoch besser, sie nach Möglichkeit selbst zu installieren und zu konfigurieren. Andernfalls betreten Sie eine Mine, die Sie nicht verstehen.

Wenn Sie nur sagen, wie einfach es ist, eine Umgebung zu erstellen, sind Sie in .NET besser dran. Sie müssen nur nacheinander klicken, ohne Ihren Kopf zu benutzen. Java muss zuerst die Eigenschaften und Verantwortlichkeiten des Tools verstehen und konfigurieren.

Für Anfänger scheint die erste Barriere für Java etwas eng zu sein. Java hat jedoch Schwierigkeiten, die Umgebung aufzubauen, sodass Sie die Details des Projekts verstehen können.

Nun, beide können mit Visual Studio Code (im Folgenden als Vscode abgekürzt) entwickelt werden. Daher wird Vscode für die Umgebungskonstruktion empfohlen, um die Technologie systematisch zu verstehen.

Als nächstes werde ich die verschiedenen Werkzeuge etwas detaillierter erklären.

Verantwortlichkeiten .NET Java Kommentar
Projektmanagement VS,Vscode,Rider Intellij, Eclipse, Vscode Es ist nicht viel anders, wenn Sie Vscode verwenden, aber es ist etwas effizienter, Ideen und Fahrer gegen eine Gebühr zu kaufen. Finsternis~~Müll~~
Vorlagenverwaltung IDE+MSBuild or IDE+SDK IDE+Maven or IDE+Gradle .NETDas Projekt ist sln+Besteht aus einer csproj-Datei. Java ist pom.Besteht aus einer XML-Datei.
Kompilieren / Debuggen IDE+MSBuild+SDK or IDE+SDK IDE+Maven+SDK or IDE+Gradle+SDK .NETDer Compiler ist unabhängig. Der Java-Compiler ist in das JDK integriert und das Maven-Projekt ist pom.Es besteht aus XML, aber der Compiler ist POM.Maven muss kompiliert werden, da er XML nicht erkennt
Paketverwaltung Nuget Mavan, Gradle Nuget ist einfach. Javas Mavan und Gradle sind flexibel und leistungsstark.
Verpacken und bereitstellen IDE+MSBuild+SDK or IDE+SDK IDE+Maven+SDK or IDE+Gradle+SDK .NETDer Compiler ist unabhängig. Der Java-Compiler ist in das JDK integriert und das Maven-Projekt ist pom.Es besteht aus XML, aber der Compiler ist POM.Maven muss verpacken, da es XML nicht erkennt.

Die umfangreichen Vorlagen des .NET-SDK sind einfach und benutzerfreundlich. Maven in Java ist flexibel und leistungsstark, aber die Verwaltung mehrerer Projekte ist unpraktischer als ".NET".

Dieser Unterschied ergibt sich aus dem Compiler und der Vorlage.

Java-Projekte haben keine offiziellen Standardvorlagen, daher organisiert die IDE nur die Projektordner. Sie können jedes Verzeichnis als SourceRoot oder ResourceRoot selbst auswählen, was sehr flexibel ist. Die Flexibilität hat jedoch auch den Nachteil, dass das Projektmanagement bei der Teamentwicklung stärker belastet wird. Dank Maven und Gradle ist die Chaos-Ära von Java vorbei.

Sprachmerkmale

Einstufung .NET Java
Klassenstruktur namespace :Der Namensraum muss nicht mit der tatsächlichen Verzeichnisstruktur übereinstimmen Package :Namensraum und Verzeichnis müssen übereinstimmen
Klasse CS-Datei:Es ist in Ordnung, auch wenn der Klassenname und der Dateiname nicht übereinstimmen Java-Datei:Es ist in Ordnung, wenn Klassenname und Dateiname nicht übereinstimmen, aber nur eine öffentliche Klasse in einer Klasse definiert werden kann
Kompilierte Ausgabe .dll, .exeDatei .jar, .warDatei

Web-Framework

Das offizielle Microsoft-Webframework für ".NET" ist der De-facto-Standard. Java hat eine offizielle Servlet-API, aber der De-facto-Standard ist Spring. Ich möchte mit dem MVC-Framework vergleichen.

Funktion .NET Java Kommentar
Hauptfunktion ASP.NET Servlet
MVC-Framework ASP.NET MVC Spring MVC
Template Engine Razor Thymeleaf Razor ist intuitiv und einfach zu bedienen, Spring bietet keine Template-Engine und Sie können Thymeleaf von Maven verwenden
Datenpersistenzschicht Entity Framework Hibernate or MyBatis EF ist leicht und leicht zu erlernen. Der Ruhezustand in Java ist einfach, aber eigenartig. MyBatis muss SQL schreiben.

Das .NET-Webframework bietet von Anfang an eine Vorlagen-Engine und eine Datenpersistenzschicht, sodass es leicht zu verstehen und leicht zu erlernen ist. Das Java-Webframework bietet eine Vielzahl von Optionen für die Template-Engine und die Datenpersistenzschicht und kann je nach den Merkmalen des Projekts flexibel konfiguriert werden. Der Ruhezustand ist in Europa und den USA für die Datenpersistenzschicht von Java beliebt, und in Asien gibt es viele MyBatis-Benutzer. (* Laut Google Drain-Forschung)

Wenn es sich um eine Datenpersistenzschicht handelt, ist das Entity Framework ".NET" komfortabel zu verwenden und nutzt Hibernate und MyBatis.

Bereitstellen

Dank .NET Core ist .NET endlich frei von Windows und ich freue mich sehr über mehr Auswahlmöglichkeiten. Um ehrlich zu sein, gibt es keinen großen Unterschied zwischen .NET und Java, wenn es um die Bereitstellung geht.

Verantwortlichkeiten .NET Java
OS Window, Linux Windows, Linux
Webserver IIS, Kestrel Tomcat

Da IIS eine grafische Benutzeroberfläche ist, kann es problemlos bereitgestellt werden, hat jedoch den Nachteil, dass es nur unter Windows verwendet werden kann.

Zusammenfassung

Sowohl Java als auch .NET haben ihre eigenen Vorzüge und können nicht verglichen werden.

Frameworks sind nur ein Mittel, und das Verständnis der Eigenschaften beider Frameworks hilft Ihnen, die besten Entscheidungen zu treffen, um Ihre Ziele zu erreichen.

Java hat jedoch einen überwältigenden Vorteil in Bezug auf das Ökosystem. Die Anzahl der Committer ist auch nicht das Verhältnis von ".NET". Ich komme aus dem Feld ".NET", bin also definitiv mit ".NET" verbunden. Wenn ein Neuling jedoch fragt: "Was soll ich lernen, NET oder Java?", Empfehle ich Java: "Wenn Sie sich nicht für Windows interessieren, ist Java besser."

Schließlich ist die Technologie vorübergehend und das Ökosystem ist ewig. Deshalb ist PHP immer noch aktiv.

Recommended Posts

Ich habe die Eigenschaften von Java und .NET verglichen
Ich habe die Typen und Grundlagen von Java-Ausnahmen zusammengefasst
Ich habe Java und Rubys FizzBuzz verglichen.
Ich habe das Verhalten von Java Scanner und .nextLine () nicht wirklich verstanden.
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
[Java] Ich habe über die Vorzüge und Verwendungen von "Schnittstelle" nachgedacht.
[Tag: 5] Ich habe die Grundlagen von Java zusammengefasst
Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
[Java] Der verwirrende Teil von String und StringBuilder
Ich habe versucht, die Grammatik von R und Java zu übersetzen [Von Zeit zu Zeit aktualisiert]
Probieren Sie Progate Free Edition [Java I]
Ich habe die Daten der Reise (Tagebuchanwendung) in Java erhalten und versucht, sie # 001 zu visualisieren
Der Vergleich von enum ist == und gleich ist gut [Java]
Den aktuellen Status von Java organisieren und die Zukunft betrachten
Java-Sprache aus der Sicht von Kotlin und C #
[Java] Ich habe versucht, die Kombination zu implementieren.
Vor- und Nachteile von Java
Ich habe den Konstruktor (Java) studiert.
[Hinweis] Java Ausgabe der Summe von ungeraden und geraden Elementen
Befehl zum Überprüfen der Anzahl und des Status von Java-Threads
Java-Anfänger fassten das Verhalten von Array und ArrayList kurz zusammen
Ich habe JAX-RS ausprobiert und mir das Verfahren notiert
Zusammenfassung der von der Spliterator-Merkmalsmethode #java zurückgegebenen Werte
Was soll ich nach Januar 2019 in Bezug auf die Ausgabe der Java-Zahlung und die Ausgabe des Java 8-Endes des Supports tun?
Ich habe versucht, Methoden mit ähnlichen Funktionen für den Unterschied zwischen Java-Array und ArrayList zu vergleichen und ihnen zu entsprechen.
[Java] Löschen Sie die Elemente von List
Über Biocontainer fastqc und Java
[Java Edition] Geschichte der Serialisierung
Ich habe die Quelle von Integer gelesen
Dies und das von JDK
Ich habe die Quelle von Long gelesen
Ich habe das Java-Framework "Quarkus" ausprobiert.
Ich habe die Quelle von Short gelesen
Ich habe die Quelle von Byte gelesen
Unterschiede zwischen Java und .NET Framework
Ich habe die Quelle von String gelesen
Der Ursprung von Java-Lambda-Ausdrücken
Ich habe versucht, Google HttpClient von Java zu verwenden
[Java] Verschiedene Zusammenfassungen an die Leiter von Klassen und Mitgliedern
[Java] Ordnen Sie die Daten des vergangenen Montags und Sonntags der Reihe nach an
Ich möchte mit Kotlin und Java zum vorherigen Bildschirm zurückkehren!
Ich habe den Eingabe- / Ausgabetyp von Java Lambda ~ Map Edition ~ ausprobiert
Mechanismus und Merkmale der in Java häufig verwendeten Collection-Implementierungsklasse
Lesen Sie die ersten 4 Bytes der Java-Klassendatei und geben Sie CAFEBABE aus
Vom jungen Java (3 Jahre) bis zu Node.js (4 Jahre). Und der Eindruck, nach Java zurückzukehren
Seit ich Oracle Java Bronze bestanden habe, habe ich die Umrisse des Tests zusammengefasst.
Holen Sie sich das Ergebnis von POST in Java
Eine Sammlung von Phrasen, die das "unterschiedliche Gefühl" von Java und JavaScript beeindruckt
Durch die Überprüfung der Funktionsweise von Java unter Linux konnte ich die Kompilierung und Hierarchie verstehen.
Überprüfen Sie den Inhalt des Java-Zertifikatspeichers
Untersuchen Sie die Speichernutzung von Java-Elementen
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
[Java] Ermittelt den Tag eines bestimmten Tages
Nach 3 Monaten Java- und Frühlingstraining
Anmerkung: [Java] Überprüfen Sie den Inhalt des Verzeichnisses
Ich habe das neue Yuan-Problem in Java ausprobiert
Ich habe versucht, die wichtigsten Punkte des gRPC-Designs und der Entwicklung zusammenzufassen