Microsoft connect(); 2018 にて、.NET Core 3.0 で Windows Forms / WPF がサポートされたと発表がありました。
なので、早速試してみました。
なお、動作確認環境は、基本的に Windows 10 Professional になります。
- 目次
.NET Core 3.0 Preview のインストール
下記サイトで、ご自身の環境にあった .NET Core 3.0 Preview の SDK をダウンロードおよびインストールします。Runtime は SDK をインストールすれば自動でインストールされます。
Visual Studio 2019 Preview のインストール
Microsoft connect(); 2018 では、Visual Studio 2019 Preview のアナウンスもされました。
アナウンスによると、Visual Studio 2019 Preview では、.NET Core 3.0 をサポートしたとあるのですが、実際にインストールしてみたところサポートされていないようでした。日本語版だからかもしれませんが。
一応、.NET Core 3.0 の Windows Forms / WPF アプリケーションを編集することはできるので、Visual Studio 2019 Preview を以下よりダウンロードしてインストールします。タイトルは 2017 となっていますが、本文は 2019 なので問題ありません。
Windows Forms アプリケーションの作成
Visual Studio 2019 では .NET Core 3.0 の Windows Forms アプリケーションを作成できないので、下記コマンドで Windows Forms アプリケーションを作成します。
> dotnet new winforms
そして、下記コマンドでビルド&実行します。
> dotnet run
実行結果は以下のようになります。
この Windows Forms のプロジェクトを Visual Studio 2019 Preview で開くと画面の編集ができます。
但し、Windows Forms であるにもかかわらず、デザインビューが表示されないので、若干のカスタマイズぐらいしかできませんでした。
画面の表示文字を編集して実行したものが以下になります。
WPF アプリケーションの作成
WPF アプリケーションを作成するには、以下のコマンドを実行します。
> dotnet new wpf
そして、下記コマンドでビルド&実行します。
> dotnet run
実行結果は以下のようになります。
この Windows Forms のプロジェクトを Visual Studio 2019 Preview で開くと画面の編集ができます。
画面の表示文字を編集して実行したものが以下になります。
macOS での動作
.NET Core なので、macOS でも Windows Forms / WPF も動作すると思ったのですが、どうやらそう簡単には行かないようです。
Windows では「Microsoft.WindowsDesktop.App 3.0.0-alpha-27128-4」が .NET Core のランタイムに含まれているのですが、macOS には含まれていません。
将来的にどうなるかは分かりませんが、現時点では .NET Core の Windows Forms / WPF は Windows オンリーのものだと考えてよさそうです。
参考までに、dotnet --info
を実行した結果も載せておきます。
- Windows 10
>dotnet --info .NET Core SDK (global.json を反映): Version: 3.0.100-preview-009812 Commit: e3abf6e935 ランタイム環境: OS Name: Windows OS Version: 10.0.17763 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\3.0.100-preview-009812\ Host (useful for support): Version: 3.0.0-preview-27122-01 Commit: 00c5c8bc40 .NET Core SDKs installed: 2.1.202 [C:\Program Files\dotnet\sdk] 2.1.402 [C:\Program Files\dotnet\sdk] 2.1.600-preview-009426 [C:\Program Files\dotnet\sdk] 3.0.100-preview-009812 [C:\Program Files\dotnet\sdk] .NET Core runtimes installed: Microsoft.AspNetCore.All 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All] Microsoft.AspNetCore.All 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All] Microsoft.AspNetCore.App 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 3.0.0-preview-18579-0056 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 2.1.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 2.1.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 3.0.0-preview-27122-01 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.WindowsDesktop.App 3.0.0-alpha-27128-4 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] To install additional .NET Core runtimes or SDKs: https://aka.ms/dotnet-download
- macOS
$ dotnet --info .NET Core SDK (global.json を反映): Version: 3.0.100-preview-009812 Commit: e3abf6e935 ランタイム環境: OS Name: Mac OS X OS Version: 10.14 OS Platform: Darwin RID: osx.10.14-x64 Base Path: /usr/local/share/dotnet/sdk/3.0.100-preview-009812/ Host (useful for support): Version: 3.0.0-preview-27122-01 Commit: 00c5c8bc40 .NET Core SDKs installed: 2.2.100-preview2-009404 [/usr/local/share/dotnet/sdk] 3.0.100-preview-009812 [/usr/local/share/dotnet/sdk] .NET Core runtimes installed: Microsoft.AspNetCore.All 2.2.0-preview2-35157 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All] Microsoft.AspNetCore.App 2.2.0-preview2-35157 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 3.0.0-preview-18579-0056 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 2.2.0-preview2-26905-02 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 3.0.0-preview-27122-01 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] To install additional .NET Core runtimes or SDKs: https://aka.ms/dotnet-download
おわりに
.NET Core 3.0 で Windows Forms / WPF がサポートされたことを確認してみました。
実際には、Visual Studio 2019 が .NET Core 3.0 を正式にサポートしないと Windows Forms は使えないと思いますが、WPF はなんとか使えそうです。
まあ、WPF も本番の開発に耐えれるかは分かりませんが。
ただ、macOS でも動作するようにして欲しかったというのが正直なところです。
今後の開発に期待します。