
.NET 5在去年的时候正式发布,而直到现在微软才详细地揭露,他们对.NET 5网络堆叠所做的功能强化,获得改善的网络功能范畴,包括HTTP、Sockets、网络相关安全性以及部分网络原语。
在.NET 5中,HTTP开始拥有更好的错误处理能力,微软提到,他们对HTTP领域进行了多项改进和修复,像是其中一个常被要求的功能,是在使用HttpClient的时候,希望能从取消的情况中区分逾时。
微软所做的改进包括让开发者可以使用自定义CancellationToken,来区分逾时和取消,为了向后相容,客户端仍会丢出TaskCanceledException讯息,但是内部的异常情况则是TimeoutException。另一个改进是在HttpRequestException中加入HTTP状态代码(HttpStatusCode),新的状态代码属性可为空值,并在EnsureSuccessStatusCode被呼叫的时候进行设定,可以用在异常过滤器中。
.NET 5的特色之一,便是提供一致的开发体验,而这个想法也在网络相关的实作中贯彻,过去.NET Core中的HTTP堆叠,相依于平台的处理程式(Handlers),像是WinHttpHandler以Windows的WinHTTP为基础,而适用于Linux和Mac的CurlHandler,则是以libcurl为基础,微软提到,由于这两个函式库的差异,因此不可能对每个平台维持一致性。
所以微软开始在.NET Core 2.1中,加入了一个称为SocketsHttpHandler的HTTP实作,并且花费大量心力强化其功能与可靠性,并且从System.Net.Http.dll中,完全删除相依于特定平台的处理程式。在.NET 5中,微软持续强化这样的想法,拿掉让开发者自由切换回旧方法的选项,不过开发者仍然可以透过下载独立的NuGet套件,继续使用WinHttpHandler。
微软提到,因为HttpClient是高阶API,使用起来很方便,但是相对的,也就缺少一些灵活性。考量进阶情境可能需要更灵活地使用方式,微软在.NET 5中,对SocketsHttpHandler加入了两个扩充功能点ConnectCallback和PlaintextStreamFilter,以强化其灵活性。
ConnectCallback让开发者可以创建自定义连接,当每次开启新的TCP连接时,都会呼叫ConnectCallback函式,该回呼函式能够被用来创建程序内传输、控制DNS解析,甚至是控制通用或是特定平台的底层Socket选项。而另一个回呼函式PlaintextStreamFilter,则让开发者可以在新开启的连线上,插入自定义层,应用程序在完全建立连接之后,但在发送任何HTTP之前,会先触发此回呼函式,开发者可以将其用于监听安全连线中,发送的明文资料等应用。
由于HTTP/3和其底层传输层QUIC,还在最后标准化阶段,.NET 5使用开源QUIC协定跨平台实作MsQuic,加入了对HTTP/3的实验性支援,官方仍不建议将其用在正式产品中。QUIC是一种基于UDP的传输标准,比建立在TCP之上的连接,拥有更快的交握速度,还对单一连接中的多请求,提供更稳定的多路复用能力,也能对行动客户端,在多重网络环境中,提供更平顺的切换体验。
而.NET 5也弥补了.NET Core在遥测方面的弱点,过去要监控.NET Core应用程序并不方便,用户只会收到冗长且不一致的日志讯息,而且监听这些讯息,还可能会对效能产生影响。.NET 5以EventSource为基础,设计并且实作了一系列新的遥测事件和计数器,仅占用少量CPU资源,就可让用户良好地监控.NET 5应用程序。
.NET的安全层,仰赖底层操作系统的功能,在以Linux为基础的系统,微软使用OpenSSL来支援TLS 1.3,而在Windows 10,TLS 1.3仅在1903版本后才可用,而且仅提供用作测试目的,因此过去的.NET Core版本,在Windows中并无法使用TLS 1.3,不过这个情况从Windows预览版20170之后情况改变,TLS 1.3预设启用,开发者可以透过新的Schannel API使用TLS 1.3。
相关文章
- Gear S2向竞争对手招手?三星想干什么
2019-02-22 13:47
- 国产骄傲 华为荣耀10欧洲发布当日即售罄 欧洲友人疯狂起来挡都挡不住
2018-05-19 20:32
- 三星S5 Prime再曝光 或将改名Galaxy Alpha
2018-10-11 08:36
- 联想推出新款Y9000X:升级10代标压处理器,5月…
2020-01-06 14:52
- iPhoneX现遭遇奇异bug猫耳竟然少了一只!
2018-05-17 18:32
- Apple 新剪辑软件 Clips 开放下载 按几个按钮就可以剪出厉害影片
2019-05-11 14:22
- 能搞定客户的智能商务投影机,改方案不如升级…
2019-04-30 11:27
- 格力五年新目标营收达6000亿?董明珠:只是个梦想 不一定实现
2018-09-02 22:31
- AdblockPlus希望利用区块链打击假新闻
2018-06-16 01:32
- ofo回应:员工降薪不实 车身广告正常
2018-05-26 06:33
- Google无人机快递公司Wing招兵买马 扩大服务覆盖_监管
2019-06-29 08:48
- 旗舰级Cherry发布MW8Advanced无线鼠标
2018-09-12 06:31
- Samsung Galaxy Tab Active 3 试玩:非工业用三防可换电平板
2020-11-04 00:50
- 1999元的骁龙810神机:2K屏/4GB内存/全网通
2019-02-19 05:33
- 【POKÉMONGO】全部都系鸡点解仲要捉?10招教升Lv育成劲宠
2017-12-27 22:00
- 京东“钢镚”上线 提出积分资产管理新理念
2019-02-17 02:40
- 日常使用该选骁龙710还是骁龙845?
2018-07-18 08:32
- 【砖全部都系砖】香港首间LEGO认证专门店明开幕
2017-12-27 20:50
- 抖音读书人上海沈先生为什么流浪 沈魏为何不回家原因
2019-03-20 12:46
- 今年将有232万台工业机器人上岗 中国列全球智能制造第6
2018-05-26 11:32
最新资讯
手机
数码