Le but de la rédaction de cet article n'est pas de comparer Java avec «.NET» pour faire une différence technologique. Il y a souvent une guerre religieuse contre la langue dans la communauté des ingénieurs. Les ingénieurs Java se plaignent que «.NET» ne fonctionne que sur Windows, et les ingénieurs «.NET» se plaignent que Java est bruyant. Je pense qu'un tel conflit est improductif et dénué de sens.
Nous espérons qu'en écrivant cet article, les ingénieurs qui n'en ont expérimenté que l'un pourront comprendre les caractéristiques techniques de l'autre en comparant à la fois les systèmes de langage, les frameworks Web et les méthodes de déploiement.
Kou, si vous voulez bien faire cela, vous utiliserez certainement le navire. (Si un artisan veut faire du bon travail, affûtez d'abord les outils).
Dans un premier temps, je vais vous expliquer les outils indispensables au développement.
Cadre | outil | Commentaire |
---|---|---|
.NET |
Visual Studio, Visual Studio Code, Rider | Visual Studio, l'IDE officiel de Microsoft.NET Compatible avec toutes les plateformes. |
Java | Intellij, Eclipse, Visual Studio Code | Rôle d'exécution de code et de débogage, en fonction du JDK |
Java | Mavan, Gradle | Le rôle de la gestion des modèles et du packaging. Dépend de JDK |
Java | JDK | A le rôle de compiler et d'exécuter (Runtime) |
Le développement de .NET
peut être démarré en installant Visual Studio (ci-après abrégé en VS). Vous ne pouvez pas simplement installer l'EDI pour Java, vous devez installer et configurer JDK et Maven. Il existe un IDE (Intellij) qui installe automatiquement le JDK et Maven, mais il est préférable de l'installer et de le configurer vous-même si possible. Sinon, vous marcherez sur une mine que vous ne comprenez pas.
Si vous dites simplement la facilité de création d'un environnement, vous serez mieux dans .NET
. Il vous suffit de cliquer l'un après l'autre sans utiliser votre tête. Java doit d'abord comprendre et configurer les caractéristiques et les responsabilités de l'outil.
Pour les débutants, la première barrière à Java peut sembler un peu étroite. Cependant, Java a du mal à créer l'environnement, vous pouvez donc comprendre les détails du projet.
Eh bien, les deux peuvent être développés à l'aide de Visual Studio Code (ci-après abrégé en Vscode), donc Vscode est recommandé pour la construction de l'environnement dans le but de comprendre systématiquement la technologie.
Ensuite, j'expliquerai les différents outils un peu plus en détail.
Responsabilités | .NET |
Java | Commentaire |
---|---|---|---|
gestion de projet | VS,Vscode,Rider | Intellij, Eclipse, Vscode | Ce n'est pas très différent si vous utilisez Vscode, mais il est un peu plus efficace d'acheter des idées et des cavaliers moyennant des frais. Éclipse~~des ordures~~ |
Gestion des modèles | IDE+MSBuild or IDE+SDK | IDE+Maven or IDE+Gradle | .NET Le projet est sln+Se compose d'un fichier csproj. Java est pom.Se compose d'un fichier xml. |
Compiler / déboguer | IDE+MSBuild+SDK or IDE+SDK | IDE+Maven+SDK or IDE+Gradle+SDK | .NET Le compilateur est indépendant. Le compilateur Java est intégré au JDK et le projet Maven est pom.Il se compose de xml, mais le compilateur est pom.Maven doit compiler car il ne reconnaît pas xml |
Gestion des packages | Nuget | Mavan, Gradle | Nuget est facile. Java Mavan et Gradle sont flexibles et puissants. |
Emballage et déploiement | IDE+MSBuild+SDK or IDE+SDK | IDE+Maven+SDK or IDE+Gradle+SDK | .NET Le compilateur est indépendant. Le compilateur Java est intégré au JDK et le projet Maven est pom.Il se compose de xml, mais le compilateur est pom.Maven est obligé de créer un package car il ne reconnaît pas le XML. |
Les modèles riches fournis par le SDK .NET
sont simples et faciles à utiliser. Maven en Java est flexible et puissant, mais gérer plusieurs projets semble plus gênant que «.NET».
Cette différence vient du compilateur et du modèle.
Les projets Java n'ont pas de modèles standard officiels, donc l'EDI organise uniquement les dossiers de projet. Vous pouvez choisir n'importe quel répertoire comme SourceRoot ou ResourceRoot par vous-même, ce qui est très flexible. Cependant, en raison de sa flexibilité, il a également l'inconvénient d'augmenter la charge de la gestion de projet dans le développement d'équipe. Eh bien, grâce à Maven et Gradle, l'ère du chaos de Java est terminée.
Classification | .NET |
Java |
---|---|---|
Structure de classe | namespace :L'espace de dénomination ne doit pas nécessairement correspondre à la structure de répertoire réelle | Package :L'espace de dénomination et le répertoire doivent correspondre |
classe | fichier cs:C'est OK même si le nom de la classe et le nom du fichier ne correspondent pas | fichier java:Ce n'est pas grave si le nom de la classe et le nom du fichier ne correspondent pas, mais une seule classe publique peut être définie dans une classe |
Sortie compilée | .dll , .exe Fichier |
.jar , .war Fichier |
Le framework Web officiel de Microsoft pour «.NET» est le standard de facto. Java a une API Servlet officielle, mais le standard de facto est Spring. Je voudrais comparer avec le framework MVC.
une fonction | .NET |
Java | Commentaire |
---|---|---|---|
Fonction principale | ASP.NET |
Servlet | |
Cadre MVC | ASP.NET MVC |
Spring MVC | |
Moteur de modèle | Razor | Thymeleaf | Razor est intuitif et facile à utiliser, Spring ne fournit pas de moteur de modèle et vous pouvez mettre Thymeleaf de Maven |
Couche de persistance des données | Entity Framework | Hibernate or MyBatis | EF est facile et facile à apprendre. Hibernate en Java est facile mais décalé, MyBatis a besoin d'écrire du SQL. |
Le framework Web .NET
fournit un moteur de modèle et une couche de persistance des données dès le début, il est donc facile à comprendre et à apprendre. Le cadre Web de Java offre de nombreux choix pour le moteur de modèle et la couche de persistance des données, et peut être configuré de manière flexible en fonction des caractéristiques du projet. Hibernate est populaire en Europe et aux États-Unis pour la couche de persistance des données de Java, et il existe de nombreux utilisateurs de MyBatis en Asie. (* Selon la recherche Google Drain)
Personnellement, s'il s'agit d'une couche de persistance des données, l'Entity Framework .NET
est confortable à utiliser, tirant parti d'Hibernate et de MyBatis.
Grâce à .NET Core
, .NET
est enfin libre de la malédiction de Windows uniquement, et je suis très heureux d'avoir plus de choix. Pour être honnête, il n'y a pas de grande différence entre .NET
et Java en matière de déploiement.
Responsabilités | .NET |
Java |
---|---|---|
OS | Window, Linux | Windows, Linux |
serveur Web | IIS, Kestrel | Tomcat |
Comme IIS est une interface graphique, il peut être facilement déployé, mais il présente l'inconvénient de ne pouvoir être utilisé que sous Windows.
Java et «.NET» ont tous deux leurs propres mérites et ne peuvent être comparés.
Les cadres ne sont qu'un moyen et la compréhension des caractéristiques des deux cadres vous aidera à faire les meilleurs choix pour atteindre vos objectifs.
Cependant, Java a un avantage écrasant en termes d'écosystème. Le nombre de committers n'est pas non plus le rapport de «.NET».
Je viens du champ .NET
, donc je suis définitivement attaché à .NET
. Cependant, si un nouveau venu demande: «Que devrais-je étudier,« NET »ou Java?», Je recommande Java, «Si vous ne vous souciez pas de Windows, Java est meilleur.»
Après tout, la technologie est temporaire et l'écosystème est éternel. C'est pourquoi PHP est toujours actif.
Recommended Posts