有关C# 8.0、.NET Framework 4.8与NET Standard 2.1的一个说明

早在本月12日,微软官方的.NET Blog发布了一篇名为《Building C# 8.0》的文章,介绍了很多C# 8.0的新特性。不过本文主要讨论的并不是C# 8.0的新特性,而是存在于这篇文章中的一段文字:

Most of the C# 8.0 language features will run on any version of .NET. However, a few of them have platform dependencies.

Async streams, indexers and ranges all rely on new framework types that will be part of .NET Standard 2.1. As Immo describes in his post Announcing .NET Standard 2.1, .NET Core 3.0 as well as Xamarin, Unity and Mono will all implement .NET Standard 2.1, but .NET Framework 4.8 will not. This means that the types required to use these features won’t be available when you target C# 8.0 to .NET Framework 4.8.

这里的文字说的是,文中所介绍的绝大部分C# 8.0的新特性都可以在任何版本的.NET上使用,唯独有个别的功能需要在特定版本的.NET上才能使用。比如,Async streams,indexers and ranges这些特性都需要依赖于由.NET Standard 2.1引入的新类型,根据Immo在他的博客中所述,.NET Core 3.0、Xamarin、Unity以及Mono都会实现.NET Standard 2.1,而.NET Framework 4.8却不会。这也就意味着,这些C# 8.0的新特性,无法在目标框架为.NET Framework 4.8的情况下使用,也就是说,这些C# 8.0的新特性,无法在经典的.NET环境中使用。如此看来,貌似与以前展示的.NET平台架构有所出入,因为新版本的.NET Framework并不实现.NET Standard 2.1。

640?wx_fmt=png

我在2018年3月24日上海MVP线下技术交流活动中,分享过C#7.x的新特性,并且做了一场演示,展示了将C# 7.2 target到.NET Framework 2.0的工程,并在2.0的工程中使用C# 7.2的语法特性进行开发。由此看来,这是完全可行的,前提是,我所使用的开发库必须是可基于CLR 2.0运行的。你会发现,即使我使用C# 7.2,我仍然无法在一个2.0的工程中使用async/await的异步框架,原因是,async/await所依赖的TPL只能运行在4.0的CLR上,因此,C# 7.2可以target到.NET Framework 2.0,但是有一部分语言特性无法使用,这种情况同样发生在上面的C# 8.0上。

据此分析,.NET Standard 2.1引入新的API(比如Span<>)需要修改.NET的公共语言运行时(Common Language Runtime,CLR),这样的修改,对于.NET Core、Xamarin、Unity以及Mono这些重新设计的框架来说,应该更为方便;而对于经典.NET Framework这种具有历史特点的框架来说,或许并不那么直接容易,所以,.NET团队推后了经典.NET CLR的变更计划,由此也就推后了.NET Framework对于C# 8.0新特性的支持计划,因此,.NET Framework 4.8仍然只支持.NET Standard 2.0,部分C# 8.0的新特性无法使用。

经典.NET Framework的公共语言运行时(CLR)在整个.NET的发展进程中也就只出现过4个版本:1.0/1.1/2.0/4.0。 1.0和1.1基本上可以忽略不计了,估计现在已经没有什么项目在用这两个版本相对应的.NET Framework了。让大家最为熟知的是.NET CLR 2.0和4.0的版本:CLR 2.0随着Visual Studio 2005的发布,直到Visual Studio 2010的CLR 4.0,一共有5年时间;而2010年随着Visual Studio 2010一起发布的.NET CLR 4.0,至今也有近9年的历史了。随着.NET Standard API的不断扩展,相信不久的将来,我们会迎来一次CLR的版本升级,使得经典.NET Framework能够更好地支持.NET Standard API以及新的编程语言特性,契合整个.NET的平台架构。

原文地址:http://sunnycoding.cn/2018/11/27/csharp8-net-framework-4-8-and-net-standard-2-1-side-note/


 
 

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

### 回答1: Microsoft .NET Framework 4.8一个由微软开发的跨平台框架和运行时环境。它是用于开发和执行基于.NET技术的应用程序的一个重要组件。.NET Framework 4.8提供了许多功能和功能,以帮助开发人员构建强大且可靠的应用程序。 首先,.NET Framework 4.8支持多种编程语言,包括C#,Visual Basic和F#等。开发人员可以根据自己的喜好和需求选择适合的语言进行开发。 其次,.NET Framework 4.8提供了大量的类库和工具,使开发人员能够快速构建应用程序。这些类库涵盖了各种功能,如网络通信,线程管理,图形处理,数据库访问等。开发人员可以利用这些类库来简化开发过程,减少编写代码的工作量。 此外,.NET Framework 4.8还具有优秀的性能和安全性。它通过即时编译和资源管理等技术提供了高效的执行性能,并具有内置的安全机制来保护应用程序免受恶意软件和攻击的影响。 对于不同架构的计算机系统,.NET Framework 4.8提供了两个版本,即x86和x64。x86是32位版本,适用于运行在32位操作系统上的计算机;x64是64位版本,适用于运行在64位操作系统上的计算机。通过提供这两个版本,.NET Framework保证了其在不同计算机系统上的兼容性和可用性。 总之,Microsoft .NET Framework 4.8一个强大且高效的开发工具,可以帮助开发人员构建各种类型的应用程序。无论是Web应用程序,桌面应用程序还是移动应用程序,.NET Framework 4.8都能提供所需的功能和性能。 ### 回答2: Microsoft .NET Framework 4.8是由微软开发的一个软件开发平台。它提供了许多编程接口和库,用于开发和执行各种类型的应用程序,包括桌面应用程序、Web应用程序、移动应用程序和云服务。 .NET Framework 4.8支持x86和x64两种架构。x86是指处理器的32位版本,而x64是指处理器的64位版本。在选择安装.NET Framework 4.8时,根据计算机的处理器架构进行选择,以确保软件能够正确地在计算机上运行。 对于x86架构的计算机,安装.NET Framework 4.8 (x86)版本是必要的。这个版本是为32位操作系统和32位应用程序设计的。它提供了用于开发和运行32位应用程序所需的接口和库。 对于x64架构的计算机,安装.NET Framework 4.8 (x64)版本是必要的。这个版本是为64位操作系统和64位应用程序设计的。它提供了用于开发和运行64位应用程序所需的接口和库。 在安装.NET Framework 4.8时,需要根据计算机的架构选择正确的版本,以确保软件能够正常工作。如果安装了错误的版本,可能会导致应用程序无法运行或出现错误。 总之,Microsoft .NET Framework 4.8 (x86 和 x64)是用于开发和执行各种类型的应用程序的软件开发平台。选择正确的版本取决于计算机的处理器架构,以确保软件能够正确地在计算机上运行。 ### 回答3: Microsoft .NET Framework 4.8是由微软公司开发的软件框架,适用于Windows操作系统。它提供了一个统一的编程模型,用于构建和运行各种类型的应用程序,包括桌面应用程序、Web 应用程序、移动应用程序和云服务。.NET Framework 4.8提供了广泛的功能和库,以支持开发人员创建高效、可靠和安全的应用程序。 .NET Framework 4.8可分为两个版本:x86和x64。x86版本是适用于32位操作系统的,而x64版本则适用于64位操作系统。这两个版本的主要区别在于它们所适用的系统架构不同。如果您使用的是32位操作系统,您应该选择安装x86版本。如果您使用的是64位操作系统,则可以选择安装x86或x64版本,具体选择取决于您的需求。 不论您选择安装哪个版本,.NET Framework 4.8都提供了许多重要的功能和改进。它包括对异步编程模型的改进,可帮助开发人员编写更高效和响应更快的应用程序。它还提供了对新的Windows通用Windows平台应用程序 (UWP) 的支持,这意味着您可以使用.NET Framework 4.8构建在Windows操作系统各个平台上运行的应用程序。 此外,.NET Framework 4.8还提供了诸如.NET Standard 2.0和ASP.NET Core 2.0之类的重要功能和更新,以便开发人员可以更轻松地在不同的平台上构建和部署应用程序。 总而言之,Microsoft .NET Framework 4.8一个强大且功能丰富的软件框架,为开发人员提供了构建各种类型应用程序的工具和平台。它的x86和x64版本适用于不同的操作系统架构,而且提供了许多重要的功能和改进,使开发人员能够更高效、更安全地构建应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值