zoukankan      html  css  js  c++  java
  • .Net Core3 新特性/新功能 16条

    .net core 3实现了.net 标准2.1。

    1、生成可执行文件

    以前版本需要dotnet run运行项目,.net core 3支持直接生成目标平台的可执行文件。比如windows就是exe了,linux就+x了。

    2、生成依赖项的副本

    以前版本在build时不会把NuGet的工具复制到目标目录,新版本会复制,但不包括razor和链接(链接的含义不太清楚)。

    3、本地工具

    这个工具指NuGet的包,以前2.1支持全局的,新版本支持在目录里放置dotnet-tools.json清单文件,再使用dotnet tool restore命令重载。

    旧版本的工具依然依赖旧版本.net core SDK。

    4、支持WPF与Windows Froms

    这个在很多国内新闻上已经介绍过了,事实上这些新闻只关注这一条。

    项目文件的Sdk设置为Microsoft.NET.Sdk.WindowsDesktop,添加<UseWPF>true</UseWPF>与或<UseWindowsForms>true</UseWindowsForms>即可添加支持。

    5、内建快速的JSON解析器

    System.Text.Json.Utf8JsonReader,此物只向前读取(只进读取器),内存占用更少,常规性能是Newton JSON.net的二倍,这个很给力哦!应该会降低很多项目对Newton的依赖。

    现在只有读取器,以后会有:JSON 写入、DOM(随机访问)、poco 序列化程序、poco 反序列化程序。

    新推出的Span<T>对高性能的字符分析程序都有很大的好处,包括Kestrel也从中受益。(Kestrel是微软跨平台基于libuv的高性能web服务器,目前应该是最强,不过我还没有其与h2o的比较信息)

    6、索引和范围

    这应该是吸纳百家之长的又一力作了,Python对索引的支持非常到位,现在.net也支持了(C#8.0才开始有)。

    [1,2,3][0] // 1

    [1,2,3][^1] // 输出3,反向索引

    [1,2,3,4,5][1..^2] // 输出[2,3,4] 范围索引

    7、异步流

    又一个新语言特性,也是要C#8.0支持。

    IAsyncEnumerable<T>, IEnumerable<T>的异步版本。

    异步枚举器,可以在await foreach中途yield return。建议正式版再使用,现在还有bug。

    8、类型:SequenceReader 序列读取器

    配合前面提到的Span<T>,用于高效率,简单,低分配的读取分析文本,例如分割回车换行。

    9、类型:MetadataLoadContext 元素据负载描述表

    可以反射一些程序集的信息,但是不能执行程序集的Invoke。用于工具导向的软件,或者运行时激活某些功能的场景,用于释放程序集的文件锁或暂用内存之类的吧啦吧啦……

    10、支持Linux 上的 TLS 1.3 和 OpenSSL 1.1.1

    使用SslStream的地方,会自动搜寻Linux所安装的最新版本OpenSSL,尽可能使用TLS1.3。因为TLS1.3更快,步骤更少。而且在SSL在Linux上的特定版本还有漏洞……OpenSSL的漏洞。

    11、AES-GCM 和 AES-CCM加密算法支持

    System.Security.Cryptography.AesGcm,System.Security.Cryptography.AesCcm可用。均使用AEAD算法(Authenticated Encryption with Association Data (AEAD) algorithms)。

    12、加密密钥的导入导出

    不用X.509证书即可导入标准的RSA、DSA、ECDsa、ECDiffieHellman公钥证书,与PKCS#8私钥证书。

    13、Linux上支持串口

    这个不懂,就是以前只有Windows支持,现在Linux也可以了。

    14、优化了很多现有功能

    字符串在字典中做key也会更高效,HttpClient支持无损压缩Brotli,很多都是不需要修改代码就可受益。

    15、分层编译

    .net core 2.1新功能,2.2预览版默认启动,2.2正式时改为可选,现在3.0默认开启……曲折。

    这货可提高启动性能,更好的JIT性能,提高吞吐量。

    16、Linux的ARM64

    哈,Windows 没有。IoT问题吧。

    错误难免,还望指正。

  • 相关阅读:
    正则表达式语法学习
    微软开放WP开发者回复用户应用评论功能
    下载安全程序需谨慎 黑客盯上XP用户
    软件业进入由大变强关键期
    54%的恶意程序无法被检测出
    CSS:第1课
    Javascript疑问【长期更新】
    不同语言的注释【长期更新】
    定制博客CSS样式
    认识Html DOM
  • 原文地址:https://www.cnblogs.com/fyter/p/whats-new-dotnet3.html
Copyright © 2011-2022 走看看