Microsoft Windows s’est considérablement amélioré en tant qu’environnement de développement au cours des dernières années. Le sous-système Windows pour Linux (WSL) vous permet de travailler de manière transparente avec Linux sur Windows sans le bruit et la surcharge d’une VM. Tous les outils de développement logiciel populaires qui figurent dans les flux de travail courants existent dans les éditions natives de Windows. Et Microsoft a introduit une multitude de fonctionnalités pour les développeurs directement dans le système d’exploitation qui ne reçoivent toujours pas la facturation qu’elles méritent.

Mais rien de tout cela n’est automatique. Si vous souhaitez tirer le meilleur parti de Windows en tant que système de développement, vous devrez faire quelques démarches. Le travail n’est pas très éloigné des méthodes habituelles utilisées par les développeurs pour modifier leurs environnements de travail, mais les étapes spécifiques sont importantes – et certaines d’entre elles ne sont pas évidentes.

Voici une présentation des cinq étapes les plus importantes à suivre pour configurer un système Windows pour les travaux de développement de logiciels. Notez que vous aurez besoin des droits d’administrateur sur le système pour accomplir de nombreuses tâches.

Étape 1. Installez le sous-système Windows pour Linux

WSL offre aux utilisateurs Windows un système Linux complet en ligne de commande, avec moins de surcharge qu’une VM. La part du lion du travail de développement logiciel dans le monde se déroule sous Linux, ou sur un système de type Unix comme macOS, donc avoir un véritable système Linux disponible dans une session de terminal est une énorme aubaine.

Pour installer WSL, ouvrez une console élevée en administrateur et saisissez :

wsl --install

L’installation peut prendre un certain temps, car le système devra télécharger à la fois les éléments de base pour WSL et une distribution Linux pour fonctionner avec.

La distribution Linux par défaut dans WSL est Ubuntu 26.04 LTS. En ce qui concerne les valeurs par défaut, Ubuntu satisfera la plupart de ce dont un développeur pourrait avoir besoin d’une distribution Linux. Cependant, d’autres distributions sont disponibles et d’autres sont ajoutées régulièrement. Vous pouvez même créer votre propre distribution Linux personnalisée pour WSL.

Une fois WSL installé, vous pouvez saisir wsl --list --online pour voir toutes les distributions disponibles. Entrer wsl --install (utilisez les noms de la colonne de gauche) pour en installer un.

La plupart des choix répondent à des goûts différents ou à un besoin spécifique. Par exemple, si vous êtes plus à l’aise avec Debian Linux, ou si vous développez un projet qui prend Debian comme substrat, vous souhaiterez installer Debian. Mais Ubuntu devrait fonctionner dans la plupart des cas d’utilisation.

Les distributions WSL sont stockées par défaut dans le dossier de votre utilisateur AppData répertoire, sous AppDataLocalPackages. Si vous souhaitez déplacer les fichiers vers un autre répertoire ou volume, vous pouvez utiliser la commande wsl --manage --move .

Microsoft a récemment introduit une nouvelle fonctionnalité majeure pour WSL, le conteneur WSL, qui vous permet d’exécuter des conteneurs Linux de manière native sur Windows. Le conteneur WSL est actuellement en préversion publique.

Étape 2. Configurez un volume Dev Drive pour vos projets

La plupart des utilisateurs Windows utiliseront simplement par défaut un répertoire sur un volume NTFS pour stocker leurs projets, que ce soit dans leur profil utilisateur ou sur un autre chemin. Ce n’est pas une mauvaise valeur par défaut, mais cela laisse de meilleures options sur la table. L’un d’eux est Dev Drive.

Dev Drive est un type de volume plus récent proposé sur Windows. Au lieu de NTFS, il utilise un système de fichiers plus récent appelé ReFS (« Resilient File System »), initialement développé pour Windows Server. ReFS offre des fonctionnalités qui complètent les types de charges de travail rencontrées dans le développement de logiciels :

  • Copie sur écriture. Les répertoires de projet peuvent contenir des milliers de fichiers et des dizaines de répertoires. La création de copies de ces projets peut être gérée beaucoup plus rapidement avec ReFS, car il effectue des copies des fichiers uniquement lorsqu’ils sont en cours de création. modifiépas seulement quand ils sont copié. Les copies inchangées sont des liens sur le disque vers les originaux.
  • Meilleur contrôle du comportement de l’antivirus. Les lecteurs de développement, par défaut, minimisent les interférences causées par les outils antivirus natifs de Windows. Il est possible d’exclure manuellement les répertoires de développement de l’analyse, mais le simple fait de configurer un Dev Drive automatise la gestion de l’analyse de son contenu.
  • VHD ou partition. Les lecteurs de développement peuvent être configurés en tant que fichier de disque dur virtuel ou utilisés directement sur une partition formatée. Le premier est plus flexible (plus facile à redimensionner, par exemple) ; ce dernier peut être légèrement plus performant.

Deux choses que vous devez garder à l’esprit à propos des Dev Drives :

  1. Les Dev Drives sont destinés aux projets, pas aux outils. Stockez les référentiels de vos projets, créez des artefacts et des fichiers mis en cache sur des lecteurs de développement. N’y installez pas de runtimes de langage, de compilateurs ou d’autres utilitaires de chaîne d’outils. Utilisez des volumes NTFS réguliers pour cela.
  2. Les outils du système de fichiers de bas niveau peuvent ne pas fonctionner comme prévu sur les volumes Dev Drive. Les utilitaires de système de fichiers de niveau expert qui fonctionnent en lisant directement les informations des tables de fichiers peuvent ne pas se comporter comme prévu avec les lecteurs de développement (et les volumes ReFS en général). Par exemple, l’outil de gestion de l’espace disque WizTree, qui lit directement les données des volumes NTFS pour de meilleures performances, ralentit considérablement lorsqu’il est utilisé sur des volumes ReFS.

Étape 3. Utilisez WinGet pour la gestion des packages

Jusqu’à récemment, Windows n’avait rien de tel qu’un système formel de gestion de packages ou un gestionnaire de packages central. Le Microsoft Store n’était pas une solution. Il installait uniquement des applications conformes au système de packaging de la plate-forme Windows universelle, ne fournissait que des applications spécifiquement fournies via le Microsoft Store et ne disposait pas d’interface de ligne de commande.

Plus récemment, Microsoft a introduit un système de gestion de packages approprié pour Windows : WinGet. WinGet installe tout type d’application Windows et fournit une interface de ligne de commande complète pour l’interaction et l’automatisation. De plus, il est largement pris en charge par l’écosystème logiciel Windows. Il y a de fortes chances que tout programme Windows que vous souhaitez possède un package WinGet. Cela fait de WinGet un moyen idéal pour récupérer tous les outils dont vous aurez besoin dans votre système de développement. (Nous en reparlerons plus tard.)

Pour rechercher un package dans le référentiel WinGet, entrez :

winget search "Thing to search for"

Les guillemets sont nécessaires si le package que vous recherchez comporte des espaces dans le nom, par exemple Adobe Acrobat Reader.

Résultat de recherche WinGet pour le terme « Acrobat ». La colonne Id affiche le nom à utiliser avec la commande winget install.

Fonderie

L’installation d’un package WinGet est assez simple :

winget install 

est l’identifiant (pas le nom !) du package à installer. Pour Adobe Acrobat Reader, comme ci-dessus, vous devez saisir :

winget install Adobe.Acrobat.Reader.64-bit

Si vous souhaitez une interface graphique intéressante pour votre flux de travail de gestion de packages, consultez UniGetUI. UniGetUI gère les packages pour plusieurs sources de gestion de packages : WinGet, Scoop, Chocolatey, npm, pip, Cargo et bien d’autres.

Étape 4. Configurez PowerShell pour autoriser les scripts

Il s’agit d’un ajustement unique que vous voudrez éviter avant de faire trop d’autres choses. C’est une incantation PowerShell pour permettre l’exécution de scripts locaux.

Lancez PowerShell en tant qu’administrateur et saisissez :

set-executionpolicy remotesigned

Vous ne devez le faire qu’une seule fois pendant toute la durée de vie du système. Windows exigera toujours que tous les scripts PowerShell que vous téléchargez sur Internet soient signés, mais il s’agit essentiellement d’un cas limite. Tous les scripts que vous créez localement fonctionneront tels quels.

Étape 5. Installez vos outils de développement indispensables

WinGet vous donne un accès rapide à tous les outils les plus courants dont vous auriez besoin sur un système Windows centré sur le développement. Il y a de fortes chances que vous disposiez déjà de vos outils préférés, mais voici un aperçu des éléments les plus utiles dans le développement Windows, ainsi que leurs identifiants WinGet pour une installation facile.

  • Git (Git.Git) : Le système de contrôle de version préféré de tous. La version Windows est essentiellement identique aux autres plates-formes.
  • Visual Studio BuildTools 2022 (Microsoft.VisualStudio.2022.BuildTools) : L’outil de ligne de commande minimal nécessaire pour utiliser le système de compilation C/C++ de Microsoft Visual Studio.
  • CMake (Kitware.Cmake) : Solution de build multiplateforme pour C/C++. Fréquemment nécessaire pour des projets plus grands ou plus complexes utilisant ces langages.

Notez que l’installation par défaut de BuildTools ne dispose généralement pas des outils nécessaires pour effectuer des opérations de génération C/C++ minimales. L’exécution de cette commande devrait vous donner ce dont vous avez besoin :

winget install -e --id Microsoft.VisualStudio.2022.BuildTools --force --override "--passive --wait --add Microsoft.VisualStudio.Workload.VCTools;includeRecommended"

Tous les éditeurs populaires sont également disponibles sous forme d’applications Windows natives :

  • Code Microsoft Visual Studio (Microsoft.VisualStudioCode)
  • GNU Emacs (GNU.Emacs)
  • Néovim (Neovim.Neovim)

Certains autres outils de développement sous Windows sont facultatifs, mais utiles :

  • CoreUtils pour Windows (Microsoft.Coreutils) : Un projet open source géré par Microsoft qui apporte des dizaines d’utilitaires de ligne de commande Linux à Windows, tels que cp, grep, findet ls.
  • MSYS2 (MSYS2.MSYS2) : Une collection d’outils pour créer des binaires Windows à l’aide du compilateur GCC. Fondamentalement, une alternative à la pile de build Visual Studio basée sur l’environnement Cygwin.
  • LLVM (LLVM.LLVM) : Le framework de compilateur qui alimente Clang, Rust, Swift et de nombreux autres projets. Notez que si vous utilisez LLVM comme dépendance, vous devrez installer la version spécifique de LLVM requise par votre projet.
  • Bureau Docker (XP8CBJ40XLBWKX) : La version native Windows de l’application Docker Desktop.
  • Microsoft PowerToys (Microsoft.PowerToys) : Une collection de plus de 30 utilitaires qui facilitent grandement la configuration de Windows : un éditeur de fichiers hôtes, un outil de déverrouillage de fichiers (pratique pour identifier les processus qui verrouillent un fichier donné), un outil d’épinglage de fenêtre, un outil d’extraction de texte (pratique pour lire du texte de n’importe où, y compris les parties de l’écran qui ne peuvent pas être mises en surbrillance avec le curseur), et bien d’autres.

Un système de développement Windows en une seule étape

La plupart des développeurs aiment avoir un contrôle total sur les installations et la configuration de leur système de développement. Mais d’autres voudront peut-être un kit de démarrage prêt à l’emploi et avisé. Pour ceux qui souhaitent utiliser le raccourci, Microsoft fournit Windows Developer Config.

Windows Developer Config est une collection de scripts PowerShell qui configurent votre système en tant qu’environnement de développement. Vous pouvez choisir parmi une configuration complète de poste de travail de développement, une configuration « WSL Comfort » qui se concentre sur les outils de ligne de commande, ou l’une des nombreuses configurations de charge de travail spécifiques au langage qui vous offrent le compilateur/interprète, des outils supplémentaires et des extensions VS Code.

A lire également