OVH Cloud OVH Cloud

Java de la plateforme Visual Studio

6 réponses
Avatar
Sylvain MALLEVAL
Salut,

J'ai développé une application en VB .NET. Jusque la tout va bien...

J'ai besoin de développé mon application sur MAC... Alors je me dit que
j'aurais dut la développer en JAVA .NET... Car d'après ce que je sais, java
est multiplateforme... Mais est ce que le JAVA .NET est bien le même que le
JAVA classique ???

BREF, mes questions sont:
si je développe mon appli en JAVA .NET, est ce que je pourrais la faire
tourner sur mac
kelk'un peut-il me donner un groupe de discussion sur JAVA en général
y'a t-il un groupe de discussion sur JAVA microsoft...
Y'a t-il une plateforme de développement style visual studio mais avec le
java classique (si le java .NET est particulier)


Voila, merci

Sylvain

PS: Tous les liens pouvant m'eclaircir sur JAVA et sa compatibilité MAC/PC
sont les bienvenue

6 réponses

Avatar
Patrick Philippot
Sylvain MALLEVAL wrote:
J'ai développé une application en VB .NET. Jusque la tout va bien...

J'ai besoin de développé mon application sur MAC... Alors je me dit
que j'aurais dut la développer en JAVA .NET... Car d'après ce que je
sais, java est multiplateforme... Mais est ce que le JAVA .NET est
bien le même que le JAVA classique ???

BREF, mes questions sont:
si je développe mon appli en JAVA .NET, est ce que je pourrais la
faire tourner sur mac
kelk'un peut-il me donner un groupe de discussion sur JAVA en général
y'a t-il un groupe de discussion sur JAVA microsoft...
Y'a t-il une plateforme de développement style visual studio mais
avec le java classique (si le java .NET est particulier)



Bonjour,

Je crains que vous ne fassiez quelques confusions :-) .

1. Il n'y a pas de Java .Net. Il y a un langage .Net nommé J# qui est
similaire à Java mais qui n'est pas Java. Il n'utilise pas les
bibliothèques Java mais la FCL de .Net. Notez que Microsoft, suite à son
arrangement avec Sun, n'a plus le droit de produire d'outils Java. A
partir de .Net, Microsoft n'intervient plus le moins du monde dans la
sphère Java (et personnellement, je trouve ça très bien).

2. La portabilité de .Net n'est pas liée au langage. Elle est liée à
l'existence d'une implémentation de la CLR (Common Language Runtime)
pour la plate-forme visée. Si cette implémentation existe pour la
plate-forme que vous visez, le programme sera portable qu'il ait été
écrit en C#, C++ Managé, VB .net, J#, Cobol .Net ou autre.

3. Microsoft ne fournit actuellement d'implémentations de la CLR que
pour les différentes versions de Windows. Une autre implémentation est
disponible: Mono. Ce projet issu du monde du libre, propose une
implémentation pour Windows, Linux et Mac OS X. C'est actuellement le
seul moyen de produire du code cross-platform en .Net. Voir:
http://www.mono-project.com/about/index.html .

Vous pouvez développer un projet Mono sous Windows avec Visual Studio ou
SharpDevelop ou Eclipse. Sachez néanmoins que cette implémentation en
est à sa version 1.0. Elle est stable mais incomplète et très mal
documentée pour le moment. Je ne la considère pas personnellement comme
un outil de production finalisé. Mais vous aurez probablement d'autres
opinions sur le sujet de la part d'autres intervenants.

Est-ce plus clair?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Patrick Philippot
PS: Et le cross-post n'était pas franchement nécessaire. Merci. :-)

Confucius a dit: "Le sage économise la bande passante ou subit les
augmentations de tarif et la baisse de qualité du service".

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Bruno Jouhier [MVP]
> Je crains que vous ne fassiez quelques confusions :-) .

1. Il n'y a pas de Java .Net. Il y a un langage .Net nommé J# qui est
similaire à Java mais qui n'est pas Java. Il n'utilise pas les
bibliothèques Java mais la FCL de .Net.



Là aussi il y a qques confusions:

Au niveau langage (syntaxe et sémantique associée), J# est compatible avec
Java 1.1.4, et on peut donc dire que J# est une implémentation de Java. J#
introduit un certain nombre d'extensions pour supporter le framework .NET
(ubyte, delegates, etc.) mais si vous n'utilisez pas ces extensions vous
pouvez très bien écrire du code portable qui compilera et fonctionnera à la
fois en J# et en Java.

J# inclut une bibliothèque Java. C'est une version très ancienne (JDK
1.1.4). J# n'oblige pas à développer autour du framework .NET (on peut
développer autour du JDK à condition de se restreindre à la version 1.1.4),
mais il le rend possible.

Ceci étant, le fait que J# soit basé sur une version archaique du JDK limite
fortement son intérêt. A mon avis, J# est surtout intéressant dans les
scénarios suivants:

* Portage d'applications Visual J++ vers .NET (car Visual J++ est lui aussi
limité au JDK 1.1.4)

* Partage de modules "intrinsèquement portables" entre Java et .NET. Par
"intrinsèquement portables", j'entends des modules qui ont peu de
dépendances vis à vis du système, par exemple des modules d'algorithmique ou
de calcul pur, ou bien des modules qui s'appuient sur des APIs qui ont été
portées de manière indépendante sur les 2 frameworks.

Bruno.

Notez que Microsoft, suite à son arrangement avec Sun, n'a plus le droit
de produire d'outils Java. A partir de .Net, Microsoft n'intervient plus
le moins du monde dans la sphère Java (et personnellement, je trouve ça
très bien).

2. La portabilité de .Net n'est pas liée au langage. Elle est liée à
l'existence d'une implémentation de la CLR (Common Language Runtime) pour
la plate-forme visée. Si cette implémentation existe pour la plate-forme
que vous visez, le programme sera portable qu'il ait été écrit en C#, C++
Managé, VB .net, J#, Cobol .Net ou autre.

3. Microsoft ne fournit actuellement d'implémentations de la CLR que pour
les différentes versions de Windows. Une autre implémentation est
disponible: Mono. Ce projet issu du monde du libre, propose une
implémentation pour Windows, Linux et Mac OS X. C'est actuellement le seul
moyen de produire du code cross-platform en .Net. Voir:
http://www.mono-project.com/about/index.html .

Vous pouvez développer un projet Mono sous Windows avec Visual Studio ou
SharpDevelop ou Eclipse. Sachez néanmoins que cette implémentation en est
à sa version 1.0. Elle est stable mais incomplète et très mal documentée
pour le moment. Je ne la considère pas personnellement comme un outil de
production finalisé. Mais vous aurez probablement d'autres opinions sur le
sujet de la part d'autres intervenants.

Est-ce plus clair?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr



Avatar
Bruno Jouhier [MVP]
"Patrick Philippot" a écrit dans le
message de news:
Bruno Jouhier [MVP] wrote:
Là aussi il y a qques confusions:



Chacun son tour :-)


Au niveau langage (syntaxe et sémantique associée), J# est compatible
avec Java 1.1.4, et on peut donc dire que J# est une implémentation
de Java. J# introduit un certain nombre d'extensions pour supporter
le framework .NET (ubyte, delegates, etc.) mais si vous n'utilisez
pas ces extensions vous pouvez très bien écrire du code portable qui
compilera et fonctionnera à la fois en J# et en Java.

J# inclut une bibliothèque Java. C'est une version très ancienne (JDK
1.1.4). J# n'oblige pas à développer autour du framework .NET (on peut
développer autour du JDK à condition de se restreindre à la version
1.1.4), mais il le rend possible.



Bonjour Bruno,

Merci pour ces précisions utiles. Cependant, J# est essentiellement là
pour faciliter la migration des développeurs Java vers .Net.



C'est le discours officiel de Microsoft, mais je ne suis pas sûr que ça
marche en pratique. J'ai l'impression que la plupart des développeurs Java
vont en fait directement vers C# plutôt que vers J# pour passer dans le
monde .NET. La syntaxe C# est tellement proche de celle de Java (d'autant
que pas mal de Javaistes ont un passé C ou C++), et ça évite d'avoir à
s'embarasser de tous les compromis qu'on doit faire en J#. En J#, on n'est
ni vraiment Java car le JDK est trop ancien, ni vraiment .NET car on est
limité par rapport à C# (par ex, en VS 2003, on ne peut pas définir d'enum
ni d'attributs en J#), et c'est assez frustrant.

Je pense que le véritable rôle de J#, c'est de permettre de passer de Visual
J++ à .NET. Ou bien alors (mais ça demande pas mal de discipline) de
partager du code Java entre des projets pur Java et des projets .NET.


Pas pour les encourager à développer "comme avant" (similaire au dilemne
VB6 vs. VB .Net). Je le ressens exactement comme le produit NutCracker qui
permet de faire de l'Unix sous NT en attendant d'avoir assimilé les
spécificités de NT et au-dessus. Si je développe des composants J# basés
sur le JDK, je ne facilite pas leur réutilisation (même si c'est possible)
depuis un autre langage .Net en obligeant le reste de l'application à
passer par une couche supplémentaire de compatibilité Java (bjlib.dll?).



Tout à fait. Une fois qu'on a mis le doigt dans l'engrenage J# et qu'on
commence à utiliser ces composants avec les autres langages .NET, les
classes du JDK deviennent un obstacle. On en vient à les éliminer et à tout
développer autour du framework .NET, et on ne fait plus vraiment du Java.


Par rapport à la question posée, j'ai surtout tenu à lever le malentendu
évident.



Je pense qu'on est assez d'accord sur le fond. Je trouvais juste que la
présentation "J# n'est pas du Java" était un peu rapide. En théorie, J#,
c'est du Java (ancien, mais du Java). En pratique, c'est beaucoup moins
vrai!

Bruno.


--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr



Avatar
Patrick Philippot
Bruno Jouhier [MVP] wrote:
Là aussi il y a qques confusions:



Chacun son tour :-)


Au niveau langage (syntaxe et sémantique associée), J# est compatible
avec Java 1.1.4, et on peut donc dire que J# est une implémentation
de Java. J# introduit un certain nombre d'extensions pour supporter
le framework .NET (ubyte, delegates, etc.) mais si vous n'utilisez
pas ces extensions vous pouvez très bien écrire du code portable qui
compilera et fonctionnera à la fois en J# et en Java.

J# inclut une bibliothèque Java. C'est une version très ancienne (JDK
1.1.4). J# n'oblige pas à développer autour du framework .NET (on peut
développer autour du JDK à condition de se restreindre à la version
1.1.4), mais il le rend possible.



Bonjour Bruno,

Merci pour ces précisions utiles. Cependant, J# est essentiellement là
pour faciliter la migration des développeurs Java vers .Net. Pas pour
les encourager à développer "comme avant" (similaire au dilemne VB6 vs.
VB .Net). Je le ressens exactement comme le produit NutCracker qui
permet de faire de l'Unix sous NT en attendant d'avoir assimilé les
spécificités de NT et au-dessus. Si je développe des composants J# basés
sur le JDK, je ne facilite pas leur réutilisation (même si c'est
possible) depuis un autre langage .Net en obligeant le reste de
l'application à passer par une couche supplémentaire de compatibilité
Java (bjlib.dll?).

Par rapport à la question posée, j'ai surtout tenu à lever le malentendu
évident.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Nicole Schenk
Sylvain MALLEVAL wrote:

Salut,

J'ai d