开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3729|回复: 2
收起左侧

[C#图文教程] 介绍.NET 5

[复制链接]
发表于 2019-5-7 19:22:57 | 显示全部楼层 |阅读模式   广东省揭阳市
本帖最后由 老郭 于 2019-5-7 19:24 编辑

今天,我们宣布.NET Core 3.0之后的下一个版本将是.NET 5.这将是.NET系列的下一个重要版本。
将来只有一个.NET,您将能够使用它来开发Windows,Linux,macOS,iOS,Android,tvOS,watchOS和WebAssembly等等。
我们将在.NET 5中引入新的.NET API,运行时功能和语言功能。
从.NET Core项目开始,我们已经向平台添加了大约五万个.NET Framework API。.NET Core 3.0弥补了.NET Framework 4.8的大部分剩余功能差距,支持Windows Forms,WPF和Entity Framework 6..NET 5构建于此工作之上,采用.NET CoreMono的最佳功能创建单一平台您可以使用所有现代.NET代码。
我们打算在2020年11月发布.NET 5,并在2020年上半年推出第一个预览版。将在Visual Studio 2019,Visual Studio for Mac和Visual Studio Code的未来更新中支持它。
.NET 5 = .NET Core vNext
.NET 5是.NET Core的下一步。该项目旨在通过以下几个关键方式改进.NET:
  • 生成单个.NET运行时和框架,可以在任何地方使用,并具有统一的运行时行为和开发人员体验。
  • 通过充分利用.NET Core,.NET Framework,Xamarin和Mono扩展.NET的功能。
  • 从单个代码库构建该产品,开发人员(Microsoft和社区)可以一起工作并一起扩展,从而改进所有方案。
这个新项目和方向是.NET的游戏规则改变者。使用.NET 5,无论您正在构建哪种类型的应用程序,您的代码和项目文件都将看起来和感觉相同。您可以使用每个应用程序访问相同的运行时,API和语言功能。这包括几乎每天都致力于corefx的新性能改进
您喜欢.NET Core的所有内容将继续存在:
  • 在GitHub上开源和面向社区。
  • 跨平台实施。
  • 支持利用特定于平台的功能,例如Windows上的Windows窗体和WPF以及来自Xamarin的每个本机平台的本机绑定。
  • 高性能。
  • 并排安装。
  • 小项目文件(SDK风格)。
  • 有能力的命令行界面(CLI)。
  • Visual Studio,Visual Studio for Mac和Visual Studio代码集成。
这是新的东西:
  • 您将有更多关于运行时体验的选择(更多内容见下文)。
  • Java互操作性将在所有平台上提供。
  • 多个操作系统将支持Objective-C和Swift互操作性。
  • CoreFX将扩展为支持.NET的静态编译(提前 - AOT),更小的占用空间和对更多操作系统的支持。
我们将在今年9月发布.NET Core 3.0,在2020年11月发布.NET 5,然后我们打算每年11月每年发布一次主要版本的.NET:
我们正在跳过版本4,因为它会让熟悉.NET Framework的用户感到困惑,因为.NET Framework已经使用了很长时间的4.x系列。此外,我们希望清楚地传达.NET 5是.NET平台的未来。
我们也借此机会简化命名。我们认为如果前进只有一个.NET,我们就不需要像“核心”这样的澄清术语。较短的名称是简化,并且还传达.NET 5具有统一的功能和行为。如果您愿意,可以继续使用“.NET Core”名称。
运行时体验
Mono是.NET的原始跨平台实现。它起初是.NET Framework的开源替代品,随着iOS和Android设备的普及,转变为针对移动设备。Mono是用作Xamarin一部分的运行时。
CoreCLR是用作.NET Core一部分的运行时。它主要用于支持云应用程序,包括Microsoft的最大服务,现在也用于Windows桌面,物联网和机器学习应用程序。
总而言之,.NET Core和Mono运行时有许多相似之处(毕竟它们都是.NET运行时),但也有宝贵的独特功能。有意义的是,可以选择所需的运行时体验。我们正在为彼此制作CoreCLR和Mono替代品。我们将使它像构建开关一样简单,以便在不同的运行时选项之间进行选择。
以下部分描述了我们计划用于.NET 5的主要支点。它们提供了一个清晰的视图,说明我们计划如何单独和同时发展两个运行时。
高产量和高生产率
从一开始,.NET就依赖于即时编译器(JIT)中间语言(IL)代码转换为优化的机器代码。从那时起,我们构建了业界领先的基于JIT的托管运行时,该运行时具有非常高的吞吐量,并且还支持开发人员体验,使编程变得快速而简单。
JIT非常适合长期运行的云和客户端方案。他们能够生成针对特定机器配置的代码,包括特定的CPU指令。JIT还可以在运行时重新生成方法,这种技术用于快速JIT,同时如果这成为常用方法,仍然可以选择生成高度调整的代码版本。
我们在TechEmpower基准测试中使ASP.NET Core运行速度更快的努力是JIT的强大功能和我们在CoreCLR上投资的一个很好的例子。我们为容器强化.NET Core的努力也证明了运行时能够动态适应受约束的环境。
开发人员工具是JIT闪耀的另一个好例子,例如使用dotnet watch工具或编辑并继续。工具通常需要在一个进程中多次编译和加载代码而无需重新启动,并且需要非常快速地完成。
使用.NET Core或.NET Framework的开发人员主要依赖于JIT。因此,这种体验应该是熟悉的。
大多数.NET 5工作负载的默认体验将使用基于JIT的CoreCLR运行时。两个值得注意的例外是iOS和客户端Blazor(Web程序集),因为它们都需要提前(AOT)本机编译。
快速启动,占用空间小,内存使用率低
Mono Project的大部分精力都集中在移动和游戏控制台上。该项目的关键功能和成果是基于行业领先的LLVM编译器项目的 .NET AOT编译。Mono AOT编译器使.NET代码可以构建到可以在机器上运行的单个本机代码可执行文件中,就像C ++代码一样。AOT编译的应用程序可以在小地方高效运行,并在需要时交换吞吐量以进行启动。
Blazor项目已在使用单声道AOT。它将是第一个转换到.NET 5的项目之一。我们将其作为一个场景来证明这个计划。
有两种类型的AOT解决方案:
  • 需要100%AOT编译的解决方案。
  • 解决方案,其中大多数代码是AOT编译的,但JIT或解释器可用,并用于对AOT不友好的代码模式(如泛型)。
Mono AOT支持这两种情况。Apple for iOS和某些游戏控制台需要第一种类型的AOT,通常是出于安全考虑。第二种是首选,因为它提供了AOT的优点而没有任何缺点。
.NET Native是我们用于Windows UWP应用程序的AOT编译器,是上面列出的第一种AOT类型的示例。通过该特定实现,我们限制了您可以使用的.NET API和功能。我们从该经验中了解到,AOT解决方案需要涵盖所有.NET API和模式。
iOS,Web程序集和一些游戏控制台仍然需要AOT编译。我们将AOT编译作为更像设备的应用程序的选项,需要快速启动和/或低占用空间。
基本原理和重叠经验
至关重要的是,我们作为一个具有启动,吞吐量,内存使用,可靠性和诊断的整体平台继续向前发展。与此同时,集中精力也是有道理的。我们将在CoreCLR中投入更多的吞吐量和可靠性,同时我们使用Mono AOT编译器在启动和缩小尺寸方面投入更多资金。我们认为这些都是很好的配对。通过启动和减小尺寸,吞吐量和可靠性一起使用。
虽然有一些特征使得进行不同的投资是有意义的,但还有一些则没有。
对于功能和性能诊断,诊断功能在.NET 5中必须相同。支持相同的芯片和操作系统(iOS和Web组件除外)也很重要。
我们将继续为每个工作负载和场景优化.NET 5,无论有什么意义。将更加强调优化,特别是在多个工作负载具有重叠需求的情况下。
所有.NET 5应用程序都将使用CoreFX框架。我们将确保CoreFX在当前未使用的地方运行良好,主要是Xamarin和客户端Blazor工作负载。
所有.NET 5应用程序都可以使用.NET CLI构建,确保您跨项目使用通用命令行工具。
C#将与.NET 5一起向前发展。编写.NET 5应用程序的开发人员可以访问最新的C#版本和功能。
该项目的诞生
我们于2018年12月在波士顿召开了一个技术团队,开始了这个项目。来自.NET团队(Mono / Xamarin和.NET Core)以及Unity的设计领导者介绍了各种技术能力和架构方向。
我们现在正在将这个项目作为一个团队推进,并提供一套可交付成果。自12月以来,我们在一些项目上取得了很多进展:
  • 定义了一个定义运行时< - >托管代码层的最小层,其目标是生成> 99%的CoreFX公共代码。
  • MonoVM现在可以使用CoreFX及其类库。
  • 使用CoreFX实现在MonoVM上运行所有CoreFX测试。
  • 使用MonoVM运行ASP.NET Core 3.0应用程序。
  • 在CoreCLR上运行MonoDevelop,然后运行Visual Studio for Mac。
转向单个.NET实现会引发重要问题。目标框架将是什么?NuGet包兼容性规则是否相同?.NET 5 SDK应该支持哪些工作负载?如何为特定架构编写代码?我们还需要.NET标准吗?我们现在正在解决这些问题,很快将分享设计文档供您阅读并提供反馈。
闭幕
.NET 5项目是.NET的重要且令人兴奋的新方向。您将看到.NET变得更简单,但也具有更广泛,更广泛的功能和实用性。所有新的开发和功能都将成为.NET 5的一部分,包括新的C#版本。
我们看到前景光明,您可以使用相同的.NET API和语言来定位各种应用程序类型,操作系统和芯片架构。在Visual Studio,Visual Studio for Mac,Visual Studio代码,Azure DevOps或命令行中,可以轻松更改构建配置以构建不同的应用程序。

原文链接 https://devblogs.microsoft.com/dotnet/introducing-net-5/

发表于 2019-5-7 21:55:48 | 显示全部楼层   河南省周口市
我就想知道你复制的还是手打的
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)
发表于 2019-5-7 21:08:04 | 显示全部楼层   广东省阳江市
没怎么懂
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表