WPF开发-使用.NET Framework还是.NET 5/6/7?

前言

如果做桌面开发(不考虑C++),只针对Windows平台,并且要使用多窗口,考虑到系统的兼容性的前提下,最优的方式还是使用WPF。

WPF开发可以选择两种库

  • .NET Framework
  • .NET 6/7

那么怎样选择呢?

SDK下载地址

https://dotnet.microsoft.com/zh-cn/download/visual-studio-sdks

.NET体系对比?

一句话结论:现阶段还是用.NET Framework 以后.NET Core是趋势

第三方库大部分都有.NET Framework版本的,不一定有.NET Core版本的

.NET 生态有三个主要的高级别组件 - .NET Framework, .NET Core, 和 Xamarin

.NET Framework

支持 Windows 和 Web 应用。

可以使用 Windows Forms、WPF、和 UWP 来构建Windows 应用程序

ASP.NET MVC 的 Web 应用。

.NET Core

是最新的开源跨平台框架,用于构建包括 Windows, Mac 和 Linux 操作系统在内的应用程序。

.NET Core 支持 Windows Forms、 WPF、UWP和 ASP.NET Core。

UWP用于构建 Windows10 目标Windows和移动应用程序。

ASP.NET Core用于构建基于浏览器的 Web 应用程序。

.Net 5/6/7

.NET Core的后续版本命名。

Xamarin

毋庸置疑,当你想通过 C# 来构建移动应用(IOS,Android 和 Windows Mobile),Xamarin 是你唯一的选择。

.NET Framework 的优点

  • 如果你目前主要是维护和更新现有 .NET 应用程序,那么 .NET Framework 是你一个不错的选择。将现有 .NET 程序移植到 .NET Core 上可能还是需要一些工作。
  • .NET Framework 支持Win7。

这就是 .NET Framework 的现状。

当前版本的.NET Framework 4.8 应该是.NET Framework的最新版本。

将来不会再计划新版本的.NET Framework。

.NET Core 的优点

  • 微软已经宣布了 .NET Core 3.0 ,这是一个有非常多改进的 .NET Core 版本,如果你想学习和使用里面的新特性,那么.NET Core 是值得尝试的。
  • .NET Core 3.0 目前支持 WPF 和 Windows Forms,.NET Core 3.0 同样也支持在 UWP, WPF 和 Windows Forms 之间进行混合开发。这将使得开发者能够更灵活地将 UWP 中一些更现代化的接口引入到 WPF 和 Windows Forms 中。
  • 如果你正在构建新的应用程序,并且你的公司支持使用 .NET Core,那么 .NET Core 是一个不错的选择,总之 .NET Core 会越来越好的。
  • .NET Core 更适合跨平台的需求, .NET Core 的应用程序支持在 Windows, Linux, and macOS 运行。微软广受好评的开源代码编辑器 Visual Studio Code 支持 Linux 和 macOS,同时它也支持更加现代化的编辑需求,如 智能感知[IntelliSense] 和 调试[debugging],大多数其它第三方的编辑器,如 Sublime, Emacs, 和 VI 同样支持 .NET Core。
  • 微服务架构同样在 .NET Core 中适用,它可以和不同平台的服务共同工作。包括通过 .NET Framework, Java, Ruby 等语言开发的。在容器化大行其道的今天,.NET Core 的模块化、轻量级以及它的灵活性使得它能很容易地部署到容器中,容器可以部署到任何平台,如 云上、Linux 和 Windows 上。 .NET Core 适用于 Docker 和 Azure Kubernetes 服务。

.NET 5/6/7

目前 .NET Framework 的版本为 4.8(后续应该不会在更新了),并且仍由 Microsoft 支持。

2014 年,Microsoft 开始编写 .NET Framework 的跨平台开源后续产品即.NET Core系列。

.NET Core系列:

.NET 5 是继 .NET Core 3.1 之后 .NET Core 的下一个主要版本。

出于以下两个原因,我们将此新版本命名为 .NET 5,而不是 .NET Core 4

  • 我们跳过了版本编号 4.x,以避免与 .NET Framework 4.x 混淆。

  • 我们从名称中删除了“Core”,是为了强调这是 .NET 未来的主要实现。

    与 .NET Core 或 .NET Framework 相比,.NET 5 会支持类型更多的应用和平台。

也就是说

以后都是.NET 5/6/7的天下了。

.NET Framework还是.NET 6/7

2024年10月18更新

如果必须支持Windows 7,使用.NET Framework是最佳选择。

如果可以升级目标用户的操作系统,那么在.NET 6上进行开发是一个更好的选择,因为它提供了更多的现代特性和性能优化。

.NET Core 在新版本的Visual Studio中在新建项目时候已经不能选择了,如果新项目建议用.NET 6

.NET 6的最低系统要求是 Windows 10 或更新版本。

Win7支持情况

如果必须支持Windows 7,使用.NET Framework是最佳选择,那么版本怎么选择呢?

首先我们看看支持情况:

  • 初始版本:Windows 7 最初发布时,支持的 .NET Framework 版本最高为 4.0。

  • Service Pack 1 (SP1):安装 Windows 7 Service Pack 1 后,系统可以支持更高版本的 .NET Framework,最高支持到 .NET Framework 4.8。

.NET Framework 4.8 于 2019 年 4 月 18 日 发布,这是 .NET Framework 的最后一个主要版本。

虽然 .NET Framework 4.8 仍然受到维护和支持,但它不会再推出包含新特性的版本。

结论

如果项目要支持Win7,建议使用 .NET Framework 4.8版本。

系统的预装情况

查看版本

查看.NET Framework版本

按下 Win + R 键,输入 regedit,然后按 Enter 键。

1
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

查看.NET版本

系统上所有已安装的 .NET SDK 和运行时版本

1
2
dotnet --list-sdks
dotnet --list-runtimes

预装版本

  • Windows 7 初始版本自带 .NET Framework 3.5,包括 .NET Framework 2.0 和 3.0。

  • Windows 10 初始版本自带 .NET Framework 4.6

    通过 Windows 更新,系统可以升级到 .NET Framework 4.8(这是 .NET Framework 的最后一个版本)。

  • Windows 11 自带 .NET Framework 4.8

  • 都不预装 .NET Core/.NET 5/6