Non capita spesso che Microsoft pubblichi uno script ufficiale per configurare da zero un PC Windows destinato allo sviluppo software. Il nuovo Windows Developer Config è, a tutti gli effetti, uno script di provisioning completo basato sul gestore di pacchetti WinGet e Desired State Configuration (DSC), progettato per trasformare un’installazione pulita di Windows 11 in un ambiente di sviluppo perfettamente configurato attraverso un unico comando.
L’iniziativa è particolarmente significativa perché arriva direttamente da Microsoft. L’azienda ha spesso fornito strumenti per sviluppatori, immagini preconfigurate, macchine virtuali e raccolte di utilità, ma raramente ha distribuito un file di configurazione ufficiale capace di automatizzare in maniera così estesa l’allestimento di una workstation locale.
Il progetto non si limita infatti all’installazione di alcune applicazioni: modifica impostazioni di sistema, abilita funzionalità avanzate del sistema operativo, installa Windows Subsystem for Linux (WSL), configura Windows Terminal, personalizza PowerShell e applica decine di ottimizzazioni pensate specificamente per chi sviluppa software.
L’obiettivo dichiarato è realizzare una workstation “pulita, leggera e priva di distrazioni“, replicando lo stesso ambiente che Microsoft utilizza nelle proprie immagini Cloud PC dedicate agli sviluppatori. In pratica, invece di seguire lunghe checklist di configurazione o documentazioni interne, è sufficiente eseguire un singolo comando WinGet affinché il sistema raggiunga automaticamente lo stato desiderato.
Dall’Infrastructure as Code al Desktop as Code
Negli ambienti cloud è ormai normale descrivere server, reti, container e servizi mediante strumenti come Terraform, Bicep, CloudFormation o Pulumi. La configurazione viene salvata in repository Git, revisionata, testata e distribuita automaticamente. La workstation dello sviluppatore è rimasta invece uno degli ultimi elementi gestiti principalmente attraverso procedure manuali.
Windows Developer Config porta l’Infrastructure as Code anche sul desktop utilizzando: il sistema descrive lo stato finale desiderato della macchina (software installati, impostazioni del sistema operativo, configurazioni dell’interfaccia utente, font, terminale, ambiente Linux e strumenti di sviluppo).
Il motore DSC verifica continuamente se il sistema si trova nello stato richiesto. Se una configurazione è già presente non viene modificata; se qualcosa è cambiato viene ripristinato automaticamente.
Una workstation Windows 11 per sviluppatori pronta con un solo comando
Il nocciolo del progetto proposto da Microsoft, che avevamo brevemente presentato tra le 4 novità Windows 11 per gli sviluppatori, è un singolo file dev-config.winget.
Dietro quella che sembra una semplice istruzione si nasconde una catena estremamente articolata di operazioni automatizzate. Il sistema installa software, applica modifiche al registro, configura il terminale, abilita WSL, gestisce riavvii obbligatori e riprende automaticamente l’esecuzione dopo il reboot senza richiedere ulteriori interventi dell’utente.
Dal punto di vista architetturale è interessante osservare come Microsoft abbia scelto di non frammentare la configurazione in decine di moduli indipendenti. L’intero flusso è mantenuto all’interno di un unico documento DSC, facilitando audit, gestione delle versioni e manutenzione.
Per iniziare il consiglio è portarsi, ad esempio, nella cartella dell’utente da una finestra PowerShell quindi eseguire i seguenti due comandi. Attenzione: è bene procedere da un’installazione pulita di Windows 11 non ancora personalizzata:
curl -O https://github.com/microsoft/WindowsDeveloperConfig/blob/main/windows-dev-config/dev-config.winget
winget configure -f dev-config.winget --accept-configuration-agreements --disable-interactivity
L’ambiente di sviluppo moderno secondo Microsoft
La selezione degli strumenti inclusi offre una fotografia interessante di come Microsoft immagina oggi una workstation professionale. Troviamo infatti i seguenti componenti software:
- PowerShell 7
- Windows Terminal
- Git
- GitHub CLI
- GitHub Copilot CLI
- Visual Studio Code
- .NET SDK 10
- Python 3.14
- UV
- Node.js LTS
- NVM for Windows
- Windows Application CLI
- PowerToys
- Oh My Posh
La presenza simultanea di .NET, Python e Node.js mostra chiaramente come Microsoft consideri ormai il mondo dello sviluppo come inevitabilmente poliglotta. Non esiste più un singolo stack dominante: la workstation deve essere pronta a supportare linguaggi e framework differenti fin dal primo avvio.
Particolarmente significativa è anche l’inclusione nativa di GitHub Copilot CLI, segnale di come gli strumenti basati sull’intelligenza artificiale stiano rapidamente diventando componenti standard dell’ambiente di sviluppo di oggi.
Il problema più difficile: automatizzare WSL
Uno degli aspetti più sofisticati dell’intero progetto riguarda l’installazione di WSL. Attivare WSL sul sistema implica l’abilitazione di componenti opzionali del sistema operativo, l’attivazione della Virtual Machine Platform, la gestione dei servizi Hyper-V e il completamento di almeno un riavvio.
Per affrontare questa complessità, la configurazione sviluppata da Microsoft dapprima verifica la presenza del servizio vmcompute, indicatore dell’attivazione della piattaforma di virtualizzazione. Se necessario viene eseguito wsl --install --no-distribution.
Successivamente lo script crea un meccanismo di ripristino automatico basato sulla chiave RunOnce del registro Windows: il sistema riavvia il computer per poi riprendere l’esecuzione dopo il login dell’utente e completare l’installazione della distribuzione Ubuntu all’interno di WSL.
Dal punto di vista ingegneristico si tratta di una soluzione particolarmente elegante perché consente di trasformare un processo normalmente interattivo in un flusso completamente automatizzato.
Configurazione automatica della workstation Windows 11 per lo sviluppatore
Abbiamo esaminato nel dettaglio il comportamento dello script dev-config.winget: una delle prime operazioni consiste proprio nella configurazione di WSL in modo da poter beneficiare di un ambiente Linux integrato in Windows pronto per sviluppo, DevOps e containerizzazione.
Il passo seguente consiste nell’installazione di Windows Terminal e PowerShell 7 tramite WinGet: lo script imposta PowerShell 7 come terminale predefinito, modifica il file settings.json di Windows Terminal e configura font personalizzati. Forza l’utilizzo del tema scuro di Windows modificando i valori AppsUseLightTheme = 0 e SystemUsesLightTheme = 0 a livello di registro di sistema.
La routine di configurazione attiva il comando sudo in Windows e abilita la modalità per gli sviluppatori (AllowDevelopmentWithoutDevLicense = 1) rimuovendo parimenti il limite tradizionale di 260 caratteri nei percorsi Windows (LongPathsEnabled = 1).
Il meccanismo proposto da Microsoft provvede poi ad abilitare le connessioni Desktop Remoto, configura Esplora file per mostrare estensioni dei file, file nascosti e percorso completo nella barra del titolo, disattivando cartelle frequenti, file recenti, suggerimenti cloud e notifiche di sincronizzazione, oltre ad attivare l’integrazione Git nel pannello di navigazione.
Poiché si tratta di una console per gli sviluppatori è Microsoft stessa a disattivare Widget (TaskbarDa = 0 e AllowNewsAndInterests = 0), la ricerca web nel menu Start (DisableSearchBoxSuggestions = 1), i cosiddetti Search Highlights (IsDynamicSearchBoxEnabled = 0), le raccomandazioni nel menu Start (Start_IrisRecommendations = 0). Lo script abilita inoltre una sorta di modalità “Non disturbare” a livello globale.
Per quanto riguarda il browser Microsoft Edge, lo script disattiva la procedura guidata iniziale e fa sì che ogni nuova scheda si apra vuota (NewTabPageLocation = about:blank).
Dal punto di vista tecnico il lavoro è notevole: dev-config.winget include controlli di stato (testScript), gestione dei riavvii, verifica degli hash dei download, dipendenze tra componenti.
Conclusioni
Al di là dell’aspetto strettamente tecnico, Windows Developer Config è interessante perché offre uno sguardo piuttosto inedito sulle preferenze degli stessi ingegneri Microsoft quando si tratta di allestire una workstation Windows destinata allo sviluppo software.
Scorrendo il contenuto del file dev-config.winget si scopre infatti che l’azienda non si limita a installare strumenti e ambienti di sviluppo, ma interviene in profondità sul comportamento del sistema operativo applicando una lunga serie di ottimizzazioni che, fino a oggi, erano spesso associate a utility di terze parti, script personalizzati o modifiche al registro.
La disattivazione dei Widget, la rimozione delle raccomandazioni dal menu Start, l’eliminazione dei suggerimenti nella ricerca, l’attivazione del supporto ai percorsi lunghi, la configurazione avanzata di Esplora file, l’abilitazione di sudo e perfino l’apertura di Edge con una scheda completamente vuota sono interventi che molti utenti Windows applicano per ottenere un ambiente più essenziale e produttivo.
È quindi curioso osservare come Microsoft abbia deciso di ufficializzare una serie di personalizzazioni che per lungo tempo sono rimaste patrimonio quasi esclusivo degli utenti più smaliziati. Invece di lasciare che ciascuno costruisca il proprio insieme di tweak e ottimizzazioni, l’azienda propone una configurazione di riferimento che riflette una visione molto precisa della workstation moderna: meno distrazioni, maggiore controllo e un ambiente di lavoro immediatamente pronto per scrivere codice.
Che si scelga o meno di adottare integralmente lo script, Windows Developer Config resta una lettura interessante perché mostra quali siano le impostazioni che Microsoft stessa considera oggi più adatte per un PC dedicato allo sviluppo.