适用于 Windows 的桌面应用程序 - .NET Core 或 .NET Framework
Posted
技术标签:
【中文标题】适用于 Windows 的桌面应用程序 - .NET Core 或 .NET Framework【英文标题】:Desktop app for windows- .NET Core or .NET Framework 【发布时间】:2018-03-11 09:41:01 【问题描述】:我有兴趣为 Windows 桌面开发一款桌面应用,它必须在 Windows 商店中。
在我看来,有两条路。使用 .NET Core (UWP) 进行开发,或使用 .NET Framework 进行开发。
目前我不关心非桌面设备。我确实关心只有 .NET Framework 的一个子集的痛苦,但我担心在不久的将来只会支持 UWP。
我应该选择什么路径,为什么?
【问题讨论】:
仍然不太正确 :) 即使是 UWP 应用程序也可以在 .NET 上运行,但在 .NET Core 上运行。而且.NET 标准平台 术语也不完全正确。 .NET Framework 就是您所说的,而与 .NET Framework 相比,确实有一个新的 .NET Standard 平台,用于创建跨 .NET 库 - 可以从 .NET Framework、.NET Core 和其他人。 【参考方案1】:开发 UWP 应用需要使用 C#。
您的问题有点像:“我想在互联网上发布一些内容。我应该使用网站还是 html?”
此链接可能会有所帮助:https://docs.microsoft.com/en-us/windows/uwp/get-started/whats-a-uwp
【讨论】:
据我了解,使用 UWP 只是 C# 的一个子集。这不正确吗? 这不正确。 UWP 应用甚至可以用 Visual Basic、HTML + JS 或 Visual C++ 编写。 我已经编辑了我的问题,使其在语义上更正确。是的,两者都是 C#,但不是相同的框架。【参考方案2】:首先,您将两种不同的东西混合在一起。 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 应用商店。
您的选择应基于您应用的要求。如果我不需要使用那里不可用的 API,我会亲自使用 UWP。
【讨论】:
【参考方案3】:在我看来,如果您不担心使用其他设备,那么我会选择标准 C#(只是我个人的看法),但如果您希望您的应用程序只能跨设备工作,我会选择 UWP。例如,如果为树莓派使用 Windows 10 版本,然后选择 UWP,这样您就可以简单地在 PI 和桌面应用程序之间进行集成,但对于桌面应用程序而言,我会坚持使用 C# 并节省太多的需求额外的学习。另外,如果您打算将应用程序放在 Windows 商店中,那么 UWP 是必须的。
【讨论】:
以上是关于适用于 Windows 的桌面应用程序 - .NET Core 或 .NET Framework的主要内容,如果未能解决你的问题,请参考以下文章
适用于 Windows Phone 8.1(无 XAML)的最小应用程序:与桌面应用程序的差异
适用于 Windows 7 的 Delphi/Paradox 数据库桌面 DBD32.exe 设置
如何在容器上编辑 Docker 端口和参数? (使用适用于 Windows 的 Docker 桌面)[重复]
Flutter shared_preferences 插件是不是适用于桌面 Flutter 应用程序?