lucidiot's cybrecluster

Développement sous Windows XP

Lucidiot Informatique 2022-06-05
Divers outils et bricolages pour créer des logiciels obsolètes par design.


Voici le dernier article de ce qui devait initialement être une simple introduction à d'autres projets. On va à nouveau voir une ribambelle de logiciels installés sur bunker, mon ThinkPad R50e sous Windows XP, mais cette fois spécifiquement pour les tâches de développement. Ces logiciels entreront tous en jeu un jour ou l'autre pour un de mes projets loufoques d'ingénierie inversée sous XP.

Ligne de commande

Je dispose de trois shells différents, qui se complètent un peu les uns et les autres. D'abord, il y a la bonne vieille console MS-DOS (cmd.exe), que j'utilise surtout pour exécuter mes scripts batch vieux de 10 ans et jouer avec mes tous premiers programmes, ou juste pour exécuter un programme avec des arguments de ligne de commande. En jouant un peu avec, je me suis très vite rendu compte que j'allais vraiment avoir besoin d'alias, parce que tous mes réflexes de terminaux Linux se montraient et ça devenait agaçant. Les commandes les plus simples comme ls ou cat ne fonctionnent plus ! J'ai donc créé un fichier cmdrc.cmd, utilisant une des deux extensions qui indiquent un script Batch, et j'y ai défini quelques alias avec doskey :

@echo off
doskey ls=dir
doskey rm=del
doskey pwd=cd
doskey cat=type
doskey vim=edit
doskey ..=cd ..
doskey ...=cd ../..
doskey ....=cd ../../..
doskey .....=cd ../../../..
@echo on

J'ai ensuite configuré cmd.exe pour qu'il exécute ce script à chaque démarrage automatiquement. Pour cela, il faut faire un tour dans l'Éditeur du Registre pour ajouter une valeur appelée AutoRun dans la clé HKEY_CURRENT_USER\Software\Microsoft\Command Processor. Elle contiendra le chemin absolu du script, par exemple "D:\Dev\cmdrc.cmd". Notez qu'il faut encadrer avec des apostrophes doubles (") si le chemin d'accès contient des espaces. Ainsi, je peux taper mes commandes les plus courantes sans paniquer.

Je voulais à la base essayer d'utiliser cmd autant que possible lorsque j'ai besoin d'un terminal, en comptant notamment sur ce cmdrc et le fait d'installer ou d'écrire divers scripts supplémentaires pour améliorer mon expérience. Mais j'ai pour le moment un peu laissé ça tomber, notamment parce que j'ai été distrait par moult autres projets intéressants sous XP, donc je me rabats finalement sur un shell plus classique.

Mon shell principal est donc une installation de Bash fournie par Git for Windows. Étonamment, exécuter certains programmes même développés par Microsoft depuis ce shell fonctionne parfois mieux que double-cliquer sur un exécutable, d'utiliser la boîte de dialogue Exécuter ou d'exécuter via cmd.exe. J'essaie parfois d'installer quelques outils venus du projet gnuwin32 pour le rendre encore plus confortable.

Enfin, j'ai aussi installé Windows PowerShell 2.0, la dernière version de PowerShell compatible avec XP. J'ai déjà joué avec PowerShell par le passé mais je n'y suis pas non plus très familier. J'en sais juste assez pour pouvoir chercher un peu sur Google quand je veux bricoler avec, notamment lorsque je veux faire appel rapidement à des méthodes du .NET Framework sans avoir recours à du code C#.

Éditeurs de texte

Il faut bien au bout d'un moment un moyen d'écrire du code ou des données, ou encore d'analyser des fichiers textes existants. J'ai déjà mentionné Notepad++ précédemment pour l'écriture de mes articles de blogs, mais c'est aussi mon outil principal pour lire rapidement n'importe quel fichier texte ou écrire du code sans ouvrir un IDE tout entier. Je dispose cela dit aussi de EDIT.COM, l'éditeur de texte de MS-DOS qui ne fonctionne pas sous les systèmes 64-bit mais que vous pouvez remplacer par tilde, du bon vieux bloc-notes de Windows, et de Notepad2, un éditeur légèrement amélioré fourni par mon installation de Git for Windows.

Développement .NET

J'utilise majoritairement C# quand je veux développer sous XP, tout simplement parce que je connais ce langage et que je n'ai pas trop envie de faire l'effort d'en apprendre encore un autre, et parce qu'il est difficile de faire mieux quand il s'agit de faire du développement exclusivement pour Windows, et utilisant parfois des fonctionnalités assez particulières de Windows quand je veux faire des bricolages étranges, que d'utiliser du Microsoft. J'ai donc installé Visual Studio 2010 Professional, la dernière version compatible avec XP.

Je dispose également de Visual Studio 2005 parce que je m'intéresse aussi à du développement compatible avec Windows 2000, et peut-être que je m'approcherai plus tard du développement sous Windows CE ou Windows Mobile. Enfin, j'ai aussi Visual Studio 6, ce qui n'est pas vraiment du .NET puisque c'est la dernière version qui précède .NET, et je m'en sers surtout quand je veux explorer des technologies tellement obsolètes qu'elles n'utilisent pas .NET du tout ou travailler avec du code natif en Visual Basic.

Développement Web

Je ne fais pas tant que ça de développement Web, puisque les navigateurs sont très lents et gourmands en ressources, et que je suis développeur Web de profession, donc j'ai tendance à vouloir fuir ça dans mes hobbies. Cela dit, j'aime bien jouer avec du Web 1.0 ou expérimenter avec toutes les fonctionnalités Web de Windows XP, puisque XP était encore à l'époque du « mouvement » .NET, cette tentative de Microsoft d'intégrer le Web au système d'exploitation. On reviendra sur ce sujet plusieurs fois plus tard sur ce blog.

Je dispose du bon vieux FrontPage 2003 pour créer des sites statiques, et c'est généralement plus pour m'amuser que pour expérimenter avec Windows que je vais en faire, comme par exemple pour le Commonhealth of Casakhstan. Je peux aussi utiliser moult autres programmes de la suite Office, puisque la plupart ont une fonction pour enregistrer en HTML, et je peux ainsi faire très peur à tous les développeurs Web. Je ne comprends pas pourquoi tout le monde ne crée pas ses sites avec PowerPoint…

Je peux faire du développement en ASP sous Visual Studio, ou je peux faire encore pire avec Visual InterDev 6. Je n'ai pas pris le temps d'essayer de mettre à niveau à XP Professionnel donc je n'ai pas accès à IIS, mais je peux utiliser à la place Baby Web Server pour héberger un site statique ou exécuter des scripts ASP. Je ne compte certainement pas rendre un tel serveur public ; cet hébergement est uniquement en local et me permet surtout de faire de « l'autophishing » en modifiant mon /etc/hosts pour me faire passer pour des sites de Microsoft et modifier des résultats d'API par exemple. On verra quelques usages de ce serveur dans d'autres projets aussi.

Il est finalement plus fréquent que je me retrouve juste à utiliser des éditeurs de texte qu'à utiliser des IDE pour écrire du HTML, CSS, JS, XML ou VBS.

Documentation hors ligne

Tout est bon pour éviter de démarrer le logiciel le plus lourd du système, plus lourd qu'un IDE complet, c'est-à-dire le navigateur web. Je suis loin de connaître par cœur la plupart des fonctionnalités du .NET Framework, donc je sais que quand je code quelque chose avec Visual Studio, je vais forcément me retrouver à chercher beaucoup de choses dans la documentation officielle de Microsoft. Mais la majorité des choses que je vais trouver dans cette documentation sont des documents ayant survécu à plusieurs versions de la documentation MSDN. À l'époque où tout le monde n'avait pas forcément une connexion Internet, ou au moins n'avait pas la bande passante ou le budget suffisant pour se permettre de constamment invoquer StackOverflow au moindre problème, la documentation MSDN était distribuée sous forme de CD ou DVD.

J'ai installé deux versions de la MSDN simultanément : la version October 1999, qui inclut de la documentation à jour pour Visual Basic 6.0, et la version 2005, qui inclut de la documentation pour le .NET Framework 2.0. Ces deux documentations sont très complètes, incluant des articles de blogs, des exemples de code, et en fait tout ce qui a pu être publié par Microsoft concernant le développement avec ses technologies. On explore ces documentations avec un logiciel dédié qui inclut un moteur de recherche avec un filtre par langage de programmation ou cadriciel. Ça occupe pas mal d'espace disque, mais même avec mon pauvre disque 4200rpm, ça reste plus rapide que d'essayer d'ouvrir le site actuel de Microsoft Docs.

Si de la documentation hors ligne moderne vous intéresse, je vous recommande DevDocs, un site compilant des documentations provenant d'un grand nombre de technologies et fournissant une recherche universelle dessus, ainsi qu'un support pour le stockage hors ligne. J'arrive même à m'en servir avec Firefox sous XP, quand je ne peux plus faire autrement que démarrer le navigateur…

Autres environnements de développement

J'ai quelques autres environnements de développement pour d'autres langages que j'ai installé pour pouvoir jouer un peu ou pour répondre à des besoins spécifiques. J'ai notamment installé Astase PowerBatch, un IDE pour Batch, le langage de script de MS-DOS. Je l'avais utilisé quand je débutais en programmation pour écrire notamment un simulateur du supercalculateur de Code Lyoko.

J'ai également installé Microsoft Small Basic, une tentative par Microsoft de faire un langage un peu plus simple pour introduire les enfants à la programmation. Je ne le trouve pas très simple et loin d'être aussi adapté aux plus jeunes que d'autres projets comme Scratch.

Notez que, même si Python est le langage dans lequel je suis le plus familier, je n'ai rien installé qui le concerne. Je suis même bien content que ProxHTTPSProxy, le proxy que j'utilise pour le support TLS 1.3 dans Windows XP, soit un exécutable classique sans dépendance sur Python alors qu'il a été codé en Python. Python est généralement un joli bazar à utiliser sous Windows, et il y a un bon paquet de dépendances qui ne prennent pas en charge Windows en général ou qui n'ont jamais pris en charge Windows XP. Je ne trouve pas que tout l'effort qu'il me faudrait mettre pour utiliser ce langage, ainsi que tout l'effort de documentation à mettre et la difficulté d'installation si quelqu'un d'autre voudrait utiliser un de mes projets, valent le coup par rapport à l'utilisation d'autres langages qui s'intègrent mieux avec XP encore maintenant.

Je dispose de Lua for Windows, car je fais parfois du Lua en petite quantité. Contrairement au Lua classique, il suit un principe de « piles incluses », donc il dispose d'un bon nombre de paquets déjà disponibles tels qu'un support SQLite. Ça en fait finalement un assez bon équivalent à Python, et il est possible d'exécuter mes scripts sous d'autres systèmes plus facilement.

Enfin, j'ai aussi installé Microsoft HTML Help Workshop, un éditeur pour générer des documentations au format CHM. Ce sont les fichiers d'aide avec les fameux livres violets, qui comprennent une table des matières, un index, etc., et je reviendrai un peu dessus dans de futurs articles.

Contrôle de code source

Pour conserver plusieurs versions du code source de mes projets, je fais comme tout le monde aujourd'hui, j'utilise Git. Pour être plus précis, j'utilise Git for Windows 2.10.0 et TortoiseGit 1.8.16, les dernières versions qui fonctionnent officiellement avec Windows XP. Git for Windows fournit Git lui-même, ainsi que les outils de ligne de commande que j'ai mentionné plus tôt pour mieux le supporter. TortoiseGit fournit une intégration améliorée de Git avec l'explorateur Windows, notamment une fenêtre de résolution visuelle des conflits ou des icônes de statut des fichiers.

Il est à noter que je dispose aussi de Visual SourceSafe (VSS), puisqu'il est fourni avec Visual Studio 6, ainsi que Team Foundation Server (TFS) avec Visual Studio 2010. Peut-être que j'essaierai un jour SourceSafe, vu que j'en ai vu des avis fort négatifs !

Outils divers

Il reste enfin d'autres outils que je peux mentionner dans mon menu Tous les programmes, liés à mes activités de développement, et qui seront peut-être mentionnés plus tard pour des projets spécifiques :

Conclusion

Voilà qui conclut cette introduction à mon utilisation de Windows XP. Si vous connaissez des outils plus intéressants que je pourrais utiliser sous XP pour mes activités de développement, n'hésitez pas à me les suggérer.

J'ai enfin donné suffisamment de contexte pour pouvoir parler de ce que j'ai concrètement fait avec, donc on pourra voir une prochaine fois un tout premier projet sous XP.


Commentaires

Il n'y a pour l'instant aucun commentaire. Soyez le premier !