Windows での開発環境の構築テクニック

GEEKERS NITE #3

Tatsuro Shibamura @shibayan

私について

芝村 達郎 @shibayan

そろそろ Surface Laptop 4 を買い替えたい

必然的に開発環境を再構築しないといけない

構築方法とインストールしていたツールを
毎回忘れてしまう🤦‍♂️

この辺りを楽にして PC を買い替えやすくしたい

普段使っている開発ツールの紹介

  • Visual Studio 2022
    • C# / C++ / Azure / Windows Desktop など
  • Visual Studio Code
    • Node.js / Python / Terraform など
  • 各種言語ランタイム / SDK / CLI
    • .NET / Node.js / Python / Terraform CLI など
  • その他諸々
    • Azure Storage Explorer / Azure CLI / GitHub / Postman / Slack など

Visual Studio は簡単

Visual Studio Code も簡単

  • WinGet を使ってインストールできる
    • winget install -e Microsoft.VisualStudioCode
  • 設定は GitHub Account か Microsoft Account を使うと同期できる
    • 拡張機能も同期可能なので Codespaces で捗る
  • C# 以外は基本 VS Code を使うようになった

Windows の開発環境は公式ドキュメントがある

WinGet でアプリケーション管理を楽にする

  • Windows 標準搭載のパッケージマネージャ
    • 最新の Windows を使っていて、アプリインストーラーが最新なら使える
  • コマンドラインでアプリケーションのインストールが可能
    • winget install -e <パッケージ ID> でインストール
  • インストールされているアプリのエクスポート・インポートが可能
    • winget export / winget import

WSL はとても簡単にインストール可能

  • wsl --install を実行するだけの簡単さ
    • 必要に応じてディストリビューションを選択してインストールも可能
  • 現在 WSL は Store 経由で最新版が配信されている
    • wsl --update を実行すると最新版への更新が可能
  • 移行の際には wsl --export を行うと丸ごと tar に出来る
    • wsl --importtar から環境を戻せる

最近は Dev Container / Codespaces も

  • VS Code と Docker がインストールされていれば構築不要
    • リポジトリに devcontainer.jsonDockerfile を含めておくだけ
  • GitHub Codespaces ならブラウザだけで済む
    • ローカルの VS Code で開く機能もある
    • ポートフォワーディング周りが使いやすくなるので地味におすすめ
  • Dev Container は WSL との相性も抜群に良い

ランタイムなどのバージョン管理問題

  • C# (.NET) は SDK 自体がバージョン管理の仕組みを持っている
    • 複数バージョンが共存可能、global.json で指定できる
  • Node.js は選択肢が多い
    • 最近は Volta を使うようにしている
  • Python は難しすぎる
    • 複数バージョンの使い分けをしたくなくなった
  • それ以外の CLI ツールは最新版を常に入れている

言語に合わせて使い分けていく

  • C# は Visual Studio がやはり最強
    • ➡️ ハイパフォーマンスな PC が良いので仮想化などせず構築する
  • Node.js は VS Code と高速なストレージが欲しい
    • ➡️ WSL を使うのが現状では一番パフォーマンスが良い
  • Python はランタイムのバージョン管理が面倒
    • ➡️ Dev Container / Codespaces で個別に環境を用意する

Windows の細かい設定まで管理したい

例えば開発者モードや Windows 機能の有効化など

WinGet を使って Windows の構成管理まで行う

  • WinGet 構成ファイルという機能が現在プレビュー
  • Dev Home アプリを使うとインポートが簡単
    • エクスポート機能がないのでスクラッチで書く必要がある(現時点)

Windows 11 23H2 での新機能(予定)

将来的には Dev Home が解決してくれる、かも

ご清聴ありがとうございました