C#, questions générales

Voila, j’ai téléchargé le SDK cette semaine et je me posait plusieurs questions sur ce langage, j’aimerai avoir votre opinion car plusieurs d’entre vous on déjà franchis le pas.

Voila, j’ai eu envie d’installer le C# car il ressemble exactement à du java et j’en avais marre d’utiliser la machine virtuelle. Mais voila, en fait le C# ne marche que si on a installer .NET d’après ce que j’ai vu, y’a pas moyen de faire tourner les applis sur n’importe quelle machine en copiant quelques DLL par exemple ?

Ensuite, est ce que le Java et le C# sont-ils vraiment identiques, ou y a-t-il des petites différences ? (autre que la vitesse car le C# doit etre bcp plus rapide que le java je suppose)

Dernière questions, y’a-t-il d’autres compilateurs C# que celui de grosoft ou alors billou a marqué chasse gardé sur cette technologie ?

Si vous avez d’autres infos, je suis preneur.

D’autres adresses utiles…
Un ide pour c#: http://www.icsharpcode.net/OpenSource/SD/Default.aspx

des cours plutôt bien foutus:
http://www.programmationworld.com/site/

alors oui moi je veux faire du C#…

[quote]mais j’y connais rien, d’ou toute les questions qui vont suivre:

  • je voudrais des tutoriaux
  • des exemples d’applications (autre que l’applie de use-writer)
  • un outil pour programmer ( j’ai telecharger eclipse, avec le plug in C#, mais ca marche pas) et ne me dite pas le bloc note, ca marche, mais c’est relou[/quote]

Comme outil, fait une recherche dans les anciens posts d’utilitaire sur les éditeurs, sinon moi j’utilise Jext, il reconnait une 30aine de syntaxe, il est libre mais en Java, http:www.jext.org
Pour les tutoriaux, comme dit Glop, la documentation de Microsoft donné avec le SDK est très bien fourni, mais c’est le gros bordel pour ceux qui ne sont pas habitué. Sinon une recherche google est hop : http:www.csharpfr.com

Voila

euh cherche un peu dans les autres threads de « Segmentation Fault » tu trouveras tout ce qu’il te faut pour commencer. Après, pour trouver des sources, tu vas sur Google et tu tapes « sources c# » :wink:

personne n’est capable de me repondre???

alors oui moi je veux faire du C#…

mais j’y connais rien, d’ou toute les questions qui vont suivre:

  • je voudrais des tutoriaux
  • des exemples d’applications (autre que l’applie de use-writer)
  • un outil pour programmer ( j’ai telecharger eclipse, avec le plug in C#, mais ca marche pas) et ne me dite pas le bloc note, ca marche, mais c’est relou

Moi je trouve le fait qu’elle soit trufee d’exemple un apport incomparable a la doc J2EE. J’ai jamais utilise la doc C# ailleurs que dans VS.Net alors j’ai pas ces problemes de navigation dans des arbres dont tu parles :P. C’est meme plutot nikel. Une page sur la classe en general, son but et son utilisation avec exemples a la clef, une page sur les membres et le fonctions avec apres une sous page de doc pour chacune d’elle et si besoin un exemple de plus. Je trouve ca assez propre meme si ca change pas mal de JavaDoc. Enfin comme je dis j’ai jamais navigue dedans sans VS.Net pour acceder a ce que je cherche donc je parle que sur ce que je connais.

Effectivment, la meilleur facon pour comparer, c’est de tester soi-même. Pour l’instant, je ne connais pas encore les besoins des entreprises pour faire une vrai comparaison. Je teste ca dans mon coin pour faire des petites applications.

Plusieurs remarques en vrac a ce que vous avez dit :

universal_tonton, tu n’as pas des URL pour les autres JDK ? J’aimerai bien faire quelques testes, et aussi une URL pour le pack C# si tu as. Sinon je ferai une recherche par moi même.

Pour Swing, c’est vrai qu’il est lourd mais il tourne très bien sur un Athlon 1,4Ghz donc ca ne me dérange pas trop et je le trouve agréable graphiquement avec le skin KLNF.

Une dernière chose, je trouve la doc C# vraiment mal foutu. Déjà ces emmerdeurs de microsoft (dsl pour Glop ms il fallait que ca sorte) m’oblige à passer par IE pour utiliser la doc, je trouve ca vraiment chiant. Et je la trouve bcp moins pratique que la javadoc, j’ai pas trop eu le temps de vraiment regardé mais quand on navigue avec les liens hypertext, l’arbre ne suit pas donc on s’y perd très vite et il y a bcp trop de pages. C’est un avis personnel mais avec la javadoc, une page par classe c’est très pratique, on a tout sous la main.

bon je vais continuer a tester les deux pour pouvoir me faire une vrai opinion et ne pas laisser mon anti-microsoftisme prendre le dessus.

Hop petite reponse rapide avant de partir faire des courses.

Oui il faut que le framework .net pour faire tourner une appli .net mais d’ici quelques temps il sera en standard dans tout les windows, viendra avec toute les appli MS, etc. Il va devenir tres difficile d’y echaper. Il suffit de le distribuer avec ton appli…

Par rapport a Java pour avoir fait du Java pendant 2 ans en pro avant de passer au C# je suis incroyablement pas d’accord avec universal_tonton, l’API de C# est bien plus complete et facile a utiliser que celle de Java. Elle implique beaucoup moins de voyage au fin fond des objets comme on le reproche souvent a Java, du genre machin.gettruc().getbidulle().getprout().machin_propiete1. Du cote graphique y a pas photo, .net est plus performant. SWING est une daube inutilisable et ramant a mort. Pas une seule appli en SWING ne supporte la comparaison avec une appli equivalente en natif.

Pour le cote serveur, je demande a voir une seule, oui une seule comparaison qui met Java devant en performance pour la meme application. J’ai porte un appli serveur side Java que j’avais ecrite et dont j’etais tres content en C# parceque je changeais d’OS sur le serveur et que je voulais voir la difference. Resultat: 4 fois moins de code (C’est pas une metaphore, y en a vraiment 4 fois moins), et plus de 100% de perfs en plus pour faire strictement la meme chose. Et oui, j’utilise la machine virtuelle d’IBM avec le super JIT et un des serveurs d’application le plus rapide du marche (Resin de Caucho). Je veux pas filer tout le code mais je tiens de exemple a dispo pour quiconque me crois pas et veut verifier.

Le seul avantage pour l’instant en server side pour Java ce sont les EJB dans les serveurs d’application tels que websphere.

Je developpe des applis pour moi en server side regulierement et je suis pour l’instant toujours meilleur en Java qu’en .Net et pourtant ca me viendrait plus a l’idee de commencer un nouveau projet en Java malgre ma librairie perso de code Java pour faire beaucoup de chose standard. Pour moi il n’y a pour l’instant pas de comparaison possible et j’aime a croire que ca n’a rien a voir avec le fait que je developpe en ce moment du C# et pas du Java.

Essaye les deux. Fais toi ton propre avis et tu verras. Ca va vite d’essayer d’implementer la meme chose dans les deux langage en faisant un peu de XML, un peu de manipulation d’image, etc.

Ce n’est pas pour rien que MS a présenté C# comme un Java-killer… Effectivement, C# s’appuye sur une syntaxe vraiment très similaire à Java, mais le fonctionnement interne est complètement différent. En gros, si tu crées une classe assez basique tu pourras la recompiler sans problème (juste peut-être changer les majuscules/minuscules). Mais dans la plupart des cas, il faudra adapter ton code. Par exemple, pour l’héritage, C# garde la syntaxe C++ ClasseFille:ClasseMere. A l’inverse, il n’y a plus de multi-héritage comme en C++ mais le concept d’interfaces utilisé par Java.

Pourquoi en avais-tu marre de la VM Java ? Evidemment, un codebyte interpreté sera toujours moins performant que du compilé, mais sais-tu qu’il y a des compilateurs JIT qui non seulement compilent très vite mais qui proposent un code optimé, 20% (peut-être même plus maintenant) plus rapide que la JDK de Sun ?

GloP ne sera évidemment pas d’accord avec moi :pleure:, mais je trouve l’API Java bien plus fournie que le framework .net, et surtout le développement de nouvelles API par la communauté Java est extraordinaire. En fait, tout dépend de ce que tu veux faire. Si c’est pour faire une application graphique, oublie Java et fonce vers C#. Swing par exemple est excellent mais demande une grosse optimisation de la part du développeur pour que l’appli ne soit pas trop lourde. Ce n’est pas impossible, bcp de gros softs utilisent maintenant Java pour sa facilité et rapidité de programmation : Oracle, Matlab… Par contre, si tu as un gros besoin de portabilité pour ton appli, point de salut sans Java.

Côté serveur, Java s’en tire BCP mieux. GloP te dira que les techos Microsoft sont plus performantes, d’autres te diront le contraire ; si tu recherches sur le Net, tu trouveras des benchmarks qui donneront des résultats différents, certains en faveur de Java, d’autres en faveur de .net… Je n’ai jamais fait moi-même de comparaisons, donc je ne me prononcerai pas. Par contre, je sais que des serveurs 100% Java, comme ATG Dynamo, que j’ai vu tourner, sont ultra performants et mettent une bonne claque à pas mal de serveurs d’application compilés.

Pour la redistribution de ton appli, il y a un pack qui regroupe tous les fichiers nécessaires pour l’executer sur une machine sans .net. Suffit de le distribuer avec ton appli et hop.

mono fonctionne sur windows et linux… enfin fonctionne… c’est un grand mot, mais bon, ca avance.

sinon le C# ressemble a du java melangé a du c++ avec encore des options en plus qui dechire ca môman…

genre d’exemple excellent; avec une classe segment correctement faite, on peut avoir les lignes :
segment s
f.depart=new Point(10,10)
f.arrivee=new Point(50,20)

automatiquement, f.direction vaut (40,10)… d’ailleurs
j’aurais pu marquer “f.direction=new Point(40,10)” au lieu de “f.arrivee=…”,
et là, f.direction vaudrait toujours (40,10), et f.arrivee vaudrait quand meme (50,20).
grosso modo, au lieu de surcharger un opérateur, on surcharge l’acces à une variable… ca simplifie enormement l’ecriture (a mort les getArrivee, setDirection !)
moi je trouve ca genial.

Pour le compilo y a un truc qui se devellope sous linux (un open source) gomono je crois pas sure . Mais pas de rpojet free Windows mais le projet open source de pinguoin pourrait etre exporté sous Windows ca serait drole nan ?

Koubiak qui a essayé le C# qu’ adore pas les (unsafe) mes couilles :wink:

Une simple question, personnellement je ne connais strictement rien en C# et un peu java côté serveur, existe t’il des serveurs d’applis supportant C# sur d’autres plateformes que celles fonctionnant sous windows ?

Pour l’instant, y a que IIS qui permets de faire tourner de l’asp.NET, mais ca va ptet changer si le projet de portage sous nunux abouti (c pas pour tout de suite non plus)

Il y a le projet Mono qui commence a etre bien avance et qui a exactement ce but. Et donc il n’y a PAS que IIS qui fait tourner de l’asp.net. Il suffit de regarder les exemples sur le site de mono. C’est peut etre pas encore “production ready” mais ca avance rapide. Sinon il y a des hebergeurs “gratuits” (30 megs, 500 Mb de transfert, largement assez pour faire mumuse…) pour ASP.net genre Brinkster… il y en a d’autres peut etre plus interessants…

J’ai pas teste Mono encore en tant que dev je dois te dire mais mon filtre HTML compile dessus il parait

Sinon un tres bon regroupement de weblogs par des gens forts en .Net

Ce message a été édité par GloP le 11/04/2003

Et on peut s’attendre à voir qqch similaire à des EJB sous C# ?
Parce que j’ai vaguement regardé la doc de C# et en ce qui me concerne, le seul intéret que j’aurais à passer sous C#, c’est qu’on peut détruire les objets dont on a plus besoin…

Oui il va y avoir des choses similaires aux EJB qui sont deja en preparation. Serieusement si tu fais du java considere serieusement c# parceque il n’y a pas que la destruction des objets… et sinon pour vous tous:

http://dotnetweblogs.com/FMARGUERIE/Story/4139.aspx

parceque il y a presque TOUT de liste la bas… et que c’est un blog sympa…

quote

http://dotnetweblogs.com/FMARGUERIE/Story/4139.aspx

parceque il y a presque TOUT de liste la bas… et que c’est un blog sympa…[/quote]MERCI GloP ! url comme il faut

:remouk

Y a bon bookmark

A propos de compilateur C# il y a aussi un autre projet en devellopement, c’est DotGNU Portable.NET :

http://www.dotgnu.org/