闪电下载吧 最新软件 免费软件 绿色软件

教程资讯 软件专题

您的位置:SD124 > 工具软件 > Microsoft DotNET Core Runtime( .NET Core) 3.1.12官方最新版

Microsoft DotNET Core Runtime( .NET Core) 3.1.12官方最新版

  • 软件大小:未知
  • 更新日期:2021-04-27
  • 官方网站:闪电下载吧
  • 软件等级:★★★☆☆
  • 运行环境:Winxp/Win7/Win8/Win10
Microsoft DotNET Core Runtime( .NET Core) 3.1.12官方最新版
  • 软件说明
  • 软件截图
  • 下载地址
  • 相关软件
  • 用户评论
  • 投诉建议: 858898909@qq.com
.NET Core是.NET的跨平台版本,用于构建网站,服务和控制台应用程序。新功能包括Windows Presentation Foundation(WPF)和Windows Forms的Windows桌面支持,Blazor的全栈C#Web开发,SignalR和Azure SignalR Service的新增强功能,C#8的新C#语言功能等等。NET Core 3.0中最大的增强功能之一是对Windows桌面应用程序(仅Windows)的支持。通过使用.NET Core 3.0 SDK组件Windows桌面,您可以移植Windows窗体和Windows Presentation Foundation(WPF)应用程序。需要明确的是,Windows桌面组件仅受Windows支持并包含在Windows中。.NET Core 3.0添加了对C#8.0的支持。强烈建议您使用Visual Studio 2019 16.3,Visual Studio for Mac 8.3或带有C#扩展名的Visual Studio Code。

新增功能

1、C#8.0
C#8.0也是此发行版的一部分,其中包括可为空的引用类型功能,异步流和更多模式。
2、.NET标准2.1
即使.NET Core 3.0支持.NET Standard 2.1,默认dotnet new classlib模板也会生成一个仍针对.NET Standard 2.0的项目。要定位.NET Standard 2.1,请编辑项目文件并将TargetFramework属性更改为netstandard2.1:

如果您使用的是Visual Studio,则需要Visual Studio 2019,因为Visual Studio 2017不支持.NET Standard 2.1或.NET Core 3.0。
3、改进的.NET Core版本API
从.NET Core 3.0开始,.NET Core随附的版本API现在会返回您期望的信息。例如:
C#
System.Console.WriteLine($"Environment.Version: {System.Environment.Version}");
// Old result
//   Environment.Version: 4.0.30319.42000
//
// New result
//   Environment.Version: 3.0.0
C#
System.Console.WriteLine($"RuntimeInformation.FrameworkDescription: {System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription}");
 
// Old result
//   RuntimeInformation.FrameworkDescription: .NET Core 4.6.27415.71
//
// New result
//   RuntimeInformation.FrameworkDescription: .NET Core 3.0.0-preview4-27615-11
从技术上来说,这是一个重大更改,因为版本控制方案已更改。
4、NET平台相关的本征
添加了API,这些API允许访问某些面向性能的CPU指令,例如SIMD或位操作指令集。这些说明可以在某些情况下帮助显着提高性能,例如有效地并行处理数据。
在适当的情况下,.NET库已开始使用这些说明来提高性能。
5、默认可执行文件
.NET Core现在默认情况下会构建与框架相关的可执行文件。对于使用全局安装的.NET Core版本的应用程序,此行为是新的。以前,只有自包含的部署才能生成可执行文件。
在dotnet build或期间dotnet publish,将创建一个与您使用的SDK的环境和平台相匹配的可执行文件。您可以期望这些可执行文件与其他本机可执行文件具有相同的效果,例如:
您可以双击可执行文件。
您可以直接从命令提示符启动应用程序,例如myapp.exe在Windows以及./myappLinux和macOS上。
6、单文件可执行文件
该dotnet publish命令支持将您的应用程序打包到特定于平台的单文件可执行文件中。可执行文件是自解压缩的,包含运行应用程序所需的所有依赖项(包括本机)。首次运行该应用程序时,该应用程序将根据应用程序名称和构建标识符提取到目录中。再次运行该应用程序时,启动速度更快。除非使用了新版本,否则该应用程序无需再次提取自身。
要发布单文件可执行文件,请PublishSingleFile在项目中或在命令行中使用以下dotnet publish命令设置:

7、装配链接
.NET core 3.0 SDK附带了一个工具,该工具可以通过分析IL和修剪未使用的程序集来减小应用程序的大小。
完备的应用程序包含运行代码所需的一切,而无需在主机上安装.NET。但是,很多时候该应用程序只需要框架的一小部分即可运行,其他未使用的库也可以删除。
.NET Core现在包含一个设置,该设置将使用IL链接器工具来扫描应用程序的IL。该工具检测所需的代码,然后修剪未使用的库。该工具可以显着减小某些应用程序的部署大小。
要启用此工具,请<PublishTrimmed>在您的项目中添加设置,然后发布一个独立的应用程序:

例如,发布时包含的基本“ hello world”新控制台项目模板的大小约为70 MB。通过使用<PublishTrimmed>,该大小减小到大约30 MB。
重要的是要考虑使用反射或相关动态功能的应用程序或框架(包括ASP.NET Core和WPF)在修剪时经常会损坏。之所以会发生这种中断,是因为链接器不知道这种动态行为,也无法确定反射所需的框架类型。可以将IL Linker工具配置为了解这种情况。
最重要的是,一定要在修剪后测试您的应用程序。
8、分层编译
.NET Core 3.0默认情况下启用分层编译(TC)。此功能使运行时可以更自适应地使用即时(JIT)编译器来获得更好的性能。
TC的主要好处是可以启用质量较低但速度较快的层或质量较高但速度较慢的层的(重新)设置方法。这有助于提高应用程序从启动到稳态的各个执行阶段的性能。这与非TC方法形成对比,后者采用的是每种方法都以单一方式(与高质量层相同)编译的方式,这种方式在启动性能方面倾向于稳态。
要启用Quick JIT(第0层级伪代码),请在项目文件中使用以下设置:

9、ReadyToRun图像
通过将应用程序程序集编译为ReadyToRun(R2R)格式,可以缩短.NET Core应用程序的启动时间。R2R是一种提前(AOT)编译的形式。
R2R二进制文件通过减少应用程序加载时即时(JIT)编译器需要完成的工作量来提高启动性能。与JIT产生的代码相比,二进制文件包含相似的本机代码。但是,R2R二进制文件较大,因为它们既包含中间语言(IL)代码(某些情况下仍需要此代码)和同一代码的本机版本。仅当发布针对特定运行时环境(RID)(例如Linux x64或Windows x64)的独立应用程序时,R2R才可用。
要将项目编译为ReadyToRun,请执行以下操作:
将<PublishReadyToRun>设置添加到您的项目
发布一个独立的应用程序。例如,以下命令为Windows的64位版本创建一个独立的应用程序:

10、跨平台/架构限制
ReadyToRun编译器当前不支持交叉目标。您必须在给定的目标上进行编译。例如,如果您想要Windows x64的R2R映像,则需要在该环境上运行publish命令。
跨定位的例外情况:
Windows x64可用于编译Windows ARM32,ARM64和x86映像。
Windows x86可用于编译Windows ARM32映像。
Linux x64可用于编译Linux ARM32和ARM64映像。
11、构建副本依赖项
dotnet build现在,该命令将您的应用程序的NuGet依赖项从NuGet缓存复制到构建输出文件夹。以前,依赖项仅作为的一部分进行复制dotnet publish。
有些操作(如链接和剃刀页面发布)仍需要发布。
12、本地工具
.NET Core 3.0引入了本地工具。本地工具类似于全局工具,但与磁盘上的特定位置关联。本地工具不在全球范围内提供,而是作为NuGet软件包分发。
 警告
如果您在.NET Core 3.0 Preview 1中尝试了本地工具,例如运行dotnet tool restore或dotnet tool install,请删除本地工具缓存文件夹。否则,本地工具将无法在任何较新的版本上使用。该文件夹位于:
在macOS,Linux上: rm -r $HOME/.dotnet/toolResolverCache
在Windows上: rmdir /s %USERPROFILE%\.dotnet\toolResolverCache
本地工具依赖于dotnet-tools.json当前目录中的清单文件名。此清单文件定义了该文件夹及其下的可用工具。您可以将清单文件与代码一起分发,以确保使用您的代码的任何人都可以还原和使用相同的工具。
对于全局和本地工具,都需要运行时的兼容版本。NuGet.org上当前有许多工具都针对.NET Core Runtime 2.1。要在全局或本地安装这些工具,您仍然需要安装NET Core 2.1 Runtime。
13、主版本前滚
.NET Core 3.0引入了选择加入功能,该功能使您的应用可以前滚到.NET Core的最新主要版本。此外,添加了新设置来控制如何将前滚应用于您的应用。可以通过以下方式进行配置:
项目文件属性: RollForward
运行时配置文件属性: rollForward
环境变量: DOTNET_ROLL_FORWARD
命令行参数: --roll-forward
必须指定以下值之一。如果省略设置,则默认为次要。
LatestPatch
前滚到最高补丁版本。这将禁用次要版本前滚。
次要
版本如果缺少所需的次要版本,则前滚到最低的次要版本。如果存在所请求的次要版本,则使用LatestPatch策略。
主要
如果缺少所需的主要版本,则前滚至最低的较高主要版本和最低的次要版本。如果存在所请求的主要版本,则使用次要策略。
LatestMinor
即使存在请求的次要版本,也可以前滚到最高次要版本。适用于组件托管方案。
LatestMajor
即使存在要求的专业,也向前滚动到最高的专业和最高的次要版本。适用于组件托管方案。
禁用
不要前滚。仅绑定到指定版本。不建议将该策略用于一般用途,因为它会禁用前滚到最新补丁的功能。仅建议将该值用于测试。
除“ 禁用”设置外,所有设置都将使用可用的最高修补程序版本。
14、Windows桌面
.NET Core 3.0使用Windows Presentation Foundation(WPF)和Windows窗体支持Windows桌面应用程序。这些框架还支持通过XAML岛使用Windows UI XAML库(WinUI)中的现代控件和Fluent样式。
Windows桌面组件是Windows .NET Core 3.0 SDK的一部分。
您可以使用以下dotnet命令创建新的WPF或Windows Forms应用程序:

Visual Studio 2019 为.NET Core 3.0 Windows窗体和WPF 添加了新项目模板。
15、可调用COM的组件-Windows桌面
在Windows上,您现在可以创建可调用COM的托管组件。此功能对于将.NET Core与COM加载项模型一起使用以及与.NET Framework提供奇偶校验至关重要。
与mscoree.dll用作COM服务器的.NET Framework不同,.NET Core将在构建COM组件时将本地启动器dll添加到bin目录中。
16、MSIX部署-Windows桌面
MSIX是一种新的Windows应用程序包格式。它可用于将.NET Core 3.0桌面应用程序部署到Windows 10。
Visual Studio 2019中提供的Windows应用程序打包项目允许您使用独立的 .NET Core应用程序创建MSIX程序包。
.NET Core项目文件必须在<RuntimeIdentifiers>属性中指定支持的运行时:

17、WinForms高DPI
.NET Core Windows Forms应用程序可以使用Application.SetHighDpiMode(HighDpiMode)设置高DPI模式。该SetHighDpiMode方法设置相应的高DPI模式,除非已通过App.Manifest或P / Invoke before 等其他方式进行设置Application.Run。
highDpiMode由System.Windows.Forms.HighDpiMode枚举表示的可能值是:
DpiUnaware
SystemAware
PerMonitor
PerMonitorV2
DpiUnawareGdiScaledWinForms高DPI
.NET Core Windows Forms应用程序可以使用Application.SetHighDpiMode(HighDpiMode)设置高DPI模式。该SetHighDpiMode方法设置相应的高DPI模式,除非已通过App.Manifest或P / Invoke before 等其他方式进行设置Application.Run。
highDpiMode由System.Windows.Forms.HighDpiMode枚举表示的可能值是:
DpiUnaware
SystemAware
PerMonitor
PerMonitorV2
DpiUnawareGdiScaled
18、范围和索引
新的System.Index类型可用于建立索引。您可以从头算起创建一个,也可以从头算起创建int前缀^运算符(C#):
还有System.Range类型,它由两个Index值组成,一个用于开始,一个用于结束,可以用x..y范围表达式(C#)编写。然后,您可以使用进行索引Range,从而产生一个切片:

19、异步流
所述IAsyncEnumerable <T>类型是一个新的异步版本的IEnumerable <T> 。语言可以让你await foreach在IAsyncEnumerable<T>消耗它们的元素,并用yield return它们来生产要素。
以下示例演示了异步流的产生和使用。该foreach语句是异步的,它本身用于yield return为调用者生成异步流。yield return建议使用此模式(使用)来生成异步流。
除了能await foreach,你还可以创建异步迭代器,例如,返回一个迭代器IAsyncEnumerable/IAsyncEnumerator,你既可以await和yield英寸对于那些需要处理的对象,就可以使用IAsyncDisposable,其中各种BCL类型的实现,如Stream和Timer。
20、IEEE浮点改进
浮点API正在更新,以符合IEEE 754-2008修订版。这些更改的目的是公开所有必需的操作,并确保它们在行为上符合IEEE规范。有关浮点改进的更多信息,请参见.NET Core 3.0博客文章中的浮点分析和格式改进。
解析和格式化修复包括:
正确解析和舍入任何长度的输入。
正确解析并格式化负零。
正确解析Infinity并NaN进行不区分大小写的检查,并+在适用的情况下允许使用可选的前缀。
新的System.Math API包括:
BitIncrement(Double)和BitDecrement(Double)
对应于nextUp和nextDownIEEE操作。它们分别返回大于或小于输入的最小浮点数。例如,Math.BitIncrement(0.0)将返回double.Epsilon。
MaxMagnitude(Double,Double)和MinMagnitude(Double,Double)
对应于maxNumMag和minNumMagIEEE操作,它们分别返回两个输入的大小幅值较大或较小的值。例如,Math.MaxMagnitude(2.0, -3.0)将返回-3.0。
ILogB(Double)
对应于logB返回整数值的IEEE操作,它返回输入参数的整数base- 2日志。此方法实际上与相同floor(log2(x)),但舍入误差最小。
ScaleB(Double,Int32)
对应于scaleB采用整数值的IEEE操作,它有效地返回x * pow(2, n),但以最小的舍入误差完成。
Log2(Double)
对应于log2IEEE操作,它返回以2为底的对数。它使舍入误差最小。
FusedMultiplyAdd(Double,Double,Double)
对应于fmaIEEE操作,它执行融合乘法加法。即,它(x * y) + z作为单个操作进行,从而使舍入误差最小。一个示例是FusedMultiplyAdd(1e308, 2.0, -1e308)return 1e308。定期(1e308 * 2.0) - 1e308回报double.PositiveInfinity。
CopySign(Double,Double)
对应于copySignIEEE操作,它返回的值x,但带有的符号y。
21、快速内置的JSON支持
.NET用户在很大程度上依赖Json.NET和其他流行的JSON库,它们仍然是不错的选择。Json.NET使用.NET字符串作为其基本数据类型,该数据类型实际上是UTF-16。
新的内置JSON支持基于,性能高,分配低Span<byte>。NET Core 3.0 System.Text.Json命名空间中添加了三种与JSON相关的主要类型。这些类型尚不支持普通的旧CLR对象(POCO)序列化和反序列化。
Utf8JsonReader
System.Text.Json.Utf8JsonReader是一种高性能,低分配,仅前向阅读器,用于从读取UTF-8编码的JSON文本ReadOnlySpan<byte>。的Utf8JsonReader是一个基本的,低级的类型,可用于构建定制解析器和解串器。Utf8JsonReader使用Json.NET读取JSON有效负载的速度比使用Json.NET读取器快2倍。在您需要将JSON令牌实现为(UTF-16)字符串之前,它不会分配。
这是通读 Visual Studio Code创建的launch.json文件的示例:
public static void PrintJson(ReadOnlySpan<byte> dataUtf8)
{
    var json = new Utf8JsonReader(dataUtf8, isFinalBlock: true, state: default);
    
    while (json.Read())
    {
        JsonTokenType tokenType = json.TokenType;
        ReadOnlySpan<byte> valueSpan = json.ValueSpan;
        switch (tokenType)
        {
            case JsonTokenType.StartObject:
            case JsonTokenType.EndObject:
                break;
            case JsonTokenType.StartArray:
            case JsonTokenType.EndArray:
                break;
            case JsonTokenType.PropertyName:
                break;
            case JsonTokenType.String:
                Console.WriteLine($"STRING: {json.GetString()}");
                break;
            case JsonTokenType.Number:
                if (!json.TryGetInt32(out int valueInteger))
                {
                    throw new FormatException();
                }
                break;
            case JsonTokenType.True:
            case JsonTokenType.False:
                Console.WriteLine($"BOOL: {json.GetBoolean()}");
                break;
            case JsonTokenType.Null:
                break;
            default:
                throw new ArgumentException();
        }
    }
 
    dataUtf8 = dataUtf8.Slice((int)json.BytesConsumed);
    JsonReaderState state = json.CurrentState;
}

22、Utf8JsonWriter
System.Text.Json.Utf8JsonWriter提供了一个高性能的,非缓存,只进写UTF-8从普通.NET类型编码的JSON文本一样的方式String,Int32和DateTime。像阅读器一样,编写器是基础的低级类型,可用于构建自定义序列化程序。使用新的JSON负载Utf8JsonWriter比使用Json.NET的writer快30-80%,并且不分配资源。
23、JsonDocument
System.Text.Json.JsonDocument构建在的顶部Utf8JsonReader。将JsonDocument提供到解析JSON数据和构建能够被查询以支持随机访问与枚举只读文档对象模型(DOM)的能力。可以通过JsonElement类型访问组成数据的JSON元素,该类型由公开为JsonDocument称为属性RootElement。该JsonElement包含JSON数组和对象普查员使用API一起JSON文本普通.NET类型转换。JsonDocument与Json.NET相比,解析典型的JSON有效负载并访问其所有成员的速度比Json.NET快2-3倍,并且对合理大小(即<1 MB)的数据几乎没有分配。
以下是这些样品的使用JsonDocument和JsonElement能够用于作为起点:

这是读取由Visual Studio Code创建的launch.json文件的C#8.0示例:

25、JsonSerializer
System.Text.Json.JsonSerializer构建在Utf8JsonReader和Utf8JsonWriter之上,在处理JSON文档和片段时提供了一种快速的,低内存的序列化选项。
这是将对象序列化为JSON的示例:
var instance = new
{
    FirstName = "John",
    LastName = "Smith",
    Age = 18
};
 
System.Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(instance));
这是将JSON字符串反序列化为对象的示例。您可以使用上一个示例生成的JSON字符串:

26、互操作性改进
.NET Core 3.0改进了本机API互操作。
类型:NativeLibrary
System.Runtime.InteropServices.NativeLibrary提供了一种封装,用于加载本机库(使用与.NET Core P / Invoke相同的加载逻辑)并提供相关的帮助程序功能,例如getSymbol。有关代码示例,请参见DLLMap演示。
Windows本机互操作
Windows以平面C API,COM和WinRT的形式提供了丰富的本机API。.NET Core支持P / Invoke,而.NET Core 3.0增加了CoCreate COM API和激活WinRT API的功能。
27、HTTP / 2支持
所述System.Net.Http.HttpClient类型支持HTTP / 2协议。如果启用了HTTP / 2,则通过TLS / ALPN协商HTTP协议版本,如果服务器选择使用HTTP / 2,则使用HTTP / 2。
默认协议为HTTP / 1.1,但是可以通过两种不同的方式启用HTTP / 2。首先,您可以将HTTP请求消息设置为使用HTTP / 2:
var client = new HttpClient() { BaseAddress = new Uri("https://localhost:5001") };
 
// HTTP/1.1 request
using (var response = await client.GetAsync("/"))
    Console.WriteLine(response.Content);
 
// HTTP/2 request
using (var request = new HttpRequestMessage(HttpMethod.Get, "/") { Version = new Version(2, 0) })
using (var response = await client.SendAsync(request))
    Console.WriteLine(response.Content);
其次,您可以将HttpClient更改为默认使用HTTP / 2:

很多时候在开发应用程序时,您都想使用未加密的连接。如果知道目标端点将使用HTTP / 2,则可以打开HTTP / 2的未加密连接。您可以通过将DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2UNENCRYPTEDSUPPORT环境变量设置为1或在应用程序上下文中启用它来启用它:
AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
28、Linux上的TLS 1.3和OpenSSL 1.1.1
如果在特定环境中可用,.NET Core现在可以利用OpenSSL 1.1.1中的TLS 1.3支持。使用TLS 1.3:
通过减少客户端与服务器之间的往返行程,缩短了连接时间。
由于消除了各种过时和不安全的加密算法,因此提高了安全性。
如果可用,.NET Core 3.0 在Linux系统上使用OpenSSL 1.1.1,OpenSSL 1.1.0或OpenSSL 1.0.2。当OpenSSL 1.1.1可用时,System.Net.Security.SslStream和System.Net.Http.HttpClient类型都将使用TLS 1.3(假设客户端和服务器都支持TLS 1.3)。
 重要
Windows和macOS尚不支持TLS 1.3。支持时,.NET Core 3.0将在这些操作系统上支持TLS 1.3。
29、密码学密码
.NET 3.0添加了对AES-GCM和AES-CCM密码的支持,分别通过System.Security.Cryptography.AesGcm和System.Security.Cryptography.AesCcm实现。这些算法都是具有关联数据的认证加密(AEAD)算法。
30、加密密钥导入/导出
.NET Core 3.0支持从标准格式导入和导出非对称公钥和私钥。您不需要使用X.509证书。
所有密钥类型,例如RSA,DSA,ECDsa和ECDiffieHellman,都支持以下格式:
公钥
X.509 SubjectPublicKeyInfo
私钥
PKCS#8 PrivateKeyInfo
PKCS#8 EncryptedPrivateKeyInfo
RSA密钥还支持:
公钥
PKCS#1 RSAPublicKey
私钥
PKCS#1 RSAPrivateKey
导出方法产生DER编码的二进制数据,并且导入方法期望相同。如果密钥以文本友好的PEM格式存储,则调用者将需要在调用导入方法之前对内容进行base64解码。
PKCS#8的文件可与被检查System.Security.Cryptography.Pkcs.Pkcs8PrivateKeyInfo和PFX / PKCS#12文件可以与被检查System.Security.Cryptography.Pkcs.Pkcs12Info。可以使用System.Security.Cryptography.Pkcs.Pkcs12Builder操纵PFX / PKCS#12文件。
31、适用于Linux的SerialPort
.NET Core 3.0为Linux上的System.IO.Ports.SerialPort提供了基本支持。
以前,.NET Core仅支持SerialPort在Windows上使用。
32、Docker和cgroup内存限制
在具有Docker的Linux上运行.NET Core 3.0可以更好地解决cgroup内存限制。运行具有内存限制(例如with)的Docker容器会docker run -m更改.NET Core的行为。
默认垃圾收集器(GC)堆大小:最大20 mb或容器上内存限制的75%。
显式大小可以设置为cgroup限制的绝对数字或百分比。
每个GC堆的最小保留段大小为16 mb。此大小减少了在计算机上创建的堆的数量。
33、较小的垃圾回收堆大小
垃圾回收器的默认堆大小已减小,导致.NET Core使用更少的内存。此更改更适合现代处理器缓存大小的第0代分配预算。
34、垃圾收集大页面支持
大页面(在Linux上也称为大页面)是一项功能,操作系统能够建立大于本机页面大小(通常为4K)的内存区域,以提高请求这些大页面的应用程序的性能。
现在,可以使用GCLargePages设置配置垃圾收集器,作为选择启用功能,以选择在Windows上分配大页面。
35、Raspberry Pi的GPIO支持
已向NuGet发布了两个软件包,可用于GPIO编程:
System.Device.Gpio
Iot.Device.Bindings
GPIO软件包包括用于GPIO,SPI,I2C和PWM器件的API 。IoT绑定程序包包括设备绑定。
36、ARM64 Linux支持
.NET Core 3.0添加了对Linux Linux ARM64的支持。ARM64的主要用例当前在IoT场景中。有关更多信息,请参见.NET Core ARM64状态。
适用于ARM64的.NET Core的Docker映像可用于Alpine,Debian和Ubuntu。
 注意
ARM64 Windows支持尚不可用。

新版特色

1、NET Core 3.0 已经在 dot.net 以及 Bing.com 上托管了几个月,通过了一系列严苛的测试。众多其他微软团队也将很快在生产流程当中通过 .NET Core 3.0 部署一系列大型工作负载。
2、多种组件的性能得到显著提升,感兴趣的朋友可以点击此处参阅 .NET Core 3.0 的性能改进说明。
3、C# 8 加入了异步流、范围 / 索引、更多模式以及可为空的引用类型。可为空意味着可以直接发现那些导致 NullReferenceException 问题的代码缺陷。框架库的最底层注释也已添加完成,以帮助了解何时为 Null。
4、F# 4.7 致力于通过隐式 yield 表达式及相关语法降低某些操作的实现难度。其中还包含对 LangVersion 的支持,提供 nameof 并可以预览形式打开静态类。F# Core 核心库现在还与 .NET Standard 2.0 相匹配。您可以点击此处参阅 F# 4.7 发布公告中的细节信息。
5、.NET Standard 2.1 增加了可与 .NET Core 以及 Xamarin 共同使用的代码类型集。.NET Standar 2.1 当中包含 .NET Core 2.1 以及之后版本中的所有类型。
6、Windows 桌面应用现已面向 Windows Forms 与 WPF(开源)得到 .NET Core 支持。其中,WPF 设计器为 Visual Studio 2019 16.3 版本中的组成部分。Windows Forms 设计器仍处于预览状态,并可通过 VSIX 下载的形式获取。
7、.NET Core 应用现在默认具备可执行文件。在以往的发行版中,应用需要通过 dotnet 命令方启动,例如 dotnet myapp.dll。现在,可以通过应用特定可执行文件实现应用启动,例如 myapp 或者./myapp,具体视使用的操作系统而定。
8、高性能 JSON API 加入新版本,适用于 reader/writer、对象模型以及序列化场景等。这些 API 在 Span 基础之上重新构建而成,且在底层使用 UTF8(而非 string 等 UTF16)。这些 API 能够将分配需求控制在最低程度,从而提高性能、减少垃圾收集器的工作量。具体请参阅.NET Core 3.0 中的 JSON 未来发展说明。
9、默认情况下,垃圾收集器的内存占用量得到了显著削减。对于将众多应用程序托管在同一服务器之上的使用场景,这项改进可谓意义重大。垃圾收集器本身也得到了更新,能够利用 64 核及以上设备的大量计算核心。
10、.NET Core 已针对 Docker 进行了增强,以使 .NET 应用程序能够在容器中以可预测的方式高效运作。在容器配置中的内存或 CPU 资源有限时,目前的垃圾收集器与线程池更新结果也能带来更好的运作效果。.NET Core docker 镜像也变得更小,其中 SDK 镜像的瘦身效果尤其明显。
11、Raspberry Pi 与 ARM 芯片现已得到支持,可配合远程 Visual Studio 调试程序等工具实现物联网开发。开发者可部署应用以监听各传感器,同时将消息或者图像输出至显示器上,整个过程皆可通过新的 GPIO API 实现。ASP.NET 则可用于将数据公布于 API 或者以站点的形式对物网设备进行配置。
12、.NET Core 3.0 即为“当前”版本,我们计划在 2019 年 11 月推出下一代 .NET Core 3.1 版本。.NET Core 3.1 将为长期支持(LTS)版本(周期至少为 3 年)。我们建议您首先采用 .NET Core 3.0,而后更新至 3.1 版,升级过程将非常轻松。
13、.NET Core 2.2 将于今年 12 月 23 日停止服务,具体情况请参阅 .NET Core 支持策略。
14、.NET Core 3.0 将通过 RHEL 8 的红帽 Applicaltion Streams 交付,这也是我们与红帽公司多年合作的最新成果。
15、对于希望在 Windows 上使用 .NET Core 3.0 的用户,将必须升级至 Visual Studio 2019 16.3。
16、对于希望在 Mac 上使用 .NET Core 3.0 的用户,将必须升级至 Visual Studio for Mac 8.3。
17、Visual Studio Code 用户应始终使用最新版本的 C# 扩展,以确保能够正常支持最新方案,包括与 .NET Core 3.0 的匹配。
18、.NET Core 3.0 的 Azure App Serivce 部署目前正在进行当中。
19、.NET Core 3.0 的 Azure Dev Ops 部署即将推出。我们将在准备就绪之后发布更新。

功能特色

1、跨平台:在Windows,macOS和Linux 操作系统上运行。
2、跨体系结构一致:在多个体系结构(包括x64,x86和ARM)上以相同的行为运行代码。
3、命令行工具: 包括易于使用的命令行工具,可用于本地开发和持续集成方案。
4、灵活的部署:可以包含在您的应用程序中,也可以并排安装(在用户范围或系统范围内安装)。可以与Docker容器一起使用。
5、兼容: .NET Core通过.NET Standard与.NET Framework,Xamarin和Mono兼容。
6、开源: .NET Core平台是开源的,使用MIT和Apache 2许可证。.NET Core是一个.NET Foundation项目。
7、Microsoft支持:每个.NET Core支持,Microsoft 支持.NET Core。

使用说明

1、语言
可以使用C#,Visual Basic和F#语言编写.NET Core的应用程序和库。这些语言可以在您喜欢的文本编辑器或集成开发环境(IDE)中使用,包括:
视觉工作室
Visual Studio程式码
崇高文字
VIM
2、蜜蜂
.NET Core公开了许多方案的API,其中一些方案如下:
基本类型,例如bool和int。
集合,例如System.Collections.Generic.List <T>和System.Collections.Generic.Dictionary <TKey,TValue>。
实用程序类型,例如System.Net.Http.HttpClient和System.IO.FileStream。
数据类型,例如System.Data.DataSet和DbSet。
高性能类型,例如System.Numerics.Vector和Pipelines。
.NET Core通过实现.NET Standard规范来提供与.NET Framework和Mono API的兼容性。
3、构架
.NET Core之上已建立了多个框架:
ASP.NET核心
Windows 10通用Windows平台(UWP)
Tizen
4、组成
.NET Core由以下部分组成:
的.NET核心运行时,它提供了一个类型的系统,组件装载,垃圾收集器,本地互操作,和其他基本服务。.NET Core框架库提供原始数据类型,应用程序组合类型和基本实用程序。
在ASP.NET运行时,它提供了建立现代基于云的互联网连接的应用程序,如Web应用,物联网应用和移动后端的框架。
在.NET核心CLI工具和语言编译器(罗斯林和F# ),使该.NET核心开发经验。
该DOTNET工具,它是用来发射.NET应用程序的核心和CLI工具。它选择运行时并托管运行时,提供程序集加载策略,并启动应用程序和工具。
这些组件以下列方式分布:
.NET Core运行时 -包括.NET Core运行时和框架库。
ASP.NET Core运行时 -包括ASP.NET Core和.NET Core运行时以及框架库。
.NET Core SDK-包括.NET CLI工具,ASP.NET Core运行时以及.NET Core运行时和框架。
5、创建您的第一个应用程序
安装.NET Core SDK之后,打开命令提示符。键入以下dotnet命令来创建和运行C#应用程序:
您应该看到以下输出:

6、支持
Microsoft在Windows,macOS和Linux上均支持 .NET Core 。每年针对安全性和质量进行几次更新(通常每月一次)。
.NET Core二进制发行版在Azure的Microsoft维护的服务器上构建和测试,并且像任何Microsoft产品一样受支持。
红帽在红帽企业Linux(RHEL)上支持.NET Core。Red Hat从源代码构建.NET Core,并使其在Red Hat Software Collections中可用。红帽和Microsoft协作以确保.NET Core在RHEL上正常运行。

日志:

微软现又推出了小幅修订的 .NET Core 3.1 更新。除了改进 3.0 版本中引入的功能,3.1 还是受到长期支持的版本,意味着能够在未来三年内得到充分的支持。与此同时,3.0 版本的支持将于明年 3 月截止。
好消息是,微软提供了一个表格来说明正在发生的变化,以便用户作出相应的调整。
 
● 对 Razor 组件的部分类支持;
 
● 将参数传递给顶级组件;
 
● 新的组件标签助手;
 
● 阻止 Blazor 应用中事件的默认操作;
 
● 停止 Blazor 应用中的事件传播;
 
● Blazor 应用程序开发期间的报错详情;
 
● 支持 HttpSysServer 中的共享队列;
 
● SameSite Cookie 的重大更改。
 
最后,微软引入新版了 Blazor WebAssembly,增加了对 .NET Standard 2.1 和 iOS 13 的支持:
 
● 支持 .NET Standard 2.1;
 
● 发布时支持静态资产;
 
● 支持 iOS 13;
 
● 改进连接器报错体验;
 
● Visual Studio 的 Attach to Process 调试。
有任何意见或者建议请联系邮箱:858898909[at]qq.com 本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!
Copyright © 2012 SDBETA.com. All Rights Reserved 豫ICP备12021367号 豫公网安备 41019702002546号闪电下载吧