您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    光棍节微软发布dotNET 5.0正式版本,新功用尝鲜(2)
    时间:2020-11-11 21:25 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    大类通常在从结构函数调用的协助器办法中实例化对象成员。C#编译器无法遵照对对象分配的调用流程。参加结构函数时,它会以为该成员为null,并运用收回正告CS8618。MemberNotNull属性可处置此成绩。该属性运用于助手办法。然后,编译器将看到设置了该值,并看法到该办法是从结构函数中调用的。

    下面是一个在BMxx80温度传感器中的示例:

    [MemberNotNull(nameof(_calibrationData))]

    private void ReadCalibrationData()

    {

    switch (this)

    {

    case Bme280 _:

    _calibrationData = new Bme280CalibrationData();

    _controlRegister = (byte)Bmx280Register.CTRL_MEAS;

    break;

    case Bmp280 _:

    _calibrationData = new Bmp280CalibrationData();

    _controlRegister = (byte)Bmx280Register.CTRL_MEAS;

    break;

    case Bme680 _:

    _calibrationData = new Bme680CalibrationData();

    _controlRegister = (byte)Bme680Register.CTRL_MEAS;

    break;

    default:

    throw new Exception("Bmxx80 device not correctly configured. Could not find calibraton data.");

    }

    _calibrationData.ReadFromDevice(this);

    }

    实践的代码中运用了条件编译。由于项目是多目的的,并且.NET 5.0+仅支持此属性。运用该属性可以跳过运转时反省(在结构函数中)。

    运用部署

    编写或更新运用顺序后,需求对其停止以运用户受益。这能够是到Web效劳器,云效劳或客户端计算机的,并且能够是运用Azure DevOps或GitHub Actions之类的效劳的CI/CD流的结果。

    .NET 5.0,专注于改良单个文件运用顺序,减小docker多阶段构建的容器大小,并为运用.NET Core部署ClickOnce运用顺序提供更好的支持。

    容器

    容器是最重要的云趋向,.NET软件堆栈的多个级别以多种方式对容器停止支持。首先是在基础方面的支持,这越来越遭到容器方案和部署容器化运用顺序的开发人员的影响。

    为和容器协调器的协作变得愈加容易。添加了OpenTelemetry支持,以便可以从运用顺序中捕获散布式跟踪和目的。dotnet-monitor是一个新工具,旨在作为从.NET进程拜访诊断信息的主要办法。特别是,曾经末尾构建dotnet-monitor的容器变体,可以将其用作运用顺序sidecar。还在构建dotnet/tye,以提高微效劳开发人员在开发和部署到Kubernetes环境中的消费率。

    .NET运转时如今支持cgroup v2,估量它将在2020年以后成为与容器相关的重要API。Docker以后运用cgroup v1(.NET曾经支持)。相比之下,cgroup v2比cgroup v1更复杂,更高效,更安全。Linux发行版和容器运转时正在。一旦变得更常见,.NET 5.0将在cgroup v2环境中正常任务。

    除了Nano Server,还将发布Windows Server Core镜像。该镜像支持以下组合:Windows Server 2019长期效劳通道(LTSC)、. NET 5.0和x64。还有其他更改,以减小Windows Server Core镜像的大小。

    作为运用" .NET"作为产品称号的一部分,如今将.NET Core 2.1、3.1和.NET 5.0镜像发布到repos系列。同.NET Core 2.1和3.1一同发布,同时支持多版本。.NET 5.0镜像将发布到新位置。请相应地更新您的语句和脚本。

    作为.NET 5.0的一部分,将SDK映像重新树立在ASP.NET镜像之上,而不是buildpack-deps,以清楚减小在多阶段构建方案中提取的聚合映像的大小。

    Ubuntu 20.04 Focal 多阶段构建成本:

    下载节省量:100 MB(-30%)

    Debian 10 Buster 多阶段构建成本:

    净下载节省量:146 MB(-40%)

    对Alpine和Nano Server停止了相似的更改。Alpine或Nano Server没有任何buildpack-depssdk镜像。关于多阶段构建,将看到Alpine和Nano Server以及5.0的庞大成功。

    单文件运用

    单个文件运用顺序作为单个文件发布和部署。该运用顺序及其依赖项都包含在该文件中。当运用顺序运转时,依赖项直接从该文件加载到内存中(不影响功用)。

    在.NET 5.0中,单个文件运用顺序主要集中在Linux上(稍后再引见)。它们可以是框架相关的,也可以是独立的。依赖于全局安装的.NET运转时,依赖于框架的单个文件运用顺序能够很小。自包含的单文件运用顺序较大(由于带有运转时),但不需求作为安装前步骤就安装.NET运转时,因此可以正常任务。通常,依赖框架对开发和企业环境有利,而关于ISV,独立包含通常是更好的选择。

    在一切平台上,都有一个名为" apphost"的组件。这是成为可执行文件的文件,例如在Windows上或myapp.exe./myapp在基于Unix的平台上。关于单文件运用顺序,创立了一个新的运用顺序主机"超级主机"。它具有与常规apphost相反的角色,但还包含运转时的静态链接正本。超级主机是单文件办法的基本设计点。该模型是在带有.NET 5.0的Linux上运用的模型。由于各种操作系统限制,无法在Windows或macOS上完成此办法。在Windows或macOS上没有超级主机。在这些操作系统上,本机运转时二进制文件(约3个)位于单个文件运用顺序旁边(招致"不是单个文件")。

    框架相关的单文件运用顺序:

    dotnet publish -r linux-x64 --self-contained false /p:PublishSingleFile=true

    自包含的单文件运用顺序:

    dotnet publish -r linux-x64 --self-contained true /p:PublishSingleFile=true

    还可以运用项目文件配置单个文件发布。

    Exe

    net5.0

    linux-x64

    true

    true

    ClickOnce

    (责任编辑:admin)