Windows 窗体应用程序和 Windows 窗体应用程序 (.NET Framework) 有啥区别

Posted

技术标签:

【中文标题】Windows 窗体应用程序和 Windows 窗体应用程序 (.NET Framework) 有啥区别【英文标题】:What is the difference between a Windows Forms App and Windows Forms App (.NET Framework)Windows 窗体应用程序和 Windows 窗体应用程序 (.NET Framework) 有什么区别 【发布时间】:2020-12-15 10:32:12 【问题描述】:

在 Visual Studio 2019 中创建新项目时,有两个选项可用于创建 Windows 窗体应用程序。这些选项有什么区别?

【问题讨论】:

Introducing .NET 5: “.NET Core 3.0 之后的下一个版本将是 .NET 5”——也就是说,5 既不是 Framework,也不是 Core,只是 .NET @Damien_The_Unbeliever 和 .NET 允许轻松生产 Winforms 应用程序?通过拖放?但是 .NET 会更好、更现代吗? 顾名思义……这是一个“控件”“库”的项目。这将是您创建和存储“自定义控件”并在其他项目中通过 Using 声明简单地使用这些“自定义控件”的地方。 我自己没有使用过 core 或 xamarin,而且这个 forest 的名称确实非常令人困惑。在有一个规范问题作为重复关闭之前,请考虑实际发布答案而不是投反对票。这个问题标题是许多(每个?)初学者都会搜索的内容。 这能回答你的问题吗? What's the difference between .NET Core, .NET Framework, and Xamarin? 【参考方案1】:

Windows Forms App(.NET Framework) 是使用 .NET Framework 制作桌面应用程序的类型。 Windows Forms App(.NET) 也是制作桌面应用程序的类型,但它使用 .NET Core(最新版本是 .NET Core 5.0) Windows 控件库项目模板用于创建自定义控件以在 Windows 窗体上使用,就像我们使用工具箱中的按钮一样 开发人员使用 . NET 框架来创建 Windows 桌面应用程序和基于服务器的应用程序。 NET Core 用于创建在 Windows、Linux 和 Mac 上运行的服务器应用程序。

【讨论】:

【参考方案2】:

最佳做法是选择“Windows Forms App”进行新开发。

Visual Studio 让开发人员可以选择基于 .NET Framework 或 .NET Core 创建项目。两者都已被 .NET 5 的发布所取代。开发人员仍然可以选择使用 .NET Framework 创建项目,这就是为什么有两种项目类型的原因。

.NET Framework 早于 .NET Core,仅在 Windows 上运行。 .NET Core 被创建为跨平台的,最初不支持 Windows 桌面应用程序。它们分别通过 .NET Framework 4.8 和 .NET Core 3.1 发布。

当 .NET Core 3.0 发布时,Microsoft 开始建议使用 .NET Core 开发新应用程序,无论是哪种类型。 Microsoft 还宣布不会对 .NET Framework 进行进一步的重大更新:

随着 2019 年 9 月发布的 .NET Core 3.0,我们认为所有 .NET 应用程序都应该基于 .NET Core。支持来自 .NET Framework 的主要应用程序类型,并且我们没有将某些东西移植到那里,推荐使用现代替代品。未来对 .NET 的所有投资都将集中在 .NET Core。

.NET Framework 4.8 将是 .NET Framework 的最后一个主要版本。

来源:.NET Core is the Future of .NET

此外,.NET 5 是 .NET Core 和 .NET Framework 的继任者。从现在开始,只有 .NET:

未来将只有一个 .NET,您将能够使用它来面向 Windows、Linux、macOS、iosandroid、tvOS、watchOS 和 WebAssembly 等。

来源:Introducing .NET 5。

【讨论】:

这个答案提供了一些很好的信息,但它缺乏对问题的直接答案。也许可以改进一下。 这应该被标记为答案。【参考方案3】: Windows Forms App (.NET Framework) 是 .NET Framework 4.8 或更早版本。

创建于 2002 年至 2019 年。 https://en.wikipedia.org/wiki/.NET_Framework_version_history

Windows Forms App 是 .NET Core 3.0 或更高版本。

创建于 2016 年至 2023 年(预计) https://en.wikipedia.org/wiki/.NET

在 2020 年 11 月 10 日,他们从名称中删除了“核心”一词。例如,以前的版本称为“.NET Core 3.0”,但最新版本现在称为“.NET 6”。

【讨论】:

【参考方案4】:

根据我的考虑,这需要更清楚。

如果您想运行以 .Net Framework 为目标的应用程序,您可以使用 Winform (.Net Framework),当您在系统上安装 windows 时会自动安装该应用程序。

另一方面,如果您想使用 Just Winform 应用程序 开发桌面应用程序,这意味着您的目标是必须在您所在的系统上安装最新版本的 .net 核心将运行应用程序,否则,应用程序将无法按预期运行。并且您可能会被要求安装作为目标环境的最新版本的 .net 核心。

您可以在项目的属性下开发应用程序时指定目标框架。

【讨论】:

【参考方案5】:

第一个。 .NET Framework 是特定于 Windows 的。

第二个(未提及).NET Core 是跨平台的。

所以你可以选择你想要的。

【讨论】:

虽然 .NET Core 是跨平台的,但我很确定 Windows 窗体应用程序不是。

以上是关于Windows 窗体应用程序和 Windows 窗体应用程序 (.NET Framework) 有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

Windows 窗体应用程序和 Windows 窗体应用程序 (.NET Framework) 有啥区别

vs2015中的c#windows窗体应用程序怎么使用OpenGL?

使用 WCF 通过 Windows 服务和 Windows 窗体应用程序进行通信

Windows 服务与 Windows 窗体在同一进程中

Windows 服务和 Windows 窗体应用程序之间的通信

Windows 窗体引用和具有冲突导入类型的单例