windows- .NET Core 或 .NET Framework 的桌面应用程序

Desktop app for windows- .NET Core or .NET Framework

我有兴趣为 windows 桌面开发一个桌面应用程序,它必须在 Windows 商店中。

据我所知,有两条路。使用 .NET Core (UWP) 进行开发,或使用 .NET Framework 进行开发。

目前我不关心 none-桌面设备。我确实关心只有 .NET Framework 的一个子集的痛苦,但我担心在不久的将来只会支持 UWP。

我应该选择什么路径,为什么?

在我看来,如果您不担心使用其他设备,那么我会选择标准 C#(只是我个人的意见),但如果您希望您的应用程序跨设备工作,我会选择 UWP。例如,如果将 windows 10 的版本用于 raspberry pi,则选择 UWP,这样您就可以简单地在 PI 和桌面应用程序之间进行集成,但对于桌面应用程序而言,我会坚持使用 C#并节省太多额外学习的需要。另外,如果您打算将应用程序放在 windows 商店中,那么 UWP 是必须的。

开发 UWP 应用需要使用 C#。

你的问题有点像在说,"I want to put something on the internet. Should I use a website, or HTML?"

这个 link 可能有帮助:https://docs.microsoft.com/en-us/windows/uwp/get-started/whats-a-uwp

首先,您混合了两种不同的东西。 C# 是一种语言(如 C、C++、JavaScript 等),而 UWP 是一种平台(如 WinForms、WPF 和控制台)。 UWP 只能在 W10 设备上 运行 并且可以用 C#、HTML + JS、Visual C++、Visual Basic...

编写

如您所说,UWP 只能使用完整 .NET Framework 中可用的 API 子集。那是因为它基于 .NET Core。今年晚些时候,UWP 应该会支持 .NET Standard 2.0,它带来了许多以前在 .NET Core 和 .NET Standard 中不可用的 API,但是,这个升级 将仅适用于最低版本设置为 W10 Fall Creators Update(2017 年 9 月或 10 月)的 UWP 应用程序,因此如果您想支持旧版本的 W10,则不能在 UWP 中使用这些 API。

如果您希望您的应用进入 Windows 商店,最简单的方法是构建 UWP 应用。您还可以使用 Desktop Bridge 打包经典(WPF、WinForms 等)应用程序并将其上传到 Windows Store。

您的选择应基于您的应用程序的要求。如果我不需要使用那里不可用的 API,我个人会使用 UWP。