「デスクトップアプリを作りたい」だけだと選択肢が多すぎて、環境づくりで詰まりがちです。
この記事では 2025-12 時点の一次情報をもとに、**いまの“現実的な最新”**としての開発環境(IDE/SDK/主要UIフレームワーク)を整理します。
TL;DR
- Windows専用(業務アプリ寄り)なら: Visual Studio 2026世代 + .NET 10(LTS) + WPF or WinUI 3(Windows App SDK)
- クロスプラットフォーム(Windows/macOS/Linux)なら: .NET 10 + Avalonia が選択肢として強い
- 「最新」は“全部を最新にする”ではなく、OS/SDK/UIフレームワーク/配布方式の組を揃えるのが最短
- 配布するなら、早めに 配布方式(単体EXE/MSIX/インストーラ) と 署名 まで決める
いまどきの「デスクトップ」の分類
ざっくり、開発環境が変わるポイントはここです。
- Windows専用(WPF / WinForms / WinUI 3)
- クロスプラットフォーム(Avalonia / .NET MAUI など)
WPF / WinUI 3 は Windows 専用です(クロスプラットフォームには対応しません)。
ベースライン(まずはここを最新に)
.NET
- .NET 10 は LTS(3年サポート): .NET 10 の概要(What's new)
確認コマンド:
dotnet --info
Visual Studio
- Visual Studio 2026 リリースノート(18.x系): Visual Studio 2026 release notes
Windowsデスクトップは デザイナー/デバッグ/診断 の恩恵が大きいので、まずは Visual Studio を“主IDE”にするのが安定です。
Windows専用の最適解(WPF / WinUI 3)
WPF(.NET 10)
- .NET 10 でWPF自体も更新されています(新機能の入口): .NET 10 の新機能(WPF)
おすすめシーン:
- 既存資産の継続開発
- 業務アプリ(帳票/入力フォーム/運用ツール)
- 「Windowsでちゃんと動く」を最優先
WinUI 3(Windows App SDK)
Windows向けに“モダンなUI/API”を使うなら WinUI 3(Windows App SDK)が軸になります。
- Microsoft.WindowsAppSDK(最新安定版): 1.8.251106002
導入(例):
dotnet add package Microsoft.WindowsAppSDK --version 1.8.251106002
おすすめシーン:
- Windows 11 世代のUI/機能を取り込みたい
- MSIX など「配布」まで含めてWindows流儀で整えたい
クロスプラットフォームの最適解(Avalonia)
「Windowsだけじゃない」要件なら、UIフレームワーク選び=開発環境そのものです。
- Avalonia(最新安定版): 11.3.10
導入(例):
dotnet add package Avalonia --version 11.3.10
おすすめシーン:
- Windows/macOS/Linux を同一コードで出したい
- UIをXAML寄りに保ちつつ、WPFのWindows縛りを外したい
“最新環境”を保つための最小運用
1) 更新の有無だけを機械的に見る
dotnet list package --outdated
2) 「UIフレームワーク」と「.NET」の組を崩さない
- 例: .NET 10 を採るなら、UI側(WinUI/Avalonia/MAUI)も 互換性が明記されている範囲で追随
- 例: Windows App SDK は NuGet で安定版/プレビューが並ぶので、業務用途は安定版固定が安全
3) チーム開発なら環境差分を減らす
- Visual Studio Installer のワークロードを揃える
-
global.jsonで .NET SDK を固定(CIも同じSDKでビルド)
(global.json の例)
{
"sdk": {
"version": "10.0.100"
}
}
※SDKの正確なパッチ番号は、チームのインストール状況とCIに合わせて固定してください。
ざっくり判断マトリクス
| 要件 | おすすめ |
|---|---|
| Windows専用で、保守/運用を重視 | Visual Studio + .NET 10 + WPF |
| Windowsの“モダンUI/API”を取り込みたい | Visual Studio + .NET 10 + WinUI 3(Windows App SDK) |
| Windows/macOS/Linuxに出したい | .NET 10 + Avalonia(主IDEは好みでVS/VS Code/Rider) |
Windows専用:テンプレ作成〜配布の最小手順
ここでは「まず動くものを作って、配れる形にする」までを最短で。
ルートA:WPF(最小手順)
1) テンプレ作成
Visual Studio
- 「新しいプロジェクトの作成」→「WPF アプリ」
- ターゲットフレームワークを
.NET 10(net10.0-windows)に設定
CLI(プロジェクト作成だけやる場合)
dotnet new wpf -n MyWpfApp
※dotnet new のテンプレートは、環境によっては最新TFM(net10.0-windows)を自動で選ばないことがあります。
その場合は作成後に .csproj の TargetFramework を net10.0-windows に合わせてください。
2) EF Core を追加(最小)
デスクトップでも「設定/マスタ/履歴」の保存でDBが必要になりがちなので、EF Core を最小で入れる例です。
まずは本体:
dotnet add package Microsoft.EntityFrameworkCore --version 10.0.1
DBプロバイダー(どれか1つ):
- SQL Server を使うなら
dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 10.0.1
- PostgreSQL / MySQL などは別プロバイダーになります(最新版の早見表)
マイグレーション等の設計時ツールを使うなら:
dotnet add package Microsoft.EntityFrameworkCore.Design --version 10.0.1
dotnet tool install --global dotnet-ef --version 10.0.1
3) 発行(単体EXEで配る最小)
インストーラを作らず、まずは配布の摩擦が少ない「単体EXE」を基準にします。
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
- 出力された
publish配下の*.exeを配布(必要なら同フォルダの設定ファイル等も一緒に) - .NETランタイムが入っていないPCでも動かしたい場合は
--self-contained trueを維持
ルートB:WinUI 3(Windows App SDK)+ MSIX(配布まで最短)
WinUI 3 は「Windows流儀の配布(MSIX)」まで含めて整えやすいのが強みです。
1) テンプレ作成
- Visual Studio で「WinUI 3 in Desktop」系のテンプレートを選ぶ
- Windows App SDK を利用(プロジェクト内で
Microsoft.WindowsAppSDKを参照)
2) MSIXとしてパッケージング
- Visual Studio の「発行(Publish)」から MSIX パッケージを作成
- 社内配布なら、まずは“社内の配布方法(共有/Intune等)”に合わせて運用を決める
- MSIX は署名されたパッケージとして配布されるため、配布先端末で 証明書の信頼(企業証明書の配布など)までセットで考える
署名(実行ファイル/パッケージ)は必要?
ケースによっては 実質必須です。
- 社外配布(WebからEXE/MSI/MSIXを配る): 未署名だと SmartScreen 警告が出やすく、導入が止まりがち
- 社内配布でも端末ポリシーが厳しい: 署名があると例外申請/運用が楽
何に署名する?(最小)
- EXE配布: EXEにAuthenticode署名
- MSIX配布: MSIXに署名(証明書が信頼されていないとインストールで詰まりやすい)
インストーラ配布の場合:
- MSI/EXEインストーラ: インストーラ本体にも署名(ダウンロード/実行時の警告対策として効果が出やすい)
どうやる?(最小の考え方)
- コード署名証明書を用意(社外配布なら商用コードサイニング、社内限定なら社内CA/配布証明書という選択も)
- 署名時は タイムスタンプも付ける(証明書期限後も署名が有効と判定されやすい)
- CIで署名するなら、秘密鍵を安全に保管(Key Vault等)
(コマンド例は環境・証明書次第で変わるため割愛しますが、Windowsでは一般に signtool を使います)
インストーラの場合も追記(最小)
単体EXEは最短ですが、配布・更新・アンインストールまで“ちゃんと運用”するならインストーラが欲しくなります。
- MSIX: Windows流儀で更新/アンインストールまで整えやすい(ただし証明書の信頼配布が要ることが多い)
- MSI: 既存の社内配布・資産管理(GPO/Intune/SCCM等)に乗せやすいことがある(作成は WiX など)
- EXEインストーラ: 手早いが、運用ポリシーによっては MSI/MSIX の方が通りが良い
まずは「社内の配布基盤(Intune/GPO/共有/ポータル)」に合わせて、MSIX/MSIのどちらが通るかを確認するのが最短です。