Étant donné que le 6.0 exécution ships with Windows 7 et sera continue to be supported Visual Basic pour la durée de vie du système d'exploitation (until January 2020) et que le Visual Basic 6.0 IDE, bien que no longer supported, est assez stable, quels sont les risques autour de garder les applications critiques dans Visual Basic 6.0 pour les prochaines années?Les risques reposant autour de Visual Basic 6.0 applications
Répondre
Le official advice pour les propriétaires d'applications VB6 de Microsoft UK est:
[Ne pas mettre à jour ou remplacer votre application VB6 si] votre application est fonctionne très bien, il n'a pas besoin des changements pour beaucoup années, il n'y a pas envisage d'étendre la fonctionnalité, ni nécessaire de l'intégrer avec les nouvelles applications
cela vous dit les facteurs qui augmentent le risque d'une application VB6:
- Un besoin de changement l'application (corrections de bugs ou nouvelles fonctionnalités).
- Un besoin de intégrer l'application avec de nouvelles applications.
- Mais intégration ne nécessite pas migration. Interop vous permet de mélanger le code .Net avec VB6 (PDF whitepaper).
EDIT j'ai oublié de mentionner le risque principal. La migration du code VB6 vers .Net peut être une tâche importante. À mon avis, il est actuellement plus facile que c'était dans les premiers jours: il y a maintenant excellent commercial tools; et certaines fonctionnalités linguistiques VB.Net plus récentes en font easier. Le risque est que cela devienne encore plus difficile si vous le laissez trop longtemps. Il arrivera un moment où la plupart des personnes qui migreront ont déjà migré: alors les outils peuvent disparaître et les connaissances de la communauté sur la migration peuvent se dégrader. /EDIT
Je suis sûr que Microsoft finira par laisser tomber le moteur d'exécution VB6, mais gardez à l'esprit que Windows 8 prend en charge encore applications 16 bits. Et puis il y a des machines virtuelles. Personnellement, je pense que les applications VB6 fonctionneront encore longtemps.
Il y a beaucoup de risques ... Par exemple, si un trou de sécurité est trouvé avec le runtime VB6 - MS investira-t-il l'argent pour le réparer? Il y a de bonnes chances qu'ils le fassent, mais à ce stade, ils sont si vieux qu'ils ne le dérangeront peut-être pas.
L'évaluation des risques doit également être comment mission critique de votre application, et quelle est la taille/complication. Si cela est au cœur de votre entreprise et qu'une seule journée d'indisponibilité entraînerait la faillite de votre entreprise, je chercherais à la remplacer assez rapidement par quelque chose qui serait réellement pris en charge.
L'autre côté de la pièce est, vous avez beaucoup de compagnie. Il y a encore beaucoup de code VB6 en production (je suis à peu près sûr que certaines choses que j'ai écrites dans VB6 sont toujours en cours d'exécution).
Je ne suis pas d'accord avec certains de vos arguments ici. L'exécution de VB6 est ** partie de Windows **. Si Microsoft trouve un ** trou de sécurité ** dans n'importe quelle partie de Windows, il émet presque toujours immédiatement un correctif. Aussi, vous dites "remplacer par quelque chose qui est réellement supporté" - le runtime VB6 est pris en charge, en fait. – MarkJ
Vous risquez de travailler dans une langue que les développeurs ne souhaitent généralement pas traiter. Il sera plus difficile de trouver de bons développeurs lorsque les développeurs actuels partiront ou vous devrez développer l'application.
En outre, vous augmentez la taille de la base de code que vous souhaitez peut-être un jour mettre à niveau vers une autre langue. Le plus important est que l'ajout de nouvelles fonctionnalités à votre application VB6 est plus coûteux que si l'application était dans un meilleur langage comme C# ou VB.NET. Ceci est dû au fait que:
- Les développeurs VB6 coûtent plus cher à employer. Puisque les développeurs ne veulent pas utiliser VB6, ils demanderont plus d'argent pour accepter une position dans votre entreprise (je le ferais)
- .NET a une bibliothèque standard beaucoup plus grande et plus de composants tiers que VB6. Dans mon expérience, il existe beaucoup plus de composants tiers open source dans .NET tandis que les composants VB6 sont souvent propriétaires.
- en utilisant Visual Studio 2008 ou 2010 est plus productif que l'IDE VB6 en raison de toutes les améliorations et fonctionnalités des 10 dernières années.
- .NET a une meilleure prise en charge des tests unitaires.
- C# est un meilleur langage que VB6. Un bon développeur C# peut écrire une fonctionnalité beaucoup plus rapidement qu'un bon développeur VB6 parce que le langage est beaucoup plus puissant.
Je ne suis pas d'accord avec certains de ces points. Dans le climat économique actuel, du moins au Royaume-Uni, il est facile de recruter des développeurs désireux de travailler sur VB6: nous avons récemment engagé quelques personnes. Je pense que vous surchargez l'augmentation de productivité de VS 2010/.Net/C#. Ils aident, mais je ne pense pas que vous pouvez écrire des fonctionnalités "beaucoup plus vite". Ce ne sont pas des balles d'argent. Avant tout, il est essentiel d'évaluer de manière réaliste l'investissement dans les fonctionnalités ** existantes ** du VB6 (c'est-à-dire le coût de la migration) par rapport au travail nécessaire pour les nouvelles fonctionnalités planifiées (les économies supposées représentent un pourcentage). – MarkJ
@MarkJ, À quel point connaissez-vous C# (en particulier 3.5 et plus)? Les personnes qui pensent dans des langues moins puissantes (comme VB6) ne peuvent souvent pas comprendre les avantages d'un langage plus puissant. Paul Graham a appelé cela le Blok Paradox. – tster
Parlez-vous de génériques, de LINQ, de covariance/contravariance, de méthodes anonymes ...? Ils sont amusants et utiles, mais je pense que vous devez être prudent pour prétendre être ** beaucoup plus rapide **. Avez-vous des données? Voici quelque chose à propos de l'argument original "pas de balle d'argent". On pourrait l'appeler le paradoxe du «marketing blurb» http://en.wikipedia.org/wiki/No_Silver_Bullet Voici Joel sur les fonctionnalités du langage et la productivité http://www.joelonsoftware.com/articles/fog0000000006.html – MarkJ
Les applications dans VB6 sont faites en grandes quantités aujourd'hui. En termes simples, ils sont fiables. Il n'y a pas de risques, mais juste un obstacle, n'est pas multi-plateforme. Il y a énormément de projets VB6 open source en ligne pour tous les domaines. Il est maintenant utilisé sous Linux. Il fonctionne très bien avec ASM intégré pour les fonctions de bas niveau.
Quelques bons points:
composants VB6 sont gratuits en ligne.
VB6 est plus productif que Visual Studio 2008 ou 2010 ou tout autre langage après VS6. Contrairement à ce qui a été dit plus haut, VB6 est un meilleur langage que C# (c'est aussi beaucoup plus rapide). Un bon développeur VB6 peut écrire une fonctionnalité beaucoup plus rapidement qu'un bon développeur C# parce que le langage est beaucoup plus puissant.
Je me demande comment nous pouvons comparer le langage de programmation VB6 avec IDE - Visual Studio. Et qu'en est-il de la maintenabilité des grandes applications VB, en particulier avec l'utilisation de GOTO? "VB6 est une meilleure langue que C#" - déclaration controversée. Pourriez-vous fournir des preuves pour cela? –
Un autre risque possible vient également de l'utilisation d'un ancien ocx disposant d'un setup.exe 16 bits pour l'environnement de développement.
Vous ne pouvez pas exécuter l'installation 16 bits sur un nouveau o.s. 64 bits environnement de développement. Citation par exemple Farpoint Spread 3.0.16: il a une configuration de développeur 16 bits, mais dans ce cas chanceux, vous pouvez trouver une application mise à niveau 32bit setup.exe.
Certains ocx ne disposent pas de 32 bits setup.exe pour l'environnement de développement.
Souvent, il existe des problèmes avec les anciens numéros de série ocx/clés d'enregistrement.Avec certains de ces ocx vous ne recevez plus de support
Quelques réponses ici: http://stackoverflow.com/questions/400479/vb6-lives-forever-like-cobol – RQDQ
Nous pouvons être sûr de la durée de vie de Windows 7. Le soutien général prendra fin en janvier 2015 et le soutien prolongé prendra fin en janvier 2020. Il reste donc 9 ans et demi à remplir au moment de la dactylographie. http://support.microsoft.com/lifecycle/search/default.aspx?alpha=Windows+7 – MarkJ
@tster Je considère que l'IDE VB6 est stable. Je l'utilise continuellement depuis plus de 10 ans, et j'ai aussi beaucoup de collègues, et nous n'avons eu aucun problème. BTW Je crains que je ne peux pas dire la même chose pour les versions ultérieures (.Net) de Visual Studio, qui ont parfois planté. – MarkJ