Déménagement from.NET vers Java [dupliquer]


Cette question a déjà des réponses ici: Fermé il y a 10 ans.

Duplicata Possible:
Conseils pour passer de C# à Java?

En tant que développeur. NET assez expérimenté (depuis 1.0), j'en ai vu pas mal des emplois intéressants dans la région qui sont principalement axés sur Java EE, ESB, WebSphere, JSP, etc. Maintenant, je connais assez bien la plupart des "techs". NET, mais Java est un mystère. J'ai fait un peu de programmation J2SE à l'Université (ish 2003), mais rien depuis.

Quelqu'un a-t-il fait la même transition (ou l'inverse) et pourrait-il partager des informations, des mises en garde, n'importe quoi vraiment! Dans quelle mesure les compétences. NET et Java sont-elles comparables et avec quelle facilité peut-on faire la transition?

Author: Community, 2010-08-19

5 answers

J'ai rencontré le même problème dans l'autre sens: Java EE to. NET.

Je n'ai pas trop de problèmes avec le mappage des constructions de langage entre les deux langues. Il n'est pas difficile de comprendre l'accès à la base de données relationnelle dans une langue ou dans l'autre. Les boucles sont des boucles, ifs ifs, les enfants. Pas de soucis là-bas.

J'ai lu Jon Skeets "C# En profondeur", j'ai donc apprécié certaines des belles choses qui ont été ajoutées à C # qui vont au-delà de Java: LINQ, closures, les délégués, etc.

Mes problèmes avaient plus à voir avec les autres détails.

Visual Studio est un mystère pour moi. Je suis habitué à IntelliJ. ReSharper aide. Mais comme tout autreE, jusqu'à ce que vous vous familiarisiez avec lui, vous allez trébucher, essayer de mapper quelque chose que vous savez bien faire sur un autre système au nouveau. Visual Studio Express ne semble pas être la même chose.

Je ne connais pas non plus l'organisation, le packaging et le déploiement d'applications. Je suis dans l'obscurité sur les modules. NET, le déploiement vers IIS au lieu d'un serveur d'applications Java EE comme WebLogic, etc.

Utiliser JUnit et TestNG dans mes projets Java est une seconde nature. Je n'ai pas le même niveau de confort avec NUnit.

Je ne l'ai tout simplement pas sur le bout des doigts. C'est comme une personne dans un pays étranger avec un guide de la langue: "Comment puis-je le dire?"Je ne parle tout simplement pas couramment .NET.

Je pourrais vraiment utiliser un bon projet et un appariement d'un mois avec un guide expérimenté pour me faire passer la bosse. Mais ce n'est pas mon rôle sur les projets, donc je suis coincé.

Je suis plus à l'aise de prendre ce même chemin avec Python. J'ai PyCharm de JetBrains, donc l'E est un non-problème. Les modules Python sont aussi abondants et faciles à utiliser que les éléments open source tiers auxquels je suis habitué. J'ai un super livre "Core Python" qui me guide à travers. Et plus j'utilise la langue, plus je l'aime. J'ai les mêmes problèmes d'emballage et de déploiement, mais je suis plus confiant que je vais les résoudre moi-même avec Python qu'avec. NET.

 8
Author: duffymo, 2010-08-19 11:27:08

À mon avis, la différence entre Java et.NET (C#) n'est pas si grande, du point de vue du langage. J'utilise moi-même fréquemment les deux bien que j'utilise plus Java que C#.

Le problème est plus la plate-forme ci-dessous et les bibliothèques de classes qui ont une structure différente et fournissent parfois des concepts différents pour la même chose. La chose principale dans mon sentiment est ici que. NET est plus piloté par les bibliothèques groupées/fournisseurs directement à partir de Microsoft alors que sur la plate-forme Java la plupart les bibliothèques et les frameworks proviennent de la plate-forme-des sources externes.

Donc, la meilleure chose à cet égard est de regarder les problèmes fréquents que vous avez résolus dans.NET et d'essayer de les résoudre (en partie) en Java pour avoir une idée des bibliothèques et des frameworks qui y sont utilisés.

Une autre chose qui est différente entre les plates-formes pourrait être le concept de serveur d'applications dans un environnement Java EE, car je pense que.NET n'a pas de concept équivalent aux applications hôtes.

Sidenote concernant l'E

En particulier en ce qui concerne le support de Refactoring, l'outillage Java que vous trouverez dans Eclipse, IntelliJ, NetBeans est beaucoup plus riche que dans Visual Studio prêt à l'emploi. Bien que ReSharper semble ajouter une grande partie des fonctionnalités manquantes à Visual Studio.

 4
Author: Johannes Wachter, 2010-08-19 12:14:03

Tant que vous restez à l'écart des interactions complexes du classloader, la langue et la bibliothèque standard devraient se sentir à la maison, ce qui peut être intimidant pour quelqu'un qui vient de Microsoft shops, c'est la quantité écrasante de bibliothèques et d'options middleware, alors que le langage est simple, l'écosystème est profond, très profond, et

Je me concentrerais sur les technologies "standard" dans le J2EE tutorial pour la plupart des magasins d'entreprise, mais si jamais vous obtenez responsable technique sur un projet, soyez prêt à passer beaucoup de temps à rechercher l'ensemble optimal d'outils pour votre style.

 2
Author: Josselin Pujo, 2010-08-19 11:26:04

J'ai récemment fait cette transition. Comme vous, j'ai programmé en utilisant. NET depuis 1.0. Il m'a fallu quelques semaines pour vraiment me mettre à l'aise - mais finalement, en venant de C#, ce n'était pas très difficile. La chose la plus déroutante au départ était de passer du paradigme de gestion des événements basé sur les délégués.NET au paradigme de gestion des événements basé sur l'interface de Java. Vous serez amende.

En ce qui concerne ID - Je préfère toujours Visual Studio à Eclipse, mais tout le monde aura sa propre opinion à ce sujet. Eclipse a une tonne de fonctionnalités et est rediculously extensible, mais je suis plus préoccupé par les fonctionnalités de base que j'utilise tous les jours. Je n'ai jamais réalisé combien de code j'ai écrit en utilisant la touche TAB jusqu'à ce que je passe de Visual Studio à Eclipse. L'auto-complétion rapide me manque vraiment. S'il existe un moyen d'activer une fonctionnalité similaire dans Eclipse (au lieu de taper CTRL-ESPACE -> ENTRÉE), faites-le moi savoir. :)

Bonne chance! :)

 1
Author: bporter, 2010-08-19 12:07:43

Je vous suggère de commencer par un petit projet en utilisant une architecture similaire à.NET comme JSP qui est comme ASP ou JSF-qui est similaire aux visages de serveur Java. Ensuite, vous n'avez pas besoin de vous soucier autant du concept, vous obtiendrez plus dans les différences de langage et ID, le déploiement et ces choses. Ensuite, vous pouvez opter pour une application J2EE appropriée.

 0
Author: Ehsan, 2010-08-19 13:08:31