Help us understand the problem. What is going on with this article?

Visual Studio Code で Windows アプリ開発したいんだけど?

先に結論

Visual Studio 2019 使いましょう。

本文

今日開催している Visual Studio Code Conference Japan で VS Code で Windows アプリ開発に関する質問が出てたのでさらっと書いてみようと思います。

個人的にぱっと思いつくものは以下の3つくらいが思いつきました。

  • flutter
  • React Native for Windows
  • WPF

flutter

前に少しだけ flutter は試したことがあるのですが拡張機能を入れて設定すると意外とサクッと動いて快適でした。

ただ、前に試したのはモバイルアプリ開発だけでした。最近、この flutter がデスクトップもサポートしているみたいです。ただ、現状アルファなので強い人向けっぽい空気を感じます。

https://flutter.dev/desktop

React Native for Windows

React Native を使って開発することもできます。これは以前 Qiita に書きました。

React Native for Windows ことはじめ

ただ、各種 SDK を入れる関係で Visual Studio 2019 を結局入れることにはなります。

WPF/Windows Forms

.NET でデスクトップアプリ開発をするときには、現状 WPF や Windows Forms を使うことになります。.NET 5.0 の SDK を入れると dotnet コマンドが使えるようになります。そこで以下のようなコマンドをたたくとプロジェクトが作られます。

dotnet new wpf
dotnet new winforms

Visual Studio Code に C# 向けの拡張機能を入れた状態で上記コマンドで生成されたフォルダーを開くと実行からデバッグまでできるようになります。

C# で書く限りにおいてはインテリセンスもききます。

image.png

ただ、Windows Forms のデザイナーはありません。WPF も XAML はデザイナーもなく、現状はただの XML ファイルとして認識されるためインテリセンスが効きません。

image.png

↑は、本当なら TextBlock という候補が出てきてほしいけど Visual Studio Code では候補が出なくて悲しい気持ちになっているところ。

ということで、デザイナーがなくてもいいなら強い気持ちで Visual Studio Code を使って WPF/Windows Forms アプリの開発は出来るようになっています。

electron

そういえば忘れてた…、Visual Studio Code もこれで作られてる electron。

https://www.electronjs.org/

個人的に使ったことが本当に一度もないので…。どうなんでしょう?

未来の話

ただの個人の妄想です。

Visual Studio Code での XAML サポート

希望的観測では XAML 向けの Language Server に対する要望はあるので無視できないくらい要望が集まればサポートされることもあるかもしれませんが、個人的には望み薄…

Create a XAML language service

MAUI

.NET 6 がリリースされる2021年11月のタイミングで Xamarin.Forms が MAUI という名前になって .NET 6 に統合されるという予定があります。
こちらは Windows アプリ開発 (ほかにも macOS, iOS, Android などもサポート) もサポート予定で VS Code での開発もサポートする予定なので 1 年後には普通に VS Code で Windows アプリ開発が出来るようになっていると思われます。

.NET Multi-platform App UI (MAUI)

まとめ

ということで、今 Windows アプリ作るなら大人しく Visual Studio 2019 を入れて UWP or WPF or Windows Forms のプロジェクトを作るのが一番だと思います。

次点で、React Native for Windows あたり。

okazuki
日本マイクロソフトでサポート系のエンジニアとして働いています。 好きな言語は C# と TypeScript。メインの興味領域は Windows クライアントアプリ開発と Xamarin によるモバイルアプリ開発。その延長として API を作るための Azure の PaaS 系サービスが好きです。 SPA はたしなむ程度に。 お約束ですが、ここでの発言は個人の見解になります。
https://blog.okazuki.jp
microsoft
マイクロソフトのメンバーが最新の技術情報をお届けします。Twitterアカウント(@msdevjp)やYouTubeチャンネル「クラウドデベロッパーちゃんねる」も運用中です。
https://aka.ms/MSFT-Docs-JPN
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away