Hello. Je vous trouve très gentil avec MS. Moi, je n'y arrive plus. En fait, je suis programmeur VB depuis QB 2.0. Je suis passé par QB 2.0, QB 4.5, MSPDS 7.0, VB DOS 1.0, VB WIN 2.0, VB WIN 4.0, VB WIN 5.0, VB WIN 6.0.... A l'époque, j'avais fais un peu de C, de C++ et de l'assembleur avec MASM 6.0 (j'oublais : un peu de GWBASIC aussi!) sans pouvoir décrocher de la famille du basic à cause de son enorme facilité de dev rapide et ce malgré ses problèmes de mémoire et de vitesse.
J'ai attendu longtemps d'avoir un VB7 et aujourd'hui, je peux vous dire que je suis très décu. Au point que je viens de changer de langage en choisissant borland c++ 6.0 Builder. J'aime pas delphi, c'est pas forcement logique mais surtout viscéral.
Pourquoi suis-je décu ? J'ai bien sur reçu les bétas de .NET, j'ai fais un peu de dev dessus puis j'ai arrêté, non sans prendre un abonnement MSDN pour être sur d'avoir la version finale des qu'elle sortirait.
Et des qu'elle est sortie, je me suis mis sur un projet perso plutôt technique et complexe - vu la force de .net, je me suis dis que je pouvais mettre le paquet : un gros logiciel d'analyse graphique pour la bourse
Très bien. Je commence et à part quelques problèmes de clarté dans le langage à propos des déclarations valeur/référence, tout va bien.... Et j'apprécie énormément le compilateur intégré qui permet de recompiler du langage VB.NET depuis un exécutable .NET - Ca permet à mes utilisateurs de programmer eux même des courbes graphiques et en plus ça compile.
Seulement, quand je commence à afficher une dizaine de courbes graphiques calculées en temps réel, je me rend compte que le truc va franchement pas assez vite et qu'il sera rapidement dépassé, je cherche des solutions, je pleure sur les NG de microsoft, j'obtient quelques réponses que j'applique à mon programme, ça s'améliore un peu mais finalement ça me convient toujours pas. Pour palier définitivement à ce problème, j'utilise la bibliothèque de compatibilité .NET / VB6 et je dessine mes graphiques en utilisant DirectX8. La, plus de problèmes, ça booste. La lenteur provient donc bien de GDI+. Bon, je me sens pas très bien quand même parce que ça m'oblige à distribuer le framework : 20 méga, DirectX 8 : environ 10 mega, mon programme : 300ko.
Par acquis de conscience, je fais un test d'installation de tout ça sur un windows 98 formaté. Je copie le necessaire : .NET framework redist, DirectX 8.0 et mon programme.
Je double clique sur .net framework installation et vlan premier message : il faut IE6 pour installer le truc. Resultat: Je télécharge IE6 : 80 mega, Je l'installe puis j'installe le framework : premier reboot. J'installe DirectX : deuxieme reboot. Je clique sur mon programme pour le lancer : vlan, il manque MDAC (pour les bases de données). je télécharge MDAC 2.6 et j'installe : troisième reboot. Je clique à nouveau sur mon programme, vlan, il manque MS-JET 4.0 (Gestion des bases de données Access) que je télécharge aussitôt : 5 MEGA. Je reclique sur mon programme (va t'il marcher un jour?) ben non, vlan, il manque les bibliothèques de compatibilité VB6 (pour DirectX) fournies avec VS.NET mais pas avec le Framework. J'installe les bibliothèques et enfin mon programme marche. Mais sacrée galère quand même.
Pour faire tourner un programme de 300 ko sur un poste w98 vierge, j'ai du installer environ 120mega de programmes compressés. C'est pas mal pour un programme que je veux distribuer en shareware !!! Absurde !!!
Si le framework est bien en substance, il se traine des tares monstres. C'est à dire qu'il faut quasiment distribuer une version .net de windows pour un programme de 300ko. De plus, il est franchement trop lent. Si sur de nombreux points, il est plus rapide que VB6, je suis persuadé que sur d'autre il l'est moins. Tout ceci, m'a dégouté et me fait changer de langage, avec regrets mais sans choix.
J'ai aussi testé ASP.NET et je peux vous dire que mes programmes fait en ASP 2.0 était compilé et tournaient très vite car j'utilisais ASP uniquement comme passerelle de quelques lignes pour lancer des DLL ActiveX. De ce point de vue, ASP.NET ne révolutionne rien pour moi. La compilation existait déjà bien avant. Concernant les WEB Controles, ils n'ont aucun interet, si ce n'est de faire ramer l'application web. En effet, ces contrôles se comportent comme les contrôles d'une applications windows classique : ils déclenchent des événements qui sont immédiatement renvoyés vers le serveur mais avec l'énorme problème que cela passe par internet et que ca ralentit grave. En intranet, ça peut être interessant, mais sur internet : zéro. On en revient à la programmation classique de site web, mais avec l'avantage évident de pouvoir programmer avec de vrais langages : VB.NET, C# et bientôt DELPHI.NET, c'est quand même bien pour ça, ces langages sont nettement plus évolués que les anciennes versions d'ASP. Par contre, programmer un site web avec .NET, c'est pas une sinécure car 1) VS.NET rame lourdement et l'alternative WEBMATRIX n'en est pas une car elle est trop limité : pas d'intellisense, pas de mise en forme de la syntaxe, etc. Ensuite, il faut au minimum windows xp pro ou windows 2000 et bien sur IIS version 5 minimum. Auparavant, on pouvait créer son site web avec PWS (personal web server) gratuitement et sous windows 98. Donc financièrement, c'est pas la même histoire non plus. En revanche, le concept des web services semble très intéressant pour les applications distribuées.
En conclusion, à l'heure actuelle il apparait évident que .NET n'est pas adapté au developpement d'applications windows critiques, rapides, portables entre différentes versions de windows, à des distributions grand public par internet sous forme de sharewares ou freeware, etc
Il apparait, par contre, être une évolution sérieuse du langage ASP en permettant la programmation, sous différents langages, de sites web et integre les controles web pour des applications intranet. Ou encore des applications distribués via les services web.
C'est donc plutôt un produit qui vise les entreprises. L'installation du framework sur tous les postes serait un véritable plus dans de nombreux cas malgré l'importante mise à jour necessaire. Si l'on devait faire une comparaison avec Java, je dirais que si Java n'avait pas la portabilité qu'il a, il serait écrasé par par le trio Visual Studio.NET / .NET Framework / C# mais comme ce n'est pas le cas, les choses sont différentes. Dans le cas ou l'on le poid du déploiement des outils ne pose pas de problème et que la plate forme cible est windows/internet, .net reste l'outil de premier choix. Dans le cas contraire, il faut utiliser Java sans discuter.
Quand à moi, je respecte cette façon de voir, et j'ai choisi borland Builder c++ car il dispose d'outils rad inexistants ailleurs que chez microsoft. En effet, BC++ Builder permet de construire une appli de la même façon qu'avec vb.net. La bibliothèque fournie avec Borland C++Builder version entreprise est plus riche que celle de .net. par ailleurs, les applications produites avec Borland C++Builder sont rapides et portables (linux,windows95,98,etc). Il est d'ailleurs fort probable que je change de plate forme pour linux pour des raisons économiques: la dependance microsoft revient chere (notament à cause des licences)
Même si j'ai évité les aspects purement techniques, j'espère avoir apporté un peu de lumière sur .net.
A+
Partager