開発者向けコントロールセンター Microsoft Dev Home

Build 2023で発表されたMicrosoftが開発者向けに新たに提供するDev Homeは、プロジェクトのモニタリングから開発環境のセットアップ、開発者アカウントとの連携、そしてDev Driveの作成まで、一つの場所で全てを管理する新たなコントロールセンターです。

Windows 11 21H2 (ビルド 22000) 以降を使っている人であればWindows Storeからインストール可能です。

https://learn.microsoft.com/en-us/windows/dev-home/

## Dev Homeの概要
Dev Homeは、開発者向けに設計された新しいコントロールセンターです。プロジェクトのモニタリング、開発環境のセットアップ、開発者アカウントとの連携、Dev Driveの作成など、一つの場所で全てを管理することが可能です。これにより、開発者は作業の効率化と生産性の向上を実現できます。

### Dev Homeとは何か
Dev Homeは、ダッシュボードのカスタマイズ可能なウィジェットを用いてプロジェクトをモニタリングしたり、アプリ、パッケージ、リポジトリをダウンロードして開発環境を設定したり、GitHubなどの開発者アカウントやツールに接続したり、プロジェクトファイルやGitリポジトリを保存するためのDev Driveを作成することができます。

### Dev Homeのインストールと実行
Dev Homeのインストールと実行は、Microsoft Storeが推奨されています。この方法では、新しいビルドがリリースされるたびに最新バージョンに自動的にアップグレードされます。しかし、Microsoft Storeからインストールできないユーザーのために、GitHubから手動でビルドをダウンロードすることも可能です。また、Windows Package Manager CLI (通称 winget) を利用することもできます。Dev Homeは、Windows 11 21H2 (ビルド 22000) 以降が必要です。

https://github.com/microsoft/devhome

## ダッシュボードとウィジェット

Dev Homeのダッシュボードは、カスタマイズ可能なウィジェットを使用してプロジェクトを監視するための新しいコントロールセンターとして機能します。これらのウィジェットは、開発プロジェクト、コーディングタスク、GitHubの問題、プルリクエスト、利用可能なSSH接続、およびシステムのCPU、GPU、メモリ、ネットワークパフォーマンスを追跡するために使用されます​。

### ダッシュボードのカスタマイズ可能なウィジェット

ウィジェットは、開発者固有の情報を表示するためにセットアップできます。Dev HomeはGitHubエクステンションをデフォルトで提供し、これを使用してGitHubリポジトリと統合するカスタマイズ可能なウィジェットを作成できます。これらのウィジェットをダッシュボードに追加するためには、Dev Homeダッシュボードの右上から「ウィジェットを追加」を選択します。ウィジェットのオプションリストが表示され、ダッシュボードに追加するためにカスタマイズが必要なものがあります​。

### システムウィジェットの特性

システムウィジェットは、リアルタイムの情報を提供できます:

**メモリ**: 使用中の量、合計利用可能量、合計コミット量、合計キャッシュ量、ページングプール、非ページングプール
**ネットワーク**: ネットワーク名とともに送信と受信データの合計キロビット/秒を含む帯域幅測定
**CPU**: 合計利用率、速度、およびアクティブプロセス
**GPU**: 合計利用率、温度、およびグラフィックスチップ名​1

### GitHubエクステンションウィジェットの作成方法

GitHubエクステンションを使用してカスタマイズされたDev Homeウィジェットは、次の情報を表示できます:

- 特定のGitHubリポジトリに関連する問題
- 特定のGitHubリポジトリに関連するプルリクエスト
- 特定のGitHubリポジトリであなたに割り当てられている問題
- あなたが言及された問題またはプルリクエスト
- レビューの要求があるプルリクエスト

これらをDev Home内でいつでも確認することが出来ます。

## マシン設定ツールについて
Dev Homeのマシン設定ツールは、新しいマシンの設定または新しいプロジェクトのオンボーディングをサポートします。これにより、Gitリポジトリのクローニング、特定のアプリケーションのインストール、プロジェクトのストレージボリュームのパフォーマンスを向上させるためのDev Driveの追加など、開発環境をコード準備状態にするために必要なすべてを管理することができます​。

### 新しいマシンまたは新しいプロジェクトのオンボーディング方法について
新しいマシンまたは新しいプロジェクトのオンボーディングには、Dev Homeのマシン設定ツールを使用します。このツールを使用して、新しいデバイス上の開発環境を設定したり、新しい開発プロジェクトをオンボードしたりすることができます​。

## Dev Homeエクステンション
Dev Homeエクステンションは、Dev Homeのカスタマイズ可能なウィジェットの機能を強化します。デフォルトでは、GitHubエクステンションが含まれていますが、独自のカスタムビルドエクステンションを作成して共有することも可能です​。

https://learn.microsoft.com/en-us/windows/dev-home/extensions

### GitHubエクステンションの使用方法
Dev Home GitHubエクステンションは、GitHubとDev Homeの間の統合を提供します。このエクステンションは、マシン構成ツールを使用してリポジトリを追加する際の推奨リポジトリ、およびGitHubのコンテンツを表示するためのカスタマイズされたDev Homeウィジェットの追加など、Dev Homeの既存の機能に統合されます​。

GitHubエクステンションを使用してカスタマイズされたDev Homeウィジェットは、特定のGitHubリポジトリに関連する問題、プルリクエスト、特定のGitHubリポジトリであなたに割り当てられた問題のみ、あなたが言及された問題またはプルリクエストのみ、あなたのレビューが要求されたプルリクエストなどを表示できます​。

また、Dev Home GitHubエクステンションは、GitHubのイベントに基づいてWindowsの通知を送る機能を持っています。現時点では、サポートされている通知イベントは、エクステンションにサインインしたアカウントが作成したプルリクエストのチェックが失敗した場合だけです。通知はWindowsの通知設定から無効にすることができます​。

### カスタムビルドエクステンションの作成と共有方法
独自のエクステンションを作成してDev Homeで使用することに興味がある場合は、GitHubのDev Homeリポジトリを訪れて、どのように始めるかのドキュメンテーションを見つけることができます​​。

https://github.com/microsoft/devhome/blob/main/docs/extensions.md

## まとめ

「Dev Home」は、開発者向けのワークスペースとして設計されたWindowsの新しいコントロールセンターです。あなたのダッシュボード上でプロジェクトを監視し、アプリケーション、パッケージ、リポジトリをダウンロードして開発環境を設定し、GitHubなどの開発者アカウントやツールに接続し、データストレージのための「Dev Drive」を作成することができます。

Dev Homeは、自分だけのカスタマイズ可能なウィジェットを用いてダッシュボードを中心に機能します。これらのウィジェットは、開発プロジェクト、コーディングタスク、GitHubの問題、プルリクエスト、利用可能なSSH接続、そしてシステムのCPU、GPU、メモリ、ネットワークのパフォーマンスを監視することができます。

開発環境の設定は、「Machine Configuration」ツールを通じて行われます。これを使用すれば、新しいデバイスやプロジェクトの開発環境を整えることができます。これには、Gitリポジトリのクローニング、特定のアプリケーションのインストール、あるいはプロジェクトのストレージボリュームのパフォーマンスを向上させるためのDev Driveの追加などが含まれます。

また、GitHubとの深い統合が特徴の一つで、GitHubアカウントをDev Homeに接続することで、GitHubリポジトリに関連するカスタマイズ可能なウィジェットを作成することができます。さらに、GitHubのイベントに基づいたWindows通知を送信する機能も提供しています。

「Dev Home」のインストールは、Microsoft Storeから行うことが推奨されていますが、GitHubから直接ダウンロードしたり、Windows Package Manager CLI (winget)を用いてインストールすることも可能です。

さらに、「Dev Home」は拡張機能をサポートしており、ユーザー自身が独自の拡張機能を作成することも可能です。

このように、「Dev Home」は、多機能かつカスタマイズ可能な開発者向けのワークスペースとして、プロジェクトの管理を行うことが出来ます。