I. Remerciements▲
Je tiens à remercier les membres de Microsoft France pour l'organisation de ces Journées Visual Basic, pour leur disponibilité et leur ouverture d'esprit qui a permis de faire de cet événement une réussite. Un merci tout particulier à Lucas Riedberger et à Eric Vernier de s'être aimablement prêtés à une interview, réalisée par Jean-Marc Rabilloud auquel j'adresse aussi mes remerciements pour l'aide apportée lors de la rédaction de cet article.
II. Introduction▲
Comme vous l'avez certainement lu et/ou vu sur les forums de Developpez.com , Microsoft France a organisé fin 2004 et en janvier 2005 des sessions consacrées à la migration vers la plateforme NET pour Visual Basic. Les développeurs VB ont ainsi pu se rendre compte du comment et du pourquoi de la nouvelle plateforme Microsoft ainsi que les différences fondamentales qui sont apparues au niveau de la programmation orientée objet avec Visual Basic.NET.
III. Programme des sessions▲
Pour rappel, le programme présenté lors de ces sessions avec les points les plus importants qui furent abordés.
- Accueil et partenariat
-
Migration
- LA question que tous les développeurs se posent, développement de quelques points de vue avec les participants
-
Construire une application simple en VB.NET
- Se familiariser avec l'environnement NET
- Développement d'interfaces « clients riches » qui donne un aperçu des nouveaux contrôles et des nouvelles possibilités de « lookage » des applications
- L'accès et la manipulation de données. Un assez gros chapitre, car la préhension de ce domaine s'écarte fortement des habitudes VB. Exemple ADO.NET.
- Changements syntaxiques et autres dans le langage même ainsi que la gestion structurée des erreurs.
-
Les nouvelles possibilités de développement d'application
- Services Web : définition, structure et exemple d'appel
- Interface pour périphériques mobiles : exemple de visualisation d'une base de données sur un Pocket PC. Petit tour des technologies mobiles existantes et à venir
- Office 2003 : exemple de liaison
- Interfaces Web : modèle d'exécution ASP.NET
-
Programmation d'applications d'entreprises
- Quels apports pour les développeurs VB ?
- VB et la programmation objet classes, héritages, surcharges
- L'architecture n-tiers
-
Principe d'architecture. NET
- Un regard plus approfondi sur la structure de la plateforme. NET
-
Retour sur le problème de la migration vu après ces explications
- Quelle est l'évolution du point de vue des participants quant à la migration de leurs projets ?
- Questions/réponses
IV. Synthèses de vos réactions▲
Dans l'ensemble, un sentiment général de satisfaction vis-à-vis des présentations et des présentateurs. Comme dans la plupart des situations où il y a beaucoup à dire et peu de temps pour le faire, il faut mettre un coup d'accélérateur à un moment donné d'où une fin de session plus chaotique et moins structurée qui nous laisse un peu sur notre faim.
Il n'est jamais facile de faire le tour d'horizon d'un tel produit sur si peu de temps en touchant à toute la gamme des possibilités afin de contenter le maximum de personnes.
Comme personne n'a prétendu avoir quitté la session en cours de journée, le bilan final est donc plus que positif et nous espérons que ce genre d'événement se produira très souvent.
Le contact avec les intervenants est apprécié de tous ainsi que leur disponibilité tout au long de la session.
Bien que quelques polémiques furent soulevées par certains participants qui ont, vu leur domaine de développement, moins d'affinité avec la conception de la nouvelle plateforme, ce VB Tour fut sans conteste une réussite.
V. Lucas Riedberger et Eric Vernier▲
V-A. Les protagonistes▲
|
Lucas Riedberger : |
|
Eric Vernier : |
Certains ont aussi pu rencontrer Frank Hella (ingénieur support), Alain Le Hegarat (département marketing), Nicolas Clerc (speaker), etc. suivant la session à laquelle ils ont participé
V-B. Interview (par Jean-Marc Rabilloud)▲
Jean-Marc Rabilloud : Tes impressions autour de ce tour ?
Eric Vernier : Cela a été un bon moment. J'ai été assez content de rencontrer des personnes qui avaient de réelles interrogations sur VB, sur l'avenir de Visual Basic. J'ai essayé avec mes petits moyens de leur montrer, de leur prouver que VB.NET n'était pas mort comme on pouvait le penser ; et qu'il a un bel avenir au sein de Microsoft.
J'ai réellement bien aimé rencontrer tous ces gens. Bon, il y a des râleurs comme partout, c'est normal ; moi, je suis un râleur, j'ai râlé aussi au début. Rencontrer ces gens et avoir leurs retours positifs, car c'est un retour positif, ça me conforte dans le fait que j'ai utilisé les bons mots et les bonnes techniques. Je me suis bien sûr fait aider par le retour des communautés, du support technique de Microsoft, etc.
J'ai bien regardé les communautés, j'ai lu les forums de discussion, j'ai bien regardé les crânes des gens et cela m'a permis d'axer le plan de ma présentation sur les crânes des gens.
Lucas Riedberger : J'ai deux sentiments. Le sentiment du marketeux par rapport à l'audience, mais aussi un sentiment humain. D'un point de vue marketing, je pense qu'on est arrivé à faire passer un certain nombre de messages. Par exemple, faire comprendre que VB est l'égal de C# sur la plateforme. NET et que les deux langages ont le même avenir, au même titre que les autres langages normalisés. Évidemment à cent ans, j'aurais du mal à le dire, mais à dix ans, VB a encore un très bel avenir.
Après, il y a l'aspect migration puisqu'un des buts de ces rencontres était clairement de donner le goût, l'envie de tester l'outil, de faire découvrir la technologie de Framework sans pour autant rentrer dans des termes qui peuvent paraître très pompeux pour les développeurs.
JMR : Lors de ce tour, tu as vraiment rencontré la communauté VB 6 qui a beaucoup d'interrogations sur le devenir ou l'intérêt de VB.NET. Comment pourrais-tu rassurer ou convaincre ces gens-là ?
EV : On a beaucoup parlé de la plateforme .Net et, la plateforme .Net, c'est développer en « orienté objet » . C'est vrai, elle rend Windows « objet ». On utilise maintenant les mêmes objets, les mêmes syntaxes, quel que soit le langage utilisé. Moi, je débute cette présentation par : « ce n'est pas la peine de faire de l'objet pour débuter en VB.NET ». Il y en a quelques-uns qui commencent comme cela, il y en a même qui ont commencé à développer en C++ et ils ne faisaient pas forcément de l'objet, on l'oublie très souvent. Toi comme moi qui sommes des développeurs C de départ, on a fait du C++, mais si on regarde bien derrière, c'est quand même du code C. On peut donc commencer à développer sans forcément penser objet, ni penser UML. On associe très souvent les deux comme une obligation de « l'orienté objet », mais c'est juste pour organiser son travail. Quand on développe en objet, on n'en a pas forcément besoin si on est relativement rigoureux. UML, ce sont des méthodes qui vont nous aider à documenter nos objets. C'est assez complexe UML et je connais des gens qui ont développé des applications de qualité sans avoir pensé objet.
Avec VB.NET et l'objet, c'est un petit peu - là, je vais parler de notre concurrent - JAVA, mais JAVA est apparu pour simplifier le développement objet par rapport au C++, c'est du moins une analyse qu'on peut faire. Il ne faut donc pas s'imaginer que VB.NET et l'objet sont aussi compliqués que C++ et l'objet.
JMR : On est déjà un certain nombre à penser sur développez.com que le code managé c'est l'avenir au moins en termes de code sécurisé, sauf pour quelques types d'applications qui demandent d'être véritablement proches du système. Tu confirmes donc que .Net c'est vraiment l'axe choisi par Microsoft en terme d'outil de développement ?
EV : C'est la stratégie future de Microsoft, d'ailleurs on va pouvoir le voir arriver avec le futur système d'exploitation Longhorn où on aura bas é un certain nombre d'API sur .Net. L'investissement en temps, là on peut parler commercialement ou économiquement, est énorme, c'est une plateforme qui a été pensée trois ou quatre ans avant sa sortie. On en voit aujourd'hui les bienfaits pour des développeurs comme nous, où l'on n'a plus besoin de switcher d'un mode à un autre. Cela nous arrive de temps en temps suite à nos vieilles habitudes, mais, on le voit, on accède à une simplicité de développement, à une productivité en plus. Les classes du Framework couvrent tout, si même aujourd'hui on ne l'a pas, on sait que cela apparaîtra dans une version future et puis, il y a toujours des petits malins qui arrivent à développer ce qui n'existe pas encore sur la plateforme, mais qu'on peut attaquer en .Net et cela très simplement. On aura de toute façon du mal à revenir en arrière.
JMR : J'ai regretté que depuis trois ans, Microsoft n'ait pas communiqué autour de VB.NET. On a vu une grosse communication C# avec des exemples uniquement en C#, bref comment l'analyses-tu ?
EV : C'est vrai. Ce qu'il faut voir c'est qu'historiquement la plateforme .Net avait un seul langage dans un premier temps qui était C#, en fait son nom de code s'appelait COOL, et le portage du compilateur VB 6 ne se faisait pas d'un simple claquement de doigts. Pour pouvoir promouvoir la plateforme de programmation, il a fallu la constituer avec un langage de programmation qui lui était propre, donc C#. Cependant, il était hors de question que le langage Visual Basic reste en arrière. D'ailleurs c'est amusant de voir que les équipes des compilateurs VB et C# se tirent la bourre pour savoir qui aura les meilleures fonctionnalités.
LR : En fait, on a été particulièrement mauvais sur deux aspects. D'abord, il y a eu un bruit de fond de la part de Microsoft Corp, aux États-Unis, fortement relayé par notre presse spécialisée française. Cela est somme tout naturel puisque chez Microsoft la majorité de nos développeurs font du C++ d'où l'orientation poussée vers C#.
Puis on a eu un deuxième loupé, purement francophone celui-là. On n'a pas su parler ou montrer VB lors de nos événements autour de .Net. Les deux combinés ont fait que les développeurs VB se sont retrouvés dans le flou sans savoir quel avenir leur était réservé, sans trop savoir que faire de leur existant malgré les promesses de la plateforme .NET. L'un des objectifs de ces rencontres est justement de rendre à VB la place qu'on ne lui a pas donnée. Ce qui est notable, c'est que le problème de communication est le même aux États-Unis et ils n'ont toujours pas trouvé la solution.
JMR : Si tu avais une ou deux idées fortes à faire passer après ce tour, quelles seraient-elles ?
EV : La première serait : vous avez vu l'ours qui a vu l'ours qui a vu le loup en vous disant « la plateforme .Net, c'est compliqué ! » Je ne dirais pas le contraire ; je dirais qu'il y a un saut à faire. Je le disais tout à l'heure, entre 16 et 32 bits il y avait un saut, entre C et C++ il y avait un saut. Il y a toujours des sauts technologiques et des périodes de remise en question qu'on a d'ailleurs tendance à oublier.
Il faut appréhender la plateforme, mais il faut se faire une idée par soi-même. C'est pour cela que, pour ce tour, on a fourni une licence « VB Initiation ». L'idée c'est « je touche à .Net, je commence à développer en VB.NET ». C'est pour cela que je commence ma présentation en développant une application from scratch (NDT À partir de rien). Je développe, j'ai deux trois assistants qui me permettent de faire deux trois tâches simples, j'ai de nouveaux objets, de nouvelles notions à acquérir, peut-être plus de possibilités, parfois moins parce que la plateforme est jeune même si on sent bien qu'elle soit déjà robuste. L'idée forte c'est : « Touchez à VB.NET par vous-même ».
Après vous vous faites une idée, oui je n'aime pas et vous laissez de côté ou oui j'aime. Si vous aimez, vous n'êtes pas obligé d'aller vite, vous n'êtes pas obligé de migrer vos grosses applications, mais je suis sur que tout le monde a une application chouchou qu'il aura bien envie de passer tranquillement. Tout le monde a passé son application chouchou de VB 3 à VB 4 puis à VB 6.
LR : La première chose que je voudrais clamer n'est pas une idée, mais un fait : VB est aussi utilisé que C# dans le milieu professionnel sur la plateforme .NET. Cela constitue un argument de poids pour les développeurs VB 6.
La seconde est un appel à essayer, tester, comparer. Venez nous voir, venez voir les communautés et voir ce qui se fait. Les communautés apportent un œil extérieur à Microsoft avec un discours technologique qui leur est propre et qui est souvent plus proche des la réalité.
JMR : Lors de ma première migration, j'ai pris le mauvais chemin, j'ai jeté le code dans les pattes de l'assistant qui m'a recraché une todo-list visible de l'espace tellement elle était longue. Toi cette migration, tu la préconises comment ?
EV : C'est assez complexe. Il ne faut pas se voiler la face, on a l'expérience terrain qui nous montre que l'assistant de migration en lui-même n'est suffisant que lorsqu'on a de petits objets, sans interfaces graphiques. À partir du moment où il y a une interface graphique, ça risque de poser un certain nombre de problèmes. Il y a une expérience que j'ai pu voir sur un forum où un développeur a laissé tourner l'assistant pendant huit heures et en fin de compte, celui-ci a planté. Le principal problème vient du fait qu'on a tous développé des applications très très monolithiques. Ceci fait qu'on est face à une contrainte technique puisqu'on est obligé de migrer toute l'application. Moi cela fait quelques années que je travaille chez Microsoft et quelques années que l'on préconise une architecture en couche même pour les applications VB. Ce n'est pas toujours très simple à mettre en place.
JMR : Je rigole un peu, car c'est la première fois que, lors d'une présentation Visual Basic, on entend le mot « architecture ». C'était un peu le mot tabou jusqu'à présent.
EV : Ça me fait bien plaisir. Je ne sais pas vraiment pourquoi puisque ce n'est pas tellement plus compliqué à mettre en place qu'une application monolithique avec des variables globales qui sont appelées à droite et à gauche. On en revient justement à la migration. C'est là le problème. Je vais avoir trois ou quatre formulaires qui s'imbriquent les uns aux autres, qui font appel aussi à des variables globales. Là il n'y a pas de miracle, il y a des outils qui peuvent aider à analyser le code et à faire une analyse d'impact. Je pense notamment à un outil - on peut faire cocorico - de la société Novalys qui s'appelle « Visual Expert » et qui permet de documenter votre code et d'analyser des codes de VB 4, VB 5…
On pourrait aussi parler de « Code Advisor ». Il faut se faire aider à un moment pour pouvoir déjà modulariser sans trop de frais son application VB 6. Si vous êtes venu au VB Tour, vous avez vu comment on réalise cela.
LR : C'est nouveau et c'est plutôt bien. Souvent ces notions sont simplement du bon sens et sont utilisées par les développeurs VB 6 sans qu'ils mettent un nom dessus. Toutes ces questions d'architecture sont essentielles, car elles permettent l'indépendance vis-à-vis de la plateforme. Lors de ces rencontres, on a pris des modèles d'architecture qui sont basiques, mais qui reflètent l'ouverture de la plateforme Microsoft.
JMR : Dans la documentation VB.NET, on trouve des règles de migration pour les développeurs VB 6 afin d'aider l'assistant de migration à être vraiment efficace.
EV : Tu fais bien de le souligner. Il y a quand même des modifications dans la syntaxe du langage lui-même. Un exemple tout bête, les dimensionnements de tableaux commencent à zéro maintenant. On peut parfaitement utiliser « Code Advisor » qui est un add-in VB 6 qui va scanner votre code et dire « attention, cette propriété-là n'existe plus en VB.NET ». Ce dimensionnement n'existe plus en VB.NET donc, essayez de préparer votre code en vue d'une migration. Et là, effectivement, l'assistant migre correctement un certain nombre de choses, mais il ne faut pas se voiler la face, il ne fera pas tout. On sait très bien que, moins un assistant en fait, mieux il se porte, il ne va pas repenser l'application pour vous, il ne peut pas utiliser les nouveautés VB.NET à votre place. J'en ai évoqué une lors des rencontres et je pense qu'elle est assez sympa : c'est le court-circuit.
Si je fais IF Titi OR Toto, j'évalue Titi et Toto. Aujourd'hui, on a le court-circuit OrElse qui, si Titi est vrai n'analyse pas Toto. Il y a aussi son pendant pour le AND avec AndAlso. Ce sont ces petites choses qui syntaxiquement dans le langage ne sont pas migrées. C'est normal, l'assistant de migration ne peut pas le savoir.
Il y a énormément d'avantages sur la nouvelle plateforme, on ne peut pas les lister tous ici. On peut tirer pleinement profit de la plateforme Windows. Par exemple, on peut facilement réaliser une application multithread, comme le disait très justement Pierre - Pierre Couzy, speaker de WinWise -, car les contraintes techniques n'existent plus ; par contre, les contraintes logiques sont toujours là. Mais c'est normal, avec VB.NET vous savez faire de l'objet, encore faut-il y penser.
JMR : Tu as annoncé durant ce tour que tu souhaites continuer à communiquer autour du produit, peux-tu dès à présent nous en dire plus ?
EV : Sur le site http://www.microsoft.com/France/vbasic/ , on a déjà publié les exemples de codes sources du tour, il y a les webcast c'est-à-dire que vous allez pouvoir regarder les démonstrations sur des vidéos. Il y en a une qu'on appelle démonstration fonctionnelle, où je pars de rien et je construis une application comme ça, sans penser modélisation ni objet. Il y a même une fenêtre d'authentification qui ne fait rien sinon s'ouvrir en fondu enchaîné, c'est ce que je montre dans le Tour en jouant sur la transparence des écrans. L'idée maintenant, c'est de dire comment j'organise mon application pour qu'elle utilise les canons de la beauté actuelle, c'est-à-dire en utilisant l'architecture, des Design Patterns, des objets, mettre en place la sécurité, etc. …
Ce seront les deux premières évolutions qui devraient apparaître très prochainement où je mets en place les authentifications, les autorisations ; avec des modèles de conception qui permettent de changer de modèles d'autorisations ou d'authentifications, sans avoir d'impact sur l'interface. Donc la modélisation d'application est une part relativement importante. J'espère que je ne serai pas trop compliqué dans la façon dont j'explique, sinon je compte sur vous pour me le dire. Je mettrai en place un document, vous pourrez prendre le code, vous pourrez le modifier. Je pense que via les NewsGroup VB.NET (http://microsoft.com/France/default.mspx?dg=microsoft.public.fr.dotnet.vb ) on peut en discuter, ça me paraît bien.
LR : Ça, c'est mon « bébé » : être capable de donner la bonne information à tous les développeurs en un seul point d'accès sans le noyer de messages. Cette page va continuer à évoluer, ce n'est pas rien qu'une page, c'est véritablement un site qui va progresser encore très fortement. Je tiens à faire bouger l'organisation de l'information dans un premier temps, mais surtout à élaborer de nouveaux contenus dans un second temps. Les articles d'Eric y trouveront aussi leur place.
JMR : J'ai remarqué par ailleurs que le site Vbasic a été refait par Lucas et donne une meilleure visibilité sur les liens intéressants.
EV : Il faut que ce site vive, que les gens disent ce qu'ils en pensent. C'est ce que je disais tout à l'heure. Sur un site comme celui-là, on a un filtre Microsoft, on connaît plus ou moins l'organisation, mais pour celui qui débute, c'est assez difficile à maîtriser, car on est débutant à tous moments même en étant déjà chevronné et, dans ce cas, on apprécie d'avoir les points pas à pas.
JMR : C'est tout de même curieux de constater la montagne que les utilisateurs VB se font autour du passage à VB.NET.
EV : Déjà dans le nom .Net, on voit tout de suite quelque chose du type « ça y est, c'est Internet ». Quand la plateforme .Net est arrivée, moi je m'occupais d'éditeurs de logiciels qui ne marchaient pas sur cette plateforme ; forcément, ils devaient travailler pour leurs clients, ils avaient des contraintes de temps et, lorsque la plateforme est arrivée, on l'a mise de côté en disant : « mais .Net, c'est du Web ! " sans avoir regardé dedans. Nous sommes comme tout le monde, quand on est sur le terrain, on n'a pas toujours le temps de se former. C'est vrai que chez Microsoft on se forme quand même en avance de phase, on a cette possibilité, mais il ne faut pas se voiler la face, tous les développeurs chez Microsoft France ont cet apprentissage.
Donc on a dit, c'est du Web, c'est de l'objet, alors ça peut faire peur. Le développeur VB 6 va se demander pourquoi il doit faire de l'objet sur du Web.
JMR : On retrouve aussi toute une interrogation autour de l'évolution ADO.NET, alors qu'il s'agit à mes yeux d'une grosse évolution technique. En deux ans d'explications sur développez.com, je me suis rendu compte que les utilisateurs percevaient très mal le fonctionnement réel d'ADO. Globalement ADO.NET s'attaque de la même façon et pourtant, on sent une certaine appréhension.
EV : À ce propos, je voudrais faire une petite annonce, en janvier, il y a les rencontres « Accès aux données » qui commencent, réalisé par un de mes collègues à qui je donnerai un coup de main s'il en a besoin, Mitsu Furuta. Il a développé des modèles objet relationnels sur d'autres plateformes avec d'autres langages, mais c'est un sujet qu'il connaît bien et je pense qu'il fera le tour de la question.
Avec ADO.NET, on a plus de maîtrise, notamment pour la mise à jour, on voit mieux ce que l'on fait. Je donne un exemple très concret. Nous, en tant que développeur, nous sommes très friands de faire attention aux ressources, aux connexions qui sont ouvertes. De temps en temps, quand on avait de belles boucles imbriquées avec des recordset, ADO ouvrait une deuxième connexion puisque, sur SQL Server, on ne peut pas avoir deux requêtes SQL sur la même connexion. ADO contient pas mal de petites choses de ce genre, mais qui ne facilitent pas la vie en termes de performance.
ADO.NET est principalement construit sur un mode local avec son DataSet, mais avant, quand on avait besoin de plusieurs tables, comment faisait-on ?
VI. Conclusion▲
JMR : On faisait des horreurs. Une conclusion ?
EV : Ce n'est pas une conclusion que je vais inventer. Réellement VB.NET apporte plus de robustesse à vos applications et, surtout pour le développeur, plus de rigueur. Quand cette rigueur sera maîtrisée, on ne pourra plus entendre tout et n'importe quoi sur les développeurs VB 6 comme c'est actuellement le cas. Croyez en ma longue expérience de travail avec des éditeurs, avec des gourous du C, du C++ et des branquignols dans ces mêmes langages. J'ai rencontré les mêmes catégories en VB, c'est juste une question de personne. Par contre, du fait de l'ouverture et de la permissivité de VB, on n'est pas entraîné à appliquer une certaine rigueur. Or, sans elle, on dérive assez facilement. Par exemple, si je ne fais pas attention, je peux instancier mon objet en late-binding c'est-à-dire que l'objet ne sera pas reconnu par le compilateur, mais, à l'exécution, si j'ai une erreur lors de l'appel à cet objet, tout plante.
Mais comme préconisé précédemment, essayez-le et faites-vous une idée par vous-même.
LR : On ne conclut pas comme cela cette aventure. Elle ne s'arrête pas puisqu'on va lancer d'autres types de rencontres. Il y aura les « Rencontres Accès aux Données » en janvier 2005 (http://www.microsoft.com/france//msdn/donnees.default.mspx ) puis les DevDays en mars 2005 où l'on va parler de VB.
Les développeurs VB sont attachés à leur produit, moi aussi : ça ne peut que perdurer !
Vive VB !
VII. Liens utiles▲
VII-A. Microsoft France▲
La page consacrée à Visual Basic NET : http://www.microsoft.com/france/vbasic/
La page de synthèse du VB Tour avec les codes des démonstrations et les vidéos :
http://www.microsoft.com/france/vbasic/rencontres/rencontres-telechargements.mspx
Lien de téléchargement du VB Power Pack
VII-B. Développez.com▲
Les cours de J-M Rabilloud, section .NET : https://bidou.developpez.com/
La migration : https://bidou.developpez.com/tutoriels/dotnet/Migration/
Le forum .Net
La version Visual Studio 2005 Express beta : http://lab.msdn.microsoft.com/express/default.aspx