← ブログに戻る

Visual Studio から Mac へ実践:初日の環境チェックリスト、IDE 選定、キー割り当て移行

Visual Studio から Mac へ実践:初日の環境チェックリスト、IDE 選定、キー割り当て移行

MacBook を渡されたのに <kbd>Ctrl+S</kbd> で保存し、エクスプローラーでソリューションを探す——筋肉記憶の方が SDK より移行が難しい。初日コンパイル、初週 PR、初月 CI の三段階チェックリストです。

MacBook を手にした直後、いきなり「スタートメニュー」で Visual Studio を探したり、エクスプローラーで .sln をダブルクリックしようとする——それは SDK より難しいのは筋肉記憶 だというサインです。本記事は Windows で Visual Studio / Visual Studio Code を何年も使ってきた .NET、C++、フルスタック開発者 向けに、「初日にコンパイル、初週に PR、初月に CI」という三段階で再現可能な環境チェックリストを示し、最後に iOS ビルドを クラウド Mac にオフロードするタイミングを説明します。

初日 2 時間:ターミナル、Git、dotnet を先に動かす

いきなりフル Xcode は入れないでください。下の順序なら、通常 120 分以内 に「ソリューションを開く → F5 デバッグ」の主経路を復旧できます。

1. Command Line Tools と Homebrew

xcode-select --install          # ダイアログで確認;Git と 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)"

Apple Silicon では Homebrew のプレフィックスは /opt/homebrew(Intel は /usr/local)。インストール後 brew doctor でエラーがないか確認。

2. .NET SDK とよく使う CLI

brew install --cask dotnet-sdk
brew install git gh jq fzf ripgrep
dotnet --info                   # SDK バージョンと RID(osx-arm64)を確認

チームで SDK バージョンを固定する場合、プロジェクトルートに global.json を追加:

{
  "sdk": {
    "version": "8.0.400",
    "rollForward": "latestFeature"
  }
}

3. Git の身元と改行コード

git config --global user.name "あなたの名前"
git config --global user.email "you@company.com"
git config --global core.autocrlf input   # Mac では input 推奨;Windows 同僚への全リポ改行 diff を防ぐ

ハマりどころ: Windows からクローンしたリポで「全ファイル modified」になる場合、9 割は core.autocrlf.gitattributes の不一致。初日にチーム規約を揃える方が、後から履歴を洗うより安い。


IDE の選び方:Rider、VS Code、それとも Windows を残す?

マイクロソフトは Visual Studio for Mac のサポートを終了しました(2024-08)。現実的な選択肢は次のとおり:

ツール向いている人移行コスト備考
JetBrains Rider元 Visual Studio ヘビーユーザー、ReSharper 派ソリューション構造、リファクタ、NuGet、デバッグが VS に最も近い;有料
VS Code + C# Dev Kitすでに VS Code 慣れ、軽量リポ非常に低無料;大規模ソリューションのインデックスとリファクタは Rider より弱い
VS Code + CursorAI 補助コーディング中心VS Code 拡張エコシステムと互換;Agent はターミナルを頻繁に叩く
フル XcodeiOS / macOS / MAUI iOS ターゲットApple プラットフォーム作業時のみ必須;容量大、更新頻繁
Parallels / リモート Windowsレガシー WinForms、WPF、特定 VS プラグイン応急は可、日常の主力には非推奨

判断の目安:

  • ASP.NET Core / API / コンソール → Rider か VS Code のどちらかで十分。
  • .NET MAUI で iOS リリース → ローカル Rider + Xcode(または VS Code + Xcode CLI);Android エミュレータは Mac でそのまま動く。
  • チームで ReSharper ルール統一 → Rider ライセンスを会社 JetBrains アカウントに合わせる。

キー割り当てとウィンドウ管理:Ctrl の筋肉記憶を 3 日で切り替える

Mac では が Windows の Ctrl の役割(保存、コピー、貼り付け、元に戻す)を担います。対照表は印刷してモニター横に貼るのがおすすめ:

操作Windows (VS)macOS
保存Ctrl+S+S
元に戻すCtrl+Z+Z
行コメントCtrl+K, Ctrl+C+/(VS Code/Rider で変更可)
デバッグF5+ または F5(ファンクションキーを有効化)
ソリューション全体検索Ctrl+Shift+F+Shift+F
アプリ切り替えAlt+Tab+Tab

ウィンドウ管理 が第二の痛点: Rectangle(無料)か Magnet を入れ、++方向キーで Win11 のスナップレイアウト相当を実現。マルチディスプレイでは、システム設定 → ディスプレイ → ディスプレイごとに個別の Spaces で、フルスクリーンアプリが画面間を飛び回るのを防ぐ。


ターミナル、シェル、Docker:PowerShell から zsh へ

推奨ミニマムセット

brew install starship eza bat fd
# ~/.zshrc スニペット
eval "$(starship init zsh)"
alias ls='eza --icons'
alias cat='bat'
PowerShell ユーザー
`brew install powershell` は可能だが、チームスクリプトは bash/zsh が多い;長期的には個人 alias を zsh に移すのがよい。
Docker Desktop
Windows 版と同様;Apple Silicon ではイメージアーキテクチャ(linux/arm64 vs amd64)に注意。DB をコンテナ化したあとも、接続文字列の localhost は Mac で同様に有効。
データベース GUI
Azure Data Studio、DBeaver、TablePlus は macOS 版あり;SSMS はネイティブ Mac 版なし——Azure Data Studio で代替。

.NET MAUI と iOS:ローカル開発、ビルドの分流

Mac 上の MAUI クロスプラットフォームプロジェクトの典型的な分担:

  1. Rider / VS Code:共有 UI とビジネスロジックを編集。
  2. ローカルシミュレータ:iOS/Android UI をデバッグ(Xcode + Android Studio エミュレータが必要)。
  3. Release Archivedotnet publish が Xcode ツールチェーンを起動;CI では固定 macOS ノードの方が安定。

Windows のみの Visual Studio 出身なら、初めての iOS パッケージは署名と Provisioning Profile で長く詰まる——IDE の問題ではなく Apple のフロー。Apple Developer — Xcode サポート で SDK と macOS バージョンの対応を確認。

ハイブリッドワークフロー: 16–24GB メモリの MacBook で日常コーディング;夜間のフル Archive、マルチブランチ CI はクラウド Mac mini に任せ、ノートのファンが一晩回り続けるのと DerivedData がディスクを埋めるのを避ける。SSH でスクリプト実行、証明書トラブル時だけ VNC——ヘルプセンターを参照。

初週チェックリスト:チーム連携で漏らさない

カテゴリ 確認項目
身元と鍵 SSH key を GitHub/GitLab に登録;gh auth login または会社 SSO
パッケージソース nuget.config が内部 feed を指す;dotnet nuget list source
証明書 Apple 開発証明書を .p12 でエクスポート、または CI で Base64 secret
環境変数 direnv.env はリポに入れない;1Password / 会社 Vault を使用
フォーマット editorconfig + dotnet format を Windows 同僚と揃える
プリコミット husky / pre-commit は Mac でも問題なく動く

Visual Studio の機能が Mac でどう置き換わるか

VS (Windows) の習慣Mac での相当
ソリューションエクスプローラーRider Solution ウィンドウ / VS Code Explorer
NuGet パッケージマネージャー UIRider NuGet ツールウィンドウ;または CLI dotnet add package
サーバーエクスプローラー / SQLAzure Data Studio、Rider データベースツール
IIS Expressdotnet run Kestrel;Docker リバースプロキシ
WinForms デザイナーネイティブ Mac デザイナーなし → Windows VM または Web/MAUI へ書き換え
テストエクスプローラーRider テストウィンドウ;dotnet test
プロファイラーdotnet-trace、Instruments(ネイティブ)、JetBrains dotTrace

いつクラウド Mac を使い、ローカル設定を積み上げないか

Visual Studio から Mac へ移行 するチームでよくあるシナリオ:

  • Windows が会社標準デスクトップ のまま、モバイル組だけ macOS ビルドが必要 → 専用 Mac をレンタルし、Windows から SSH でパイプラインを起動。
  • 複数 Xcode バージョンのマトリクス(iOS 16/17/18 クライアントを同時保守)→ ローカルに複数 Xcode はディスクを食う;クラウドでノード分割の方がきれい。
  • 短期の顧客プロジェクト、3 か月後に iOS 納品 → 日次/週次レンタルの方が Mac mini 購入より回収が早い。

迷ったら、第二台の「ビルド専用 Mac」を買う前に、日次レンタルで実リポの xcodebuild archive を回し、36 か月 TCO と比較。サイト内の GitHub Actions macOS Runner ノードコスト も参照できます。


まとめ:移行するのはワークフローであり、単一の IDE ではない

Visual Studio 開発者が Mac に移るとき、初日 は Homebrew、dotnet、Git、IDE 選定;初週 は改行コード、鍵、チームスクリプトの統一;初月 は iOS CI と重いコンパイルをノートから安定 macOS ノードへ切り離す。ツールは変わる(Rider、VS Code、Cursor)が、「コンパイルでき、デバッグでき、届けられる」リズムは途切れさせない。

MAUI + iOS パイプラインを組んでいるなら、ローカルは軽く保ち、Archive はクラウド Mac に——計算資源はコンパイルに使い、引き出しで眠らせない。

ローカルでコード、クラウド Mac で iOS ビルド

Visual Studio から移行後、.NET の日常開発は手元の Mac で;MAUI / ネイティブ iOS の Archive と CI は専用クラウド Mac mini にオフロードが向く。SSH、日次/週次/月次課金——たまのビルド用に第二台は不要。

環境が足りるか不明?日次レンタルで実際の `xcodebuild` を試してから、ローカルに入れる Xcode の量を決めよう。

関連記事

よくある質問

Mac に Visual Studio はまだある?

Microsoft は Visual Studio for Mac を終了(2024年8月サポート終了)。.NET 開発者は JetBrains Rider または VS Code + C# Dev Kit が第一候補。Windows 専用ツールチェーンが必要なら Parallels/リモート Windows は可だが、日常の主力にはしない。

Ctrl と Cmd にすぐ慣れるには?

システム設定 → キーボードでファンクションキーを調整;Rider/VS Code で IntelliJ IDEA Keymap または Visual Studio Keymap を導入。最初の3日は外付けキーボードに Ctrl→⌘ チートシートを貼ると効果的。

.NET プロジェクトは Mac でそのまま動く?

ASP.NET Core、コンソール、クラスライブラリは通常 dotnet restore && dotnet run で可。パス区切り、改行(core.autocrlf)、Windows 専用 API(WMI 等)に注意。MAUI iOS は macOS + Xcode 必須、Android は Mac で完結可能。

Xcode フルインストールは必須?

.NET / Web / バックエンドのみなら 不要Xcode Command Line Toolsxcode-select --install)で Git とネイティブ依存をカバー。iOS シミュレータ、Archive、Swift 混在にはフル Xcode(30GB+)が必要。

iTerm と Terminal どちら?

どちらでも可。PowerShell 慣れの開発者は iTerm2 + Homebrew zsh + starshiplseza 等のエイリアスがおすすめ。bash 前提のチームスクリプトは #!/usr/bin/env bash を明示。

いつクラウド Mac を借りるべき?

24/7 iOS CI、複数 Xcode バージョン、Windows メイン + たまの署名が必要なとき。専用 Mac mini で xcodebuild/Runner を回し、ローカルは Rider でコーディング——ビルド専用機を全員に配るより安い。

期間限定オファー →