MacBook neuf mais vous faites encore <kbd>Ctrl+S</kbd> et cherchez la solution dans l'Explorateur—la mémoire musculaire migre plus mal que les SDK. Checklist : compiler jour 1, PR semaine 1, CI mois 1.
Vous venez de recevoir un MacBook et votre premier réflexe est encore d’ouvrir le « menu Démarrer » pour chercher Visual Studio, ou de double-cliquer un .sln dans l’Explorateur — signe que ce n’est pas le SDK qui coûte le plus à migrer, mais la mémoire musculaire. Cet article s’adresse aux développeurs .NET, C++ ou full-stack qui ont passé des années sur Visual Studio ou Visual Studio Code sous Windows. Il propose une checklist d’environnement reproductible en trois phases — « compiler le jour 1, ouvrir une PR la semaine 1, faire tourner la CI le mois 1 » — et explique quand déléguer les builds iOS à un Mac cloud.
Les deux premières heures : faire tourner terminal, Git et dotnet
N’installez pas tout de suite Xcode en entier. Dans l’ordre ci-dessous, vous retrouvez en général le chemin principal ouvrir la solution → F5 déboguer en 120 minutes.
1. Command Line Tools et Homebrew
xcode-select --install # Confirmer la boîte de dialogue ; suffisant si vous n’avez besoin que de Git et clang
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
Sur Apple Silicon, le préfixe Homebrew est /opt/homebrew (Intel : /usr/local). Après installation, lancez brew doctor pour vérifier l’absence d’erreurs.
2. SDK .NET et CLI courantes
brew install --cask dotnet-sdk
brew install git gh jq fzf ripgrep
dotnet --info # Vérifier version SDK et RID (osx-arm64)
Si l’équipe fige une version SDK, ajoutez global.json à la racine du projet :
{
"sdk": {
"version": "8.0.400",
"rollForward": "latestFeature"
}
}
3. Identité Git et fins de ligne
git config --global user.name "Votre nom"
git config --global user.email "you@company.com"
git config --global core.autocrlf input # input recommandé sur Mac ; évite les diffs de fin de ligne sur tout le dépôt pour les collègues Windows
Piège fréquent : un dépôt cloné depuis Windows où « tous les fichiers sont modified » vient dans neuf cas sur dix d’un décalage entre
core.autocrlfet.gitattributes. Harmonisez les règles d’équipe dès le jour 1 — moins cher que de réécrire l’historique plus tard.
Quel IDE choisir : Rider, VS Code ou garder Windows ?
Microsoft a arrêté le support de Visual Studio for Mac (08/2024). Options réalistes :
| Outil | Pour qui | Coût de migration | Notes |
|---|---|---|---|
| JetBrains Rider | Gros utilisateurs Visual Studio, fans ReSharper | Faible | Structure solution, refactoring, NuGet, débogage les plus proches de VS ; payant |
| VS Code + C# Dev Kit | Déjà à l’aise avec VS Code, dépôts légers | Très faible | Gratuit ; indexation et refactoring plus faibles que Rider sur grosses solutions |
| VS Code + Cursor | Codage assisté par IA en priorité | Faible | Compatible écosystème d’extensions VS Code ; l’Agent sollicite souvent le terminal |
| Xcode complet | Cibles iOS / macOS / MAUI iOS | Moyen | Nécessaire uniquement pour les plateformes Apple ; gros volume, mises à jour fréquentes |
| Parallels / Windows distant | WinForms, WPF legacy, plugins VS spécifiques | Élevé | OK en urgence, pas comme poste principal au quotidien |
Guide de décision :
- Pur ASP.NET Core / API / console → Rider ou VS Code, l’un des deux suffit.
- .NET MAUI avec livraison iOS → en local Rider + Xcode (ou VS Code + Xcode CLI) ; l’émulateur Android tourne directement sur Mac.
- Règles ReSharper unifiées en équipe → aligner la licence Rider sur le compte JetBrains entreprise.
Raccourcis et gestion des fenêtres : basculer les réflexes Ctrl en trois jours
Sur Mac, ⌘ remplace Ctrl Windows pour enregistrer, copier, coller et annuler. Imprimez ce tableau et collez-le au bord de l’écran :
| Action | Windows (VS) | macOS |
|---|---|---|
| Enregistrer | Ctrl+S | ⌘+S |
| Annuler | Ctrl+Z | ⌘+Z |
| Commenter une ligne | Ctrl+K, Ctrl+C | ⌘+/ (modifiable dans VS Code/Rider) |
| Déboguer | F5 | ⌘+↩ ou F5 (activer les touches fonction) |
| Recherche solution entière | Ctrl+Shift+F | ⌘+Shift+F |
| Changer d’app | Alt+Tab | ⌘+Tab |
Gestion des fenêtres, second point douloureux : installez Rectangle (gratuit) ou Magnet, et utilisez ⌃+⌥+flèches pour un agencement type Win11. Sur plusieurs écrans : Réglages système → Moniteurs → Les moniteurs ont des Spaces distincts, pour éviter que les apps plein écran sautent d’un écran à l’autre.
Terminal, shell et Docker : de PowerShell à zsh
Kit minimal recommandé
brew install starship eza bat fd
# extrait ~/.zshrc
eval "$(starship init zsh)"
alias ls='eza --icons'
alias cat='bat'
- Utilisateurs PowerShell
- `brew install powershell` est possible, mais les scripts d’équipe sont souvent bash/zsh ; à long terme, migrez vos alias personnels vers zsh.
- Docker Desktop
- Proche de la version Windows ; sur Apple Silicon, attention à l’architecture des images (
linux/arm64vsamd64). Après conteneurisation des bases,localhostdans les chaînes de connexion fonctionne pareil sur Mac. - GUI bases de données
- Azure Data Studio, DBeaver et TablePlus existent sur macOS ; pas de SSMS natif Mac — Azure Data Studio en remplacement.
.NET MAUI et iOS : dev local, builds séparés
Répartition typique d’un projet MAUI multiplateforme sur Mac :
- Rider / VS Code : éditer l’UI partagée et la logique métier.
- Simulateurs locaux : déboguer l’UI iOS/Android (Xcode + émulateur Android Studio requis).
- Archive release :
dotnet publishdéclenche la chaîne Xcode ; sur la CI, un nœud macOS fixe est plus fiable.
Si vous venez de Visual Studio uniquement sous Windows, le premier package iOS bloquera longtemps sur signature et profils d’approvisionnement — workflow Apple, pas choix d’IDE. Voir Apple Developer — prise en charge Xcode pour l’alignement SDK / macOS.
Checklist semaine 1 : ne rien oublier en équipe
| Catégorie | Point de contrôle |
|---|---|
| Identité et clés | Clé SSH sur GitHub/GitLab ; gh auth login ou SSO entreprise |
| Sources de packages | nuget.config vers le feed interne ; dotnet nuget list source |
| Certificats | Exporter le certificat dev Apple en .p12 ou secret Base64 en CI |
| Variables d’environnement | direnv ou .env hors dépôt ; 1Password / coffre entreprise |
| Formatage | editorconfig + dotnet format alignés avec les collègues Windows |
| Pre-commit | husky / pre-commit tournent aussi sur Mac |
Où atterrissent les habitudes Visual Studio sur Mac
| Habitude VS (Windows) | Équivalent Mac |
|---|---|
| Explorateur de solutions | Fenêtre Solution Rider / Explorer VS Code |
| UI Gestionnaire de packages NuGet | Fenêtre outil NuGet Rider ; ou CLI dotnet add package |
| Explorateur de serveurs / SQL | Azure Data Studio, outils base Rider |
| IIS Express | dotnet run Kestrel ; reverse proxy Docker |
| Concepteur WinForms | Pas de concepteur Mac natif → VM Windows ou réécriture Web/MAUI |
| Explorateur de tests | Fenêtre tests Rider ; dotnet test |
| Profileur | dotnet-trace, Instruments (natif), JetBrains dotTrace |
Quand utiliser un Mac cloud plutôt qu’empiler la config locale
Scénarios fréquents chez les équipes qui passent de Visual Studio au Mac :
- Windows reste le poste standard, seul le mobile a besoin de builds macOS → louer un Mac dédié, déclencher la pipeline en SSH depuis Windows.
- Matrice de versions Xcode (clients iOS 16/17/18 en parallèle) → plusieurs Xcode mangent le disque local ; séparer les nœuds dans le cloud est plus propre.
- Projet client court, livrable iOS dans trois mois → location journalière/hebdomadaire rentabilise plus vite qu’acheter un Mac mini.
En cas de doute, avant d’acheter un second Mac « build only », faites tourner xcodebuild archive sur un vrai dépôt en location journalière et comparez le TCO sur 36 mois. À lire aussi : coût des nœuds GitHub Actions macOS Runner.
En bref : migrer le workflow, pas un seul IDE
Développeur Visual Studio sur Mac : jour 1 Homebrew, dotnet, Git et choix d’IDE ; semaine 1 fins de ligne, clés et scripts d’équipe ; mois 1 détacher la CI iOS et les grosses compilations du portable vers des nœuds macOS stables. Les outils changent (Rider, VS Code, Cursor), mais le rythme compiler, déboguer, livrer ne doit pas casser.
Si vous montez des pipelines MAUI + iOS, gardez la machine locale légère et confiez les archives au Mac cloud — mettez la puissance dans la compilation, pas dans un tiroir inutilisé.
Coder en local, build iOS sur Mac cloud
Après Visual Studio, le .NET quotidien reste sur votre MacBook ; Archive MAUI / iOS natif et CI vont mieux sur un Mac mini cloud dédié. SSH, facturation jour/semaine/mois—pas de deuxième machine pour des builds rares.
Pas sûr que l'environnement suffise ? Testez un vrai `xcodebuild` en location journalière avant de décider du Xcode local.
Pour aller plus loin
FAQ
Visual Studio existe-t-il encore sur Mac ?
Microsoft a arrêté Visual Studio for Mac (fin du support août 2024). Les développeurs .NET utilisent JetBrains Rider ou VS Code + C# Dev Kit ; Parallels/Windows distant seulement pour des toolchains Windows legacy—not comme machine quotidienne.
Comment s'habituer vite à Ctrl vs Cmd ?
Réglages Système → Clavier ; installer IntelliJ IDEA Keymap ou Visual Studio Keymap dans Rider/VS Code. Trois jours avec une antisèche Ctrl→⌘ sur le clavier externe—plus efficace qu'apprendre par cœur.
Les projets .NET tournent-ils tels quels sur Mac ?
ASP.NET Core, console et bibliothèques de classes : souvent dotnet restore && dotnet run. Attention aux séparateurs, fins de ligne (core.autocrlf) et API Windows only (WMI). MAUI iOS exige macOS + Xcode ; Android se développe entièrement sur Mac.
Faut-il Xcode complet ?
Pour .NET / web / backend seulement : non—les Xcode Command Line Tools (xcode-select --install) suffisent pour Git et dépendances natives. Xcode complet (30 Go+) pour simulateur iOS, Archive ou interop Swift.
iTerm ou Terminal ?
Les deux conviennent. Habitués de PowerShell : iTerm2 + Homebrew zsh + starship avec alias ls→eza. Scripts bash : #!/usr/bin/env bash dans le shebang.
Quand louer un Mac cloud plutôt qu'un setup local ?
Pour CI iOS 24h/24, plusieurs versions Xcode, ou PC Windows principal avec signature occasionnelle. Mac mini dédié pour xcodebuild/runner—moins cher qu'un Mac de build par développeur.