"Windows Forms App"与"Windows Forms App (.NET Framework)"之间的区别

75
在 Visual Studio 2019 中创建新项目时,有两个选项可以创建 Windows Forms 应用程序:Windows Forms AppWindows Forms App (.NET Framework)。这两个选项有什么区别?

enter image description here


6
“在.NET Core 3.0之后推出的下一个版本将是.NET 5”,也就是说,5既不是Framework,也不是Core,只是.NET。 - Damien_The_Unbeliever
1
@Damien_The_Unbeliever 和 .NET 允许轻松制作 Winforms 应用程序?通过拖放?但是 .NET 更好、更现代化,对吗? - DAda
正如其名称所示,这是一个“控件库”项目。它将成为您创建和存储“自定义控件”的地方,并且只需使用Using语句即可在其他项目中使用这些“自定义控件”。 - JohnG
4
我自己没有使用过Core或Xamarin,这些名词的海洋确实令人困惑。在有一个可以作为重复问题关闭的标准问题之前,请考虑发布回答而不是进行负投票。这个问题标题是许多(每个?)初学者会搜索的内容。 - Sinatr
这个回答解决了你的问题吗? .NET Core、.NET Framework和Xamarin有什么区别? - Jon Freed
从操作系统到游戏控制台,微软在命名事物方面很糟糕。 - Binuriki Cliean Jay
5个回答

40

最佳实践是选择“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是.NET的未来

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

未来将只有一个 .NET,您可以使用它来面向 Windows、Linux、macOS、iOS、Android、tvOS、watchOS 和 WebAssembly 等目标。

来源:介绍 .NET 5


4
这个答案提供了一些好的信息,但缺乏对问题的直接回答。或许可以在这方面进行改进。 - Rev
1
这应该被标记为答案。 - Moises Gonzaga
@Rev 在第一行就有一个非常简单明了的答案,再加上一些阅读来教育自己也不应该是一件苦差事。给一个人一条鱼,但教他如何捕鱼则更为重要。 - GµårÐïåñ
@GµårÐïåñ 这只是一个建议。我只是觉得这个答案没有像Itachis的第一句话那样准确地回答问题。没关系。 - Rev
@Rev 我明白,每个人的看法都不同,但对我来说,对于大多数人来说,“最佳实践是选择“Windows Forms App”进行新开发。”这应该被认为是相当确定的,后续讨论已经充分解释了原因,我只是觉得有点吹毛求疵,但他确实采纳了你的建议,并将其从.NET 5更改为那样,以使其更清晰。这是一件好事 :) - GµårÐïåñ

26
  • 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 日,他们从名称中删除了“Core”这个词。因此,以前的版本称为“.NET Core 3.0”,但最新版本现在称为“.NET 6”。


3
这个回答应该被标记为答案。它直接回答了问题,而不会让任何人感到困惑。 - Joseph
同意@Joseph的观点,这是对问题的直接回答。 - Marius Van Wyk

13

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


4

根据我的考虑,这需要更加清晰明了。

如果你想运行针对 .Net Framework 的应用程序,可以使用 Winform (.Net Framework),因为在系统安装 Windows 时会自动安装 .Net Framework。

另一方面,如果你想仅使用 Winform 应用程序 进行桌面应用程序的开发,那么你就是在针对最新版本的 .net core 进行开发。你需要在将要运行该应用程序的系统上安装最新版本的 .net core,否则应用程序不会按预期运行,并且可能会要求你安装所针对的环境中最新版本的 .net core。

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


1
如果您想要:
  • .NET Framework (仅适用于Windows) ,则使用 Windows Forms App (.NET Framework)
  • .NET Core / .NET (跨平台),则使用 Windows Forms App

.NET Map

因此,您可以选择您需要的内容。


1
虽然.NET Core是跨平台的,但我非常确定Windows Forms应用程序不是。 - Guru Stron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接