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.
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.NET Kompatibel 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 | .NET Das 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 | .NET Der 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 | .NET Der 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.
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 , .exe Datei |
.jar , .war Datei |
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.
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.
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