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问题吧。

    错误难免,还望指正。

  • 相关阅读:
    PAT (Advanced Level) 1086. Tree Traversals Again (25)
    PAT (Advanced Level) 1085. Perfect Sequence (25)
    PAT (Advanced Level) 1084. Broken Keyboard (20)
    PAT (Advanced Level) 1083. List Grades (25)
    PAT (Advanced Level) 1082. Read Number in Chinese (25)
    HDU 4513 吉哥系列故事――完美队形II
    POJ Oulipo KMP 模板题
    POJ 3376 Finding Palindromes
    扩展KMP
    HDU 2289 Cup
  • 原文地址:https://www.cnblogs.com/fyter/p/whats-new-dotnet3.html
Copyright © 2011-2022 走看看