質問: UWPと.NET Coreは関係性は無いのですか? Visual StudioでUWPアプリを作成してみましたが.NET Coreのバージョンを指定するような事はありませんでした UWPは.NET Coreとは別物ですか? 先日以下のようなブログを読んだのですが、.NET 5のパフォーマンス向上はUWPアプリには関係ない事ですか? https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/
回答: > > UWPは.NET Coreとは別物ですか? > > > まったく別物ですし、そもそもレイヤの異なる存在のため、直接比較する対象ではありません。 .NET Coreは、元々は.NET Frameworkのサブセットで、Windows以外の環境でも.NETアプリケーションを実行できるようにする(クロスプラットフォームを実現する)ために、.NET FrameworkからWindows環境に依存しているものを取り除いたものとして開発が始まっています。 そのため、比較対象は.NET Frameworkとmono(Linuxに移植された.NETライブラリ群)で、これらは複数のアプリケーションが共通して利用する基本的(標準的)なライブラリ群の提供と、アプリケーションの実行環境としての役割を果たします。 UWPはUniversal Windows Plattoformの略で、XBoxやSurfaceHub等も含むWindows環境をサポートしたアプリケーションの種類で、WinRTというWindows環境専用のAPIにべったり依存したアプリケーションの実態です。(実行環境ではない) そのため、比較対象はコンソールアプリケーション、WinForms、WPF、ASP.NETなどの実態としてのアプリケーションの種類そのものです。 .NET Core自体は上記の経緯で誕生したものの、現在は元となった.NET Frameworkの方を廃止して「.NET 5」と呼ばれる次期バージョンでひとつに統合される予定のため、.NET Core上でのWinFormsやWPF等のプロジェクトの作成は既にサポートされていますし、記事等を読む限りはUWPもサポートされているようですが、プラットフォーム依存の部分は別のライブラリに切り分けられてnugetから取得できるような構造になっており、.NET Coreそのものには含まれていません。 ここからはそんなに詳しいわけではないので詳しい方がいれば補足をお願いしますが、UWPはWindows環境専用のアプリケーションを作成するものであり、現在のところ基本的にそれらの環境には.NET Frameworkが組み込まれて提供されている事を考えると、.NET Coreをわざわざ実行環境として利用するような用途はあまりないんじゃないでしょうか。(あるとしたらIoTとか?) 上記のとおり将来的には.NET Coreと.NET Frameworkは統合されるため、.NET 5移行のバージョンが標準となる頃には、自動的にその上で動作するようになるとは思いますが。