Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Richard Clark

J'aime pas les blogs mais comme j'aime le mouton...

Actualités

  • c2i.fr
Après DirectPlay, c'est VS .NET qui me pompe menu, menu (suite)

C'est Bill Mc Carthy, un MVP autralien avec un accent à couper aux couteaux mais qui ne fut pas là malheureusement cette année au MVP Summit, qui m'a donné la solution à mon problème.

C'est vrai qu'il suffisait d'y penser mais ce qu'il y a d'intéressant, c'est que cela met en exergue la "supériorité" de VB .NET par rapport à C# (oula, vais me faire gronder moi ;-)), enfin plus exactement l'IDE :

La solution est simple : VB .NET fait une compilation automatique en background pendant votre développement dans VS .NET.

Ceci explique par exemple que VS vous souligne votre code au moment ou vous le saisissez si vous faites une erreur (comme la correction orthographique de Word).

Imaginez une solution avec deux projects :

  • WinApp, un exe,
  • MesClasses, une dll avec des classes dont une nommée MaClass.

WinApp référence le projet MesClasses dans VS. Imaginons maintenant que vous ajoutiez une méthode dans MaClass. Dans WinApp, si il est en VB .NET, vous verrez immédiatement la méthode ajoutée (que MesClasses soit en C# ou en VB .NET). En revanche, si WinApp est en C#, il faudra attendre une nouvelle génération de MesClasses pour qu'il le voit (faut lui macher le travail au C#, l'est un peu fainéant sur le coup).

C# effectue toujours un référencement statique, c'est-à-dire vers la dll (ou l'exe) généré. Alors que VB .NET quand on fait un référencement de projet, analyse en temps réel le code tapé.

Dans ma problématique, il y a 3 assemblies et surtout il y a hyperstaticité (voir définition en bas de ce texte). Pour C#, comme il s'en fout de ce que vous tapez tant que vous n'avez pas généré, il vous permet de faire ce que vous voulez.

En revanche, VB lui détecte qu'il peut y avoir problème. Si tous les projets sont en VB, il voit bien que ce sont les mêmes assemblies, le même code, donc il vous laisse faire ce que vous voulez. Mais si l'assembly du milieu (UI) est en C#, elle casse la lecture de VB. Donc VB voit bien le lien direct entre WinApp et Common, mais il voit également que C# lui pointe vers un Common sous forme de dll qui peut être différente du Common "en code". Me suis-je bien fait comprendre ? ;-))).

Pour être polémique, ceci démontre la supériorité de l'IDE de VB .NET par rapport à celui de C# : Na!

Hyperstaticité : c'est un problème que l'on rencontre tous les jours. C'est quand il y a redondance d'informations et qu'elles peuvent être contradictoire. Exemple : pour être stable, une table a besoin de 3 pieds. Pas deux, car elle pourrait basculer, ni 4. Avec 4 pieds (ce qui est pourtant le "standard" des tables que l'on utilise tous les jours), ca peut devenir le cauchemar. Ceci explique pourquoi on passe son temps dans les restaurants à caler les pieds de ces foutus tables.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: samedi 24 avril 2004 08:05 par richardc

Commentaires

richardc a dit :

Ah en effet, différence interessante ... j'imagine pourquoi ca rame avec 15 projets vb.net dans une solution ... si il fait parsing tout le temps ^^

Bon, alors vs.net pour faire du c#, 256 Mo a l'aise, pour faire du vb.net, 1024 :)
Je viens de me marrer en retournant sous Eclipse avec son plug mono (demander moi pas l'url, je l'ai plus), et là, il garde la manière avec laquelle il traite java, y compile les fichiers quand on enregistre :p

Maintenant si c'est une supérioté de l'ide, je sais pas ... en tout cas, les MVP australiens cest du costaud (suffit de voir leur blog d'ailleurs)

Pour la table, si elle a 4 pieds, cest pour des questions "morales", le chiffre 3 étant souvent relié à des signes religieux, divinatoires :p Comme quoi....

NB: et en j# alors, l'ide il est comment ;)



# avril 24, 2004 12:54

richardc a dit :

Eh, Bubusse, juste un conseil : n'offre JAMAIS de 4 fleurs à une jolie fille, c'est signe de mort. (on offre tjs un nombre impair de fleurs.

Quand à l'augmentation de Ram, j'ai pas constaté ca. Mais mes solutions ne font que 6 à 9 projets au max.
# avril 24, 2004 13:40

richardc a dit :

Une chose que je ne comprend pas dans VS.NET : pourquoi tant de différence entre les editeurs de chaque langage ?

A commencer par l'absence de la documentation en VB.NET, cette compilation à la volée que commente richard, et il semble qu'avec Whidbey, l'equipe de VB.NET ait mis le turbo sur l'IDE alors que C# reste au point mort : My, l'Edit and continue, etc...

Alors que ces outils ont tous la meme fonction de base : prendre des fichiers texte (rédigés dans une syntaxe differente certes) et cracher de l'IL.

On dirait que les developpeurs C# vont bientot sentir la frustration de leurs homologues VB.NET concernant la doc automatique. Perso, l'edit & continue C#, je cracherais pas dessus. Et concernant My, meme si l'implementation est, parait il, contestable, et que l'utilité est réduite sauf pour les codeurs débutant (ou codeurs VB, oops ;), le fait d'avoir une _classe_ disponible dans un seul _langage_ et pas les autres me donne la nausée. Enfin bon, je ne me fais pas d'illusion, le wrapper My C# sortira bien un jour.

Voili voila, pardon pour le coup de gueule, oui je sais, QDB quand meme
# avril 24, 2004 15:17

richardc a dit :

Richard ça te dis que je te créé un dns spécial pour ton blog ?
murdeslamentations.developpeur.org :p

P.S: VB.NET powa ! ;-)
# avril 24, 2004 15:26

richardc a dit :

Promis si j'en ouvre un, ce sera medisance.labo-dotnet.com

PS : pour pas rentrer dans la polémique, je dirai VS.NET powaa ;)
# avril 24, 2004 15:35

richardc a dit :

Hey Sark,

Pour l'IDE C# j'ai tendance à dire chacun son jouet :) : vb avec My et Edit/Continue+doc auto avec les '''; si me trompe pas et c# avec refactors ^_^ donc l'ide c# n'est pas au point mort...

M'enfin en tout cas j'espère que toutes ces fonctionnalités seront dispo dans les 2 ide d'ici la build finale car faut pas oublier qu'elles sortiront pas avant un an :( :)
# avril 24, 2004 17:57

richardc a dit :

Merci Richard du conseil, je note ;) Je ferais attention avec la prochaine (avec le bol que j'ai elle ne fera que du java ^^).

Pour la ram, je faisais un peu le Marseillais (c'est la veille d'un PSG - OM quand même), mais le parsing des sources doient bouffer de la mémoire quand même.
Encore si tu as qu'un fichier source d'ouvert ca va, parce qu'il peut penser que les fichiers non ouvert une fois scanné une première fois ne se modifient pas. Mais imaginons que tu as un projet à 10 solutions (c'est le plus gros que j'ai vu de mes propres yeux pour l'instant) et que tu as des fichiers sources ouverts dans tous les projets, je plains le boulot de l'IDE à faire de la compilation à la volée (à lui aussi CODEDOM est son ami !)

%<%<%<%<%<%<%<%<%<%<%<%<%< Délire %<%<%<%<%<%<%<%<%<%<%<
Tiens d'ailleurs il me vient un truc loufoque à essayer, mais je crois que mes compétences en vb.net me permettront pas trop de l'essayer (oui vb.net, lu mais ni parlé, ni écrit). Parce que l'IDE doit forcément faire de la compil à la volée, or ya les limitations de la compil à la volée... faudrait s'amuser à tester celle de CodeDom avec vb.net pour voir si l'IDE les passe.

%<%<%<%<%<%<%<%<%<%<%<%<%<%<%<%<%<%<%<%<%<%<%<%<

En tout cas, moi je vous dis, installer vs.net 2003 en premier maintenant, parce que si vous faites vos winupdates avant ou encore que vous installez office 2003 avant, ca se met à ch### de tous les cotés !
# avril 24, 2004 20:06

richardc a dit :

Je pense qu'un 4eme pied a du être implémenté sur la version 1.1 d'une table standard a trois pattes après que l'on ai remarqué que sur 4 personnes assises, il y en avait toujours une qui se prenait un pied entre les... ;-)
# avril 26, 2004 10:45
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Emportez votre sélection de la MSDN dans la poche ? par Blog de Jérémy Jeanson le 04-17-2014, 22:24

- [ #Office365 ] Pb de connexion du flux Yammer ajouté à un site SharePoint par Le blog de Patrick [MVP SharePoint] le 04-17-2014, 17:03

- NFluent & Data Annotations : coder ses propres assertions par Fathi Bellahcene le 04-17-2014, 16:54

- Installer un site ASP.net 32bits sur un serveur exécutant SharePoint 2013 par Blog de Jérémy Jeanson le 04-17-2014, 06:34

- [ SharePoint Summit 2014 ] Tests de montée en charge SharePoint par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 20:44

- [ SharePoint Summit 2014 ] Bâtir un site web public avec Office 365 par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 18:30

- Kinect + Speech Recognition + Eedomus = Dommy par Aurélien GALTIER le 04-16-2014, 17:17

- [ SharePoint Summit 2014 ] Une méthodologie simple pour concevoir vos applications OOTB SharePoint de A à Z par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 16:51

- //Lean/ - Apprendre à faire des Apps Windows universelles par Blog de Jérémy Jeanson le 04-16-2014, 12:57

- Une culture de la donnée pour tous… par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 11:00