.NET5发布,这个微软“全家桶”会是.NET的春天吗?

在全面开源的步伐下,微软也逐步跟上了脚步,作为微软最早迈向开源的重要软件之一,.NET 5的发布对微软及其使用者都具有重要意义。

微软未来目标是将所有的 .NET 组件整合到一个产品下,然后用户可以根据需求使用 .NET 的某个部分,而不是单独下载或安装所有内容。

对于Visual Studio用户,需要Visual Studio 16.8或更高的版本才能在Windows上使用.NET 5.0,在MacOS上使用最新版本的Visual Studio for Mac)。Visual Studio Code的C#扩展也已经支持.NET5.0和C#9。

NET 5.0是.NET统一之旅的第一个版本。微软希望 .NET Framework 开发者能够迁移他们的代码和应用到 .NET 5.0 上,为明年发布的 .NET 6.0 将 Xamarin 开发者过渡到统一平台奠定基础。

版本发布时间轴:

.NET Core 3.0 已于2019/09推出

.NET Core 3.1 已于 2019/12推出,为 LTS (Long Term Support,长期支援版),之后.NET Core 将更名.NET,固定每年释出新版,并定义双数版号为LTS版,单数版号为Current版。

.NET 5.0 2020/11

.NET 6.0 LTS 2021/11

.NET 7.0 2022/11

.NET 8.0 LTS 2023/11

如有兴趣,可以体验一下,历来发布资料及地址:https://dotnet.microsoft.com/download/dotnet/5.0

.NET 5.0是.NET Framework和.NET Core核心的结合,旨在统一.NET平台。.NET 5.0毫无疑问代表的是.NET的未来,但是目前国内大部分企业使用的依然是.NET Framework,不过长期来看,升级似乎不可避免。

为了充分论证.NET5的性能,自首个预览版发布以来微软已经进行了广泛的内部部署,除了在 .NET 5.0 上运行.NET网站外,Bing也在使用这个新平台。

并在此次更新中强调了一些比较显著的变化,包括一些性能上的改进。

以下是微软发布的此版本的相关亮点:

1..NET 5.0 已经部署到 http://dot.net和 http://Bing.com 托管数月,已经得到了实战检验。

2.很多组件的性能都得到了极大的提高。.NET 5.0 中 ARM64 的性能 和 GRPC 等都有改善

3.C# 9和F# 5提供了新的语言改进,如C# 9的顶层程序和记录,而F# 5则提供了交互式编程和.NET上功能编程的性能提升。

4..NET库对Json序列化、正则表达式和HTTP(HTTP 1.1、HTTP/2)的性能有所提升。它们现在也被完全注释为可空性。

5.由于GC、分层编译等方面的完善,P95延迟有所下降。

6.应用部署选项更好了,有了ClickOnce客户端应用发布、单文件应用、容器镜像尺寸减小,并增加了Server Core容器镜像。

7.平台范围扩大,增加了WindowsArm64和WebAssembly。

8.一个值得注意的变化是,.NET 5.0应用可以原生运行在ARM64 Windows设备上,消除了仿真带来的一些性能障碍。然而,在这个版本中,Windows 桌面组件并不能用于ARM64设备--这计划在.NET 5.0的服务更新中进行。

近几年.NET Core 的开源项目也非常活跃,随着.net5的发布,这些项目将会逐步整合到.net5及之后的版本中。

但是有几点需要特别注意:

目前的.NET5虽然已经足够强,但严格来说依然属于实现阶段,.NET6.0或许更值得期待。

目前关于.net5的挺多升级并未在实际中讨论,例如正则性能提升,静态正则缓存;Kestrel 的通信性能提升,支持Http3; 证书互转,增强 SSL 通信;readonly struct 在内部的应用;HttpClient 人性化的 Api,支持 webassembly, 支持序列化结果,支持 Quic 等;Json 支持字段序列化,只读类型序列化,Web类型序列化,循环引用序列化等特性;GC 可分配 no zero 的内存空间,分配“固定住”的大堆空间,GCMemoryInfo 等等。

如果并没有急切的需求,目前并不建议升级至5.0,可以将5.0作为研究跳板,在明年微软发布6.0LTS长期维护版本的时候再考虑升级,降低风险。当然,这个需要根据实际情况进行评估。

......

接下来,放一个.NET Core3.1升级.NET5可能遇到的坑,以作参考,不需要的可以略过此部分,作者“dotnet跨平台”。

此前Scott Hunter在博客信誓旦旦.NET Core3.1平滑迁移.NET5,于是当天就去升级我的宝藏项目,结果是大坑没有,小坑不断,折腾了一天时间才搞定,下面来仔细捋一捋,给搭建提供点参考。

背景介绍

升级的项目是之前开源在Github上,也曾一周新增300star,后面虽因故关闭了,但我个人是非常用心的。这不.NET5刚发布,第一时间就开始了升级。

项目是个微信小程序商城,后端是微服务架构支撑的,Ocelot网关+Consul服务注册发现+Core WebApi+gRPC+IdentityServer4都安排上了,整体还是比较复杂的,MongoDB、Redis、RabbitMQ也都安排上了,然后就在.NET Core3.1升级.NET5的过程中,各种踩坑。

VS升级坑

升级的第一个坑来自于VS工具升级!之前.NET5预览版、RC1、RC2都是用的Visual Studio 2019 Preview,这会儿.NET5正式版发现只需要把Visual Studio 2019升级到V16.8即可,然后就兴冲冲的升级去了,结果当头一棒:Visual Studio Installer提示网络未连接无法下载!当然不是我的网络问题,其实是DNS解析上出了毛病(部分用户会遇到,解决办法是把电脑的DNS设置为8.8.8.8即可),但毕竟当时是11号凌晨,以为是微软官方同步不够,我就选择换工具,直接去Linux下用VS Code升级了,然后就开始了第二波环境坑!

经验:如果遇到Visual Studio Installer提示网络未连接无法下载,可以将当前电脑DNS设置为8.8.8.8即可

Linux环境坑

Linux环境下VS Code开发之前都蛮熟悉了,这次想着是升级.NET5,就顺手把Linux系统从CentOS7给换成了CentOS8,然后又华丽丽的各种坑。比如CentOS8中网卡名字从ens33变成了eth0,用nftables替代iptables,各种小变化让人防不胜防,然后docker最新版本的命令也跟之前有些小变化,导致之前整理的Linux+Docker操作笔记各种失灵,来来回回折腾了好几个小时。

当然,环境只是环境,折腾完就过去了,而代码迁移层面的坑才是最麻烦的,因为并不知道还有多少没发现!

.NET5迁移坑坑坑

项目从.NET Core3.1升级到.NET5非常easy,在 global.json 中将SDK版本从3.1升级成5.0,再将TargetFramework从netcoreapp3.1换成net5.0即可。还有部分类库命名空间变化完全没关系,宇宙第一IDE的智能提示轻松解决。但是,在真实项目迁移过程中,我却遇到了各种小问题:

1.Core WebApi框架模板项目中默认集成了swagger,这个是新增的,但之前项目有一些自定义配置和扩展,也导致了冲突。

2.IdentityServer4第三方框架版本升级,API变化很有点多,改动不了不少代码,这个锅虽然不是.NET5的,但也是升级项目会遇到的。

3.尝试C#9花了一些时间,想体验下新语法新特性,如Native ints原生Ints、Pattern matching improvements模式匹配改进版,结果几次把自己绕进去了。

4.项目升级完发现的Bug,DateTime这个天天见的值出现了变化,在 ASP.NET Core 3.1 及更早版本中,DateTime绑定的是服务器本地时间,而5.0之后,DateTime绑定的是UTCTime。

Learun.net

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/63098.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让AI为你制作思维导图 —— ChatMind

ChatMind是什么 ChatMind,是一款利用与 AI 的对话中生成和编辑思维导图的工具,支持上下文改写扩充对话,ChatMind AI 可用于多种场景,例如记笔记、日程安排、项目管理、头脑风暴、框架等等。 既能帮助用户快速总结分析&#xff0…

AI写代码靠谱吗?

ChatGPT出来半年多了,用GPT编码的程序员有多少?虽然没有数据支撑,但我感觉用AI编码程序员并不多。我问过几个朋友,他们的回复是,AI没办法完成他想要完成的任务,最终还是得靠自己去写。 GPT真的没办法帮助程…

linux下oracle死机,Linux系统参数造成的Oracle服务器停止响应

环境: Oracle 11gr2 dataguard 512GB内存 128核cpu 高性能存储服务器 uname -an Linux dbhost 2.6.18-238.el5 #1 SMP Sun Dec 19 14:22:44 EST 2010 x86_64 x86_64 x86_64 GNU/Linux 症状: 做rman备份时,系统内存急剧下降,直到…

运行配置停止之前未连接应用程序服务器,原因: 无法在 localhost:1099处 ping 服务器

解决方法: 打开idea的编辑配置: 记得点击应用和确定 !

vac服务器未响应,csgo国服游戏停止工作、未响应的解决方法

CSGO是一款玩家非常喜爱的射击游戏,但玩家常常面临的停止工作的现象,有时会跳出、未响应,那么应该如何解决呢?下面小编带来了csgo国服游戏停止工作、未响应的解决方法,希望对大家有所帮助。 游戏停止工作、未响应的解决…

服务器停止响应是什么意思,该如何排查?

服务器停止响应意味着什么?在租用网站服务器的过程中,我们总是会遇到各种各样的问题,比如最麻烦的网站服务器没有响应。让我们简单地谈谈网站服务器停止响应意味着什么,什么情况会没有响应,以及如何解决它。 什么是服务器停止响…

誉天程序员-常用网站

学习方法六大招 日常你是如何学习新知识的?(面试官爱问哦) 1、百度百科概念了解 2、技术官网简单了解 3、同类产品技术选型 4、百度搜索入门案例 5、泛读百文瘦弱圆润 6、遇到问题问AI助手(chatGPT)噢 技术路线图&a…

python创建智能问答机器人

微信和chatgpt 这个在另外一篇文章:微信接入chatgpt 背景 最近一直都在忙做文本机器人的事情,所以就很少发公众号文章了。目前机器人的代码,已经全部发布在github上了。做机器人的目的:一方面是为了锻炼自己的代码能力&#xf…

机器人 Ameca「苏醒」瞬间逼真到令人恐惧,网友纷纷惊叹……

整理 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 近日,国内外网友都被一段机器人「苏醒」的视频惊讶到。 视频开始时,机器人似乎已经睡着,眼睛闭着,头部略微向下倾斜。随着肩膀的伸展,机器…

近乎于“神”的任正非

https://www.toutiao.com/a6709410685605921284/ 大家好! 我是曙光!今天和大家谈一谈任正非。 孙子曰:“能因敌变化而取胜者,谓之神。”任正非及华为在这次中美贸易“大事件”中的种种超凡表现让人顶礼膜拜发自心底里尊称他为“战…

任正非谈鸿蒙系统有一大失误,任正非谈鸿蒙系统:能完美适应物联网 性能超安卓...

对于华为的鸿蒙系统,任正非近段时间接受采访时也是谈到了它,不过这款自主操作系统跟之前预想的并不太一样。任正非表示,赛博体育官网鸿蒙系统的产生,本身并不是为了手机用,而是为了做赛博体育官网 物联网 来用的&#…

任正非,马云,马化腾:真正顶级厉害的人,都有一个共同特点

点击“技术领导力”关注∆ 每天早上8:30推送 “比尔盖茨说微软离死亡只有180天,但是华为明天就会死亡”。面对未来遥不可及同时看不见、摸不着的危机,任正非总是如屡薄冰。 华为、腾讯、阿里这几家堪称伟大的中国企业,都是从一次次危机中淬炼…

任正非:5G 背后有个不谈恋爱的小伙子

本文经授权转自公众号:程序人生(ID:coder_life) 整理 | 伍杏玲 出品 | 程序人生(ID:coder_life) 22日,任正非在接受访问时首次“大爆料”:5G的快速发展背后,原…

从马云和任正非看创业的试错过程

最近中信出版社出版了一本书新书《管理政策》,是黄卫伟写的,黄卫伟是中国人民大学商学院教授,近十年担任华为、TCL 的高级管理顾问。 我从这本书当中摘选了一部分内容,关于容易生存和有发展前途, 创业者该怎么选&#…

技术进步需要更单纯的思考方式!

前几天看了一个节目,讨论的是机械化程度越高越先进吗?这个节目质量还是不错的,我几乎每期都看,每次都会有一些各领域的领军人物登台。但是,这一期的话题多少让我有些不敢苟同。 当然我也理解节目提出的前提&#xff0…

AI志愿填报软件靠不靠谱?

原文地址 今年高考经历了疫情的一阵折腾延迟了整整一个月时间,在大数据的推送下高考热搜词汇频频出现在观众的视线中,一时之间成为焦点。经历了乘风破浪的高考后,风波已经告一段落,分数也陆陆续续出来,接下来今年的应…

ChatGPT闭包解答

怎么理解javaScript闭包 JavaScript 闭包是一种特殊的对象,它包含了函数及其相关作用域中的变量。它允许函数访问并保存其外部作用域中的变量,即使该函数已经离开了其作用域。 闭包的一个常见应用场景是封装私有变量。例如,在一个对象的方法内…

2020年最热门化妆品、护肤品一览表

文章目录 2020年最热门化妆品、护肤品一览表下载 Excel 2020年最热门化妆品、护肤品一览表 下载 Excel 点击开始下载

敏涵国际品牌:定义高端美妆新力量

What should I do to take care of my skin?Whats the brand of your eye shadow?What kind of lotion do you think I should buy?Sitting in front of the computer screen all day, my skin looks terrible.You should know what type of skin you have, normal, oil or …

国货美妆出海

美妆新势力出海告捷,成绩亮眼。2021年3月,花西子首次入驻海外电商平台,首日便登上销售榜Top3。2021年5月底,完美日记已拿下Shopee平台东南亚多地区美妆销量榜首。 日前,以营销著称的国货美妆新品牌纷纷出海。以完美日记…