.Net 8.0 新的变化

        .NET 8 是微软于2021年8月24日宣布的下一代编程语言和框架,它是 .NET 宇宙的一部分,与 C# (Common Language Infrastructure) 紧密集成。.NET 8 引入了许多新功能,如原生编译、值类型 (Value Types)、结构化并发 (structured concurrency) 和快速数组 (RapidArray)。.NET 8 还支持本机 (native) AOT (Ahead-Of-Time) 编译,以提高性能和启动速度。

        .NET 8 是 Microsoft 发布的最新一代 .NET 框架,它引入了许多新功能和改进,旨在提高性能、可扩展性和开发效率。


以下是一些 .NET 8 的主要亮点:
        1、性能提升:.NET 8 引入了名为“性能计数器”的新功能,可帮助开发人员了解应用程序的性能瓶颈,并采取相应的优化措施。此外,.NET 8 还对许多现有的组件和库进行了优化,以提高应用程序的整体性能。
        2、新的异步编程模型:.NET 8 引入了名为“协程”的新的异步编程模型,它可以更自然地处理异步操作和长时间运行的任务。协程可以在同一个线程上执行多个异步操作,从而避免了线程切换和上下文切换的开销。
        3、云原生支持:.NET 8 提供了更好的云原生支持,可以更轻松地将应用程序部署到 Kubernetes 等容器化平台中。.NET 8 还支持使用 Docker 等容器化工具打包和分发应用程序。
        4、新的开发工具:.NET 8 引入了新的开发工具,如 R#”、Visual Studio Code“ 和 Visual Studio IDE 等,这些工具可以帮助开发人员更高效地编写、调试和测试代码。
        5、跨平台支持:.NET 8 可以在多个平台上运行,包括 Windows、macOS 和 Linux 等操作系统。此外,.NET 8 还支持在移动设备、Web 应用程序和游戏开发等领域中使用。
        6、人工智能和机器学习:.NET 8 内置了对人工智能和机器学习的支持,可以更轻松地使用这些技术来构建智能应用程序。
        7、安全性改进:.NET 8 对安全性进行了改进,包括更好的代码签名和加密技术、对 .NET 反射的限制、对代码访问控制的改进等。


        .NET 8 为开发人员提供了许多新功能和改进,可以帮助他们更高效地编写高质量的应用程序。

以下是 .NET 8 中引入的一些主要功能和改进:
        1、性能优化:.NET 8 引入了名为“JIT-Chains”的全新技术,它可以将多个热点方法组合在一起,以减少 JIT 编译的开销。此外,.NET 8 还优化了垃圾回收器的性能,提高了堆内存的压缩速度和效率。
        2、容器化:.NET 8 支持容器化应用,可以将应用打包成 Docker 镜像并在任何支持 Docker 的平台上运行。这使得应用更容易部署和扩展,并且可以与其他容器化应用集成。
        3、多平台支持:.NET 8 可以在 Linux、macOS 和 Windows 平台上运行,并且支持 ARM64 和 ARMv7 架构,这意味着可以在各种设备和应用程序中使用 .NET 8。
        4、新增语言功能:.NET 8 支持 C# 10 和 VB.NET 16,这些语言版本引入了许多新功能和改进,如记录模式、switch表达式、模式匹配、记录类型、可变性和局部类型参数等。
        5、云原生应用支持:.NET 8 支持 Kubernetes 和云原生应用的其他组件,如服务网格、StatefulSet 等,这使得 .NET 8 更适合构建云原生应用。
        6、数据库连接:.NET 8 引入了新的数据库连接 API,可以更轻松地连接各种数据库,如 MySQL、PostgreSQL 和 SQL Server 等。
        7、Web API 改进:.NET 8 对 Web API 进行了改进,可以更轻松地创建 RESTful API,并且支持异步和同步请求处理。
        总之,.NET 8 引入了许多新功能和改进,旨在提高性能、可扩展性和开发效率,使其成为构建现代应用程序的一个强大框架。


        .NET 8 与.NET 7 相比:

        主要区别在于性能优化、容器化、多平台支持、语言功能、云原生应用支持、数据库连接和 Web API 改进等方面。.NET 8 在这些方面进行了升级和改进,旨在提高性能、可扩展性和开发效率。


.NET8对比.NET:
        性能优化:.NET 8 引入了 JIT-Chains 技术,将多个热点方法组合在一起,以减少 JIT 编译的开销。此外,.NET 8 还优化了垃圾回收器的性能,提高了堆内存的压缩速度和效率。
        容器化:.NET 8 支持容器化应用,可以将应用打包成 Docker 镜像并在任何支持 Docker 的平台上运行。这使得应用更容易部署和扩展,并且可以与其他容器化应用集成。
        多平台支持:.NET 8 可以在 Linux、macOS 和 Windows 平台上运行,并且支持 ARM64 和 ARMv7 架构,这意味着可以在各种设备和应用程序中使用 .NET 8。
        语言功能:.NET 8 支持 C# 10 和 VB.NET 16,这些语言版本引入了许多新功能和改进,如记录模式、switch 表达式、模式匹配、记录类型、可变性和局部类型参数等。
        云原生应用支持:.NET 8 支持 Kubernetes 和云原生应用的其他组件,如服务网格、StatefulSet 等,这使得 .NET 8 更适合构建云原生应用。
        数据库连接:.NET 8 引入了新的数据库连接 API,可以更轻松地连接各种数据库,如 MySQL、PostgreSQL 和 SQL Server 等。

新功能:

1.本机 AOT

        发布为本机AOT的选项最初是在.NET 7中引入的。使用本机AOT发布应用会创建一个完全独立的应用版本,该版本不需要运行时,所有内容都包含在一个文件中。

        .NET8 添加了对 macOS 上的 x64 和 Arm64 体系结构的支持。此外,Linux 上本机 AOT 应用的大小现在最多可缩小 50%。

2.代码生成

.NET 8 包括对代码生成和实时 (JIT) 编译的改进:

Arm64 性能改进

SIMD 改进

云原生改进

按配置优化 (PGO) 改进

支持 AVX-512 ISA 扩展

JIT 吞吐量改进

循环和常规优化

3.在 Linux 上生成你自己的 .NET

        在以前的 .NET 版本中,可以从源生成 .NET,但需要从与发布相对应的 dotnet/installer 存储库提交创建“源 tarball”。在 .NET 8 中,不再需要这样操作,你可以直接从 dotnet/dotnet 存储库在 Linux 上生成 .NET。该存储库使用 dotnet/source-build 生成 .NET 运行时、工具和 SDK。这是 Red Hat 和 Canonical 用于生成 .NET 的同一内部版本。

        对于大多数人来说,在容器中生成是最简单的方法,因为 dotnet-buildtools/prereqs 容器映像包含所有必需的依赖项。

4. Linux 的最低支持版本

适用于 .NET 8 的 Linux 最低支持基线已更新:

        .NET 将面向 Ubuntu 16.04 生成,适用于所有体系结构。这对于定义 .NET 8 的最低 glibc 版本非常重要。例如,.NET 8 甚至无法在 Ubuntu 14.04 上启动。

        对于 Red Hat Enterprise Linux (RHEL),.NET 支持 RHEL 8+,删除 RHEL 7。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/699564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024生物发酵魅力展示会-光德流体

参展企业介绍 河北光德流体控制有限公司始建于1996年,是一家从事以不锈钢为母材的洁净应用材料研发与专业制造的实体企业。产品主要包括卫生级球阀,隔膜阀,蝶阀等,并广泛应用于生物发酵,医疗制药,食品饮料…

初识51单片机

##江科大51单片机学习 什么是单片机??? 单片机,英文名,Micro Controller Unit,简称MCU(tips:有人会简称它为CPU,但不是如此,CPU其实被集成在MCU中&#xff…

【Elasticsearch专栏 11】深入探索:Elasticsearch如何支持多租户架构

文章目录 Elasticsearch如何支持多租户架构?01 隔离方式1 索引隔离2 集群隔离3 基于路由的隔离 02 配置示例1.索引隔离配置2.基于路由的隔离配置 03 实现原理04 权限控制1.定义角色2.分配用户角色 05 安全性考虑06 总结 Elasticsearch如何支持多租户架构&#xff1f…

【python】使用OpenCV进行行人检测

请确保在运行代码之前已经安装了 OpenCV 库,可以使用以下命令来安装: pip install opencv-python4.2.0.32 使用 OpenCV 中的 HOG 特征和默认的行人检测器来检测指定文件夹 "images" 中的图像中是否有行人,并将检测到行人的原始图…

视频评论抓取软件|抖音数据抓取工具

最近我们推出了一款基于C#语言开发的工具。这款工具提供了丰富的功能,旨在帮助用户轻松获取抖音视频内容。让我们一起来详细介绍一下这款工具的主要功能模块: 1. 批量视频提取: 工具提供了便捷的批量视频提取功能,用户只需输入关…

vue3 多层级组件传值

1. 传统方式&#xff1a;父组件通过Props将值逐级传递给要接受的子组件 // 父组件<child :data"list"></child><script lang"ts" setup> import { reactive, toRefs} from vue; const state reactive({list:[] })const { list} toRe…

第3部分 原理篇2去中心化数字身份标识符(DID)(3)

3.2.2.4. DID文档 (DID Document) 本聪老师&#xff1a;DID标识符和DID URL还都只是ID&#xff0c;必须为它附加一个基本属性才可以证明是该主体独有的。这个就是我们下面介绍的DID文档。 本聪老师&#xff1a;每个DID标识符都唯一对应一个DID文档&#xff0c;也可以说&#x…

潇洒郎:2024 IDEA、Pycharm获取最新激活码获取方式

IDEA获取最新激活码 https://idea.javatiku.cn/ 手机打开&#xff0c;看到验证码&#xff0c;30分钟有效&#xff0c;输入验证码 获取到最新激活码

node 第二十五天 基于 node 的 mongodb 数据库驱动程序 mongoose

什么是mongoose MongoDB object modeling designed to work in an asynchronous environment. MongoDB对象建模设计用于在异步环境中工作。 其实就是基于Node/Deno 的数据库驱动程序, 一句话类比就是: Navicat是基于windows/macOS/Linux 操作系统环境 操作mongodb数据库的 程序…

Redis(十六)缓存预热+缓存雪崩+缓存击穿+缓存穿透

文章目录 面试题缓存预热缓存雪崩解决方案 缓存穿透解决方案 缓存击穿解决方案案例&#xff1a;高并发聚划算业务 总结表格 面试题 缓存预热、雪崩、穿透、击穿分别是什么?你遇到过那几个情况?缓存预热你是怎么做的?如何避免或者减少缓存雪崩?穿透和击穿有什么区别?他两是…

Go 1.22 中的 for 循环新特性详解

目录 每次迭代都创建新变量 支持整数类型循环 小结 在 Go 语言中&#xff0c;for 循环是实现迭代的主要方式。Go 中的 for 循环非常灵活&#xff0c;有多种使用方式&#xff0c;包括传统的三部分 for 循环、类似于其他语言中的 while 循环以及迭代集合的 range 循环。 在 1…

基于大数据的智能家居销量数据分析

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

[HTML]Web前端开发技术28(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页

希望你开心&#xff0c;希望你健康&#xff0c;希望你幸福&#xff0c;希望你点赞&#xff01; 最后的最后&#xff0c;关注喵&#xff0c;关注喵&#xff0c;关注喵&#xff0c;佬佬会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的…

HTTP概要

文章目录 什么是HTTP?URL的结构请求报文结构请求方法GETHEADPOSTPUTDELETETRACEOPTIONSCONNECTPATCH解释 请求头字段 响应报文结构响应状态响应头字段 HTTP会话3次握手无状态协议 什么是HTTP? HTTP&#xff0c;即Hypertext Transfer Protocol(超文本传输协议) 它是一个”请…

Linux——简单的Shell程序

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、Shell程序思路二、Shell代码展示 一、Shell程序思路 用下图的时间轴来表示事件的发生次序…

C# CAD备忘录

Document doc Application.DocumentManager.MdiActiveDocument; Database db doc.Database; Editor ed doc.Editor; 1、获取打开cad文件-文件路径 string fileName db.Filename;//文件名 输出结果 fileName “L:\目录\200401.dwg” 2、获取打开cad文件-文件名称 string fi…

XUbuntu22.04之解决:systemd-journald占用cpu过高问题(二百一十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

MongoDB聚合运算符:$binarySize

$binarySize聚合运算符返回给定字符串或二进制数据的字节数。 语法 { $binarySize: <string or binData> }使用 <string or bindData>可以是任何能够被解析为字符串和二进制数据的表达式&#xff1b;如果表达式解析为null&#xff0c;则$binarySize也返回null&a…

Linux运维-Web服务器的配置与管理(PHP)

Web服务器的配置与管理(PHP) 项目场景 某企业在CentOS上搭建Web服务系统&#xff0c;以PHP作为网页开发环境&#xff0c;以MySQL为后台数据库。 基础知识 PHP PHP原始为Personal Home Page的缩写&#xff0c;已经正式更名为 “PHP: Hypertext Preprocessor”&#xff08;超…

Neo4j学习笔记1:增删改查

目录 安装练习节点和关系结构连接数据库添加节点1. Cypher2. Py2neo 添加关系1. Cypher2. Py2neo 批量添加1. Cypher2. Py2neo 查询1. Cypher2. Py2neo 更新1. Cypher2. Py2neo 删除1. Cypher2. Py2neo 安装 这边直接下载了Neo4j Desktop安装py2neo&#xff0c;安装后就可直接…