フォークしよう!MicrosoftがWindowsデスクトップアプリを含む.NET Core 3.0を追加

Table of Contents

フォークしよう!MicrosoftがWindowsデスクトップアプリを含む.NET Core 3.0を追加

Buildシアトルで開催中の Build 開発者イベントで、マイクロソフトは Windows デスクトップ アプリケーションをサポートする .NET Core 3.0 を 2019 年にリリースすると発表しました。

.NET Coreは、Microsoftの.NETテクノロジーのオープンソース・クロスプラットフォーム版であり、開発者はWindows、Mac、Linux上でC#、F#、Visual Basicなどの言語を使用することができます。これはWindows専用の.NET Frameworkから派生したものであり、Microsoftは2016年6月の.NET Coreの最初のリリース以来、両バージョンの開発を継続しています。

当時、Microsoft は、.NET Core は ASP.NET Web アプリケーション向けであり、Windows 10 上の UWP (ユニバーサル Windows プラットフォーム) アプリケーションによって裏で使用されていると述べていました。デスクトップ アプリケーションでは、引き続き .NET Framework が使用されます。

さらに、Xamarin (これも Microsoft の一部) には、iOS、Android、Mac、Linux を対象とした、.NET の古い Mono 実装に基づくテクノロジがあります。

サティア・ナデラ ビルド 2018

世界はコンピューターになりつつある、と世界的なコンピューター企業マイクロソフトのCEOは語る

続きを読む

C#開発者にとって、これは紛らわしい状況です。Entity Framework(オブジェクトリレーショナルデータベースマッピング)などのフレームワークの分岐によって、状況はさらに複雑になっています。Entity Frameworkは.NET Frameworkをターゲットとするものもあれば、.NET Coreをターゲットとするものもあるからです。同様に、PowerShell(Windows専用)とPowerShell Core(クロスプラットフォーム)がありますが、Microsoftは現在開発が活発に行われているのはCoreバージョンのみであると発表しています。

マイクロソフトは、Windowsデスクトップアプリケーションに.NET Coreを導入し、開発者がサーバーとクライアントの両方で同じバージョンの.NETを使用できるようにします。今年後半にプレビュー版が公開され、2019年にリリースされる予定の.NET Core 3.0は、Windows Forms、Windows Presentation Foundation(WPF)、UWPをサポートします。ただし、これらのフレームワークはWindows APIをラップしているため、引き続きWindows専用となります。MacやLinux向けのデスクトップアプリケーションのサポートについては、現時点では発表されていません。

.NET Coreデスクトップアプリケーションの展開は、.NET Coreランタイムのグローバルインストール(.NET Frameworkの展開方法に類似)と、各アプリケーションが独自のバージョンのランタイムを使用するサイドバイサイド展開のいずれかを選択できます。「新しいオプションとして、アプリと.NET Coreを単一の実行ファイルにバンドルする新しいビルドツールを開発中です」と発表には記されています。

.NET Coreは新しいデスクトップアプリケーションのデフォルトとなり、.NET Frameworkは廃止に向かっていると示唆しています。とはいえ、.NET Framework 4.8がリリースされ、Microsoftは両方のフレームワークをUWPに統合する予定です。そのため、Windows 10 UWP API(WinRT APIとも呼ばれます)全体にアクセスでき、Windows FormsとWPFアプリケーションの両方でUWP XAMLコントロールをホストできるようになります。

これにはEdgeベースのUWPブラウザコントロールが含まれており、組み込みWebブラウザを使用するアプリケーションにメリットをもたらします。もちろん、UWP機能はWindows 7では動作しないため、多くのアプリケーションにとって致命的な問題となります。

.NET Core 3.0 は Windows 7 で動作するのでしょうか? Lander 氏は「Windows 7 は .NET Core 2 でサポートされています。.NET Core 3 の OS マトリックスはまだ確定していませんが、変更する予定はありません。」と述べています。つまり、動作するようです。おそらく。

マイクロソフトのリッチ・ランダー氏によると、既存の.NET Frameworkアプリケーションを.NET Coreに移植するのは「非常に簡単なので、.NET Core 3への移行は容易な選択となるでしょう」とのことですが、開発者の中には懐疑的な人もいるでしょう。開発中のアプリケーションは移植する一方、完成したアプリケーションは.NET Framework上に残しておくことが推奨されています。

なぜわざわざ?.NET Coreのパフォーマンスは一般的に.NET Frameworkよりも優れています。しかし、より重要なのは、.NETの断片化と混乱を軽減し、レガシー制約が少ない状態で.NET開発を進めることです。これは確かに役立つでしょうが、Microsoftにはまだまだやるべきことがあります。®

Discover More