当前位置: 首页 > news >正文

微软发布最新.NET 8长期支持版本,云计算、AI应用支持再强化

11 月 15 日开始的为期三天的 .NET Conf 在线活动的开幕日上,.NET 8作为微软的开源跨平台开发平台正式发布。.NET 团队着重强调云、性能、全栈 Blazor、AI 和 .NET MAUI 是.NET 8的主要亮点。.NET团队在 .NET Conf 2023 [1]活动开幕式上表示:“通过这个版本,.NET 重塑了我们构建按需扩展的智能、云原生应用程序和高流量服务的方式。 无论你是部署到 Linux 还是 Windows,使用容器还是你选择的云应用模型,.NET 8 都能更轻松地构建这些应用。”

在数字化转型的智能化方向上我们可以用.NET 8 做下列这些场景:

  • 将 OpenAI 的 GPT 等大型语言模型 (LLM) 直接集成到 .NET 应用中,这个主要是通过开源项目 Semantic Kernel(简称SK)。
  • 使用单个功能强大的组件模型来处理 Blazor 的所有 Web UI 需求, Blazor 在.NET 8真的是成熟了,可以大力发挥全栈开发的能力了。
  • 使用 .NET MAUI 将移动应用程序部署到最新版本的 iOS 和 Android,在移动应用开发方面解决多年的包袱。
  • 发现新的语言增强功能,使你的代码在 C# 12 中更加简洁和富有表现力。

对企业来说特别重要的是,.NET 8 [2]是一个长期支持 (LTS) 版本,这意味着它将获得三年的支持和补丁,而标准期限支持 (STS) 版本则是 18 个月。对于开发人员来说,特别重要的是 .NET团队正在向期待已久的原生提前编译(NativeAOT)迈进 。

2020年的时候.NET团队做过一项调查中发现Survey: Native AOT [results][3],.NET Core 中缺少NativeAOT 阻碍了开发平台的采用,促使 .NET 团队大力推动 AOT。

.NET 8通过推进NativeAOT来增强可持续计算,以减少内存使用并实现即时应用程序启动,今天强调了AOT的功能,包括:

  • 它将应用程序编译为使用更少内存的本机代码并立即启动
  • 无需等待 JIT(实时)编译器在运行时编译代码
  • 无需部署 JIT 编译器和 IL 代码
  • AOT 应用仅部署应用所需的代码
  • 现在,应用程序可以在不允许使用 JIT 编译器的受限环境中运行

还描述了原生 AOT 大小优化。

在描述.NET 8的整体情况时,.NET 团队表示:“NET 8提供了数千项性能,稳定性和安全性改进,以及平台和工具增强功能,有助于提高开发人员的生产力和创新速度。在公告博客[4]文章中,这数千项改进围绕上述五个主题进行了分组。以下是每个领域的介绍。

性能 .NET团队的 Stephen Toub 每年都会针对.NET性能方进行彻底、煞费苦心和详尽的详细说明,他总结了数千个性能数据点,宣称: .NET 7 速度超快, .NET 8 更快。[5]

.NET 8 引入了新的代码生成器,即动态配置文件引导优化 (PGO),它根据实际使用情况优化代码。此功能最多可将应用性能提高 20%。AVX-512 指令集支持对 512 位数据向量进行并行运算,在 .NET 8 中受支持和使用,从而允许在更短的时间内进行更多的数据处理。此外,基元类型现在实现了新的格式化和可解析接口,使它们能够直接格式化和解析为 UTF-8,而不会产生任何转码开销。这个结果可以看 TechEmpower 22轮Web框架 性能评测:.NET 8 战绩斐然的[6]说明

云原生 .NET 8 以多种方式促进了云原生开发,例如包括许多容器增强功能,但这里的重大新闻是 .NET Aspire 的第一个预览版的可用性,这是一个用于构建弹性、可观察和可配置的云原生应用程序的堆栈。 .NET Aspire 附带了一组针对云原生开发增强的精选组件,默认情况下包括遥测、复原、配置和运行状况检查,这个项目来自几年前的实验性项目Tye。

.NET团队表示:“结合复杂而简单的本地开发人员体验,Aspire 可以在第 1 天起轻松发现、获取和配置云原生应用程序的基本依赖项。

在云原生的容器方面,.NET 8 通过简化应用程序的打包和使用默认的非 root 用户配置增强安全性来简化容器化。它还提供更小的映像大小以加快部署速度,并提供可选的Dirstroless Ubuntu 映像以增强安全性,以及多功能架构支持。

人工智能

随着生成式AI的到来,人工智能领域发生了翻天覆地的变化,从底层语言、运行时,到库的处理,到接口,到跨平台应用,对于 人工智能,.NET都有相对成熟的解决方案了。当下的这个生态位还是蓝海!.NET携带完整的工具和生态,杀进来,爽的不要不要的。用 .NET写整个的应用层代码,不需要写一行 C++ 代码,就可以架构整个完整的产品体系和服务体系。如果竞争对手选择的是其它技术架构,那么,你相对他,会有很强的生产力优势。.NET平台.NET 团队指出了展示模式和实践的各种示例和参考模板 可帮助开发人员入门,Semantic kernel 下个月发布正式版,目前是Beta6。

它们包括:

  • 客户聊天机器人[7]
  • 检索增强生成RAG[8]
  • 使用 Azure AI 服务开发应用[8]

Blazor Blazor 已经发展成为一个全栈 Web 开发框架,这要归功于由 .NET团队的 Steve Sanderson 领导的渲染改进,他是 Blazor 的创建者,最初称为“Blazor United”。它同时提供客户端 (Blazor WebAssembly) 和服务器端 (Blazor Server),能够根据条件提示切换设备。

ASP.NET 产品经理 Daniel Roth 今年早些时候是这么说:“在 .NET 8 中,我们正在扩展 Blazor 的功能,以便它能够处理所有 Web UI 需求,包括客户端和服务器端呈现。作为这项工作的一部分,我们正在将现有的 Blazor Server 和 Blazor WebAssembly 托管模型与新功能合并,例如无状态服务器端呈现、流式渲染、导航和表单处理的渐进式增强,以及使用 Blazor 或 Blazor WebAssembly 对每个组件进行交互的能力。

今天的公告总结了所有这些内容:“通过专注于优化页面加载时间、可伸缩性和提升用户体验的几项新增强功能,开发人员现在可以在同一应用中使用 Blazor Server 和 Blazor WebAssembly,在运行时自动将用户从服务器转移到客户端。由于新的基于“Jiterpreter”的运行时和新的内置组件,您的 .NET 代码在 WebAssembly 上的运行速度明显更快。作为增强 .NET 8 中整体身份验证、授权和标识管理[9]的一部分,Blazor 现在支持生成基于 Blazor 的完整标识 UI。

.NET MAUI .NET团队表示,.NET多平台应用程序UI扩展了开发人员的工具箱,为使用.NET构建跨平台移动和桌面应用程序提供了全栈解决方案。 MAUI被称为 Xamarin.Forms 的“演变”,因为它增加了桌面支持,以提供跨 Android、iOS、macOS 和 Windows 的统一开发体验,帮助开发人员覆盖更广泛的受众。加上开源项目AvaloniaUI 和UNO的补充, .NET 可以覆盖所有平台的UI应用开发,特别是国内信创市场的桌面端.NET具有极强的竞争力

在 .NET 8 中,该框架通过对最新移动操作系统的额外支持扩展了其覆盖范围,并改进了性能、可靠性和开发人员体验。NativeAOT(实验性)现在支持针对类似 iOS 的平台。适用于 .NET MAUI 的新 Visual Studio Code 扩展[10]提供了开发跨平台 .NET 移动和桌面应用所需的工具。现在支持 Xcode 15 和 Android API 34,允许您面向最新版本的 iOS 和 Android。在性能、控件和 UI 元素以及特定于平台的行为方面[11]进行了大量质量改进,例如桌面交互增加了更好的点击处理、键盘侦听器等。

C#12 借助于C#12 ,你现在可以用简单而优雅的语法在任何类和结构中创建主要构造函数,不再需要样板代码来初始化字段和属性。使用简洁而富有表现力的语法创建数组、spans和其他集合类型。对 lambda 表达式中的参数使用新的默认值。不再需要重载或 null 检查来处理可选参数。您甚至可以使用 using alias 指令为任何类型设置别名,而不仅仅是命名类型!

C# 12 中的新增功能[12]”指南解释了版本 12 中的以下新功能:

  • 主构造函数 - 在 Visual Studio 17.6 预览版 2 中引入。
  • Lambda 表达式中的可选参数 - 在 Visual Studio 17.5 预览版 2 中引入。
  • 任何类型的别名 - 在 Visual Studio 17.6 预览版 3 中引入。
  • 内联数组 - 在 Visual Studio 17.7 预览版 3 中引入。
  • 集合表达式 - 在 Visual Studio 17.7 预览版 5 中引入。
  • 拦截器 - 预览功能在 Visual Studio 17.7 预览版 3 中引入。

总结

围绕 .NET 8 有一大堆新特性和功能, Microsoft 还宣布 Visual Studio 2022 17.8 已正式发布。该公司还指出其 VS Code 和 C# 开发工具包可以帮助新手入门。Microsoft表示,另一种入门方法是使用SDK中新的.NET的GitHub Codespaces模板[13]。

今天的公告帖子还包括指向更多资源的链接,这些资源有助于充实 .NET 8 中跨 ASP.NET Core、Entity Framework Core、NuGet、.NET 运行时、.NET SDK、WPF、ARM64、调试等的新增功能。

  • Announcing .NET 8
  • Introducing .NET Aspire: Simplifying Cloud-Native Development with .NET 8
  • Announcing C# 12
  • Entity Framework Core 8 (EF8) is available today
  • Announcing ASP.NET Core in .NET 8
  • Announcing .NET MAUI in .NET 8

相关链接:

  • [1].NET Conf 2023: https://www.dotnetconf.net/
  • [2].NET 8:https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0
  • [3]Survey: Native AOT [results]:https://github.com/dotnet/runtime/issues/41522
  • [4].NET8公告博客:https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/
  • [5].NET 7 速度超快, .NET 8 更快:https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-8/
  • [6]TechEmpower 22轮Web框架 性能评测:.NET 8 战绩斐然:https://www.cnblogs.com/shanyou/p/17828353.html
  • [7]客户聊天机器人:https://github.com/dotnet-architecture/eShop
  • [8]检索增强生成RAG: https://github.com/Azure-Samples/azure-search-openai-demo-csharp
  • [9]使用 Azure AI 服务开发应用: https://devblogs.microsoft.com/dotnet/demystifying-retrieval-augmented-generation-with-dotnet/
  • [10]Visual Studio Code 扩展: https://aka.ms/maui-devkit-blog
  • [11]行为方面性能改进: https://devblogs.microsoft.com/dotnet/dotnet-8-performance-improvements-in-dotnet-maui
  • [12]C# 12 中的新增功能: https://learn.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-12
  • [13]SDK中新的.NET的GitHub Codespaces模板: https://github.com/codespaces

相关文章:

微软发布最新.NET 8长期支持版本,云计算、AI应用支持再强化

11 月 15 日开始的为期三天的 .NET Conf 在线活动的开幕日上,.NET 8作为微软的开源跨平台开发平台正式发布。.NET 团队着重强调云、性能、全栈 Blazor、AI 和 .NET MAUI 是.NET 8的主要亮点。.NET团队在 .NET Conf 2023 [1]活动开幕式上表示:“通过这个版…...

达索系统3DEXPERIENCE WORKS 2024 Fabrication新功能

当发现产品的制造环节,以及因产品模型本身的设计而导致制造环节存在不合理性,从而导致加工制造成本增加。 快速判断,轻松协作 在达索系统3DEXPERIENCE WORKS 2024中我们可以快速的判断产品的可制造性,以及快速与前端设计沟通协作…...

Web3与Web3.0: Web3指的是去中心化和基于区块链的网络,Web3.0指的是链接或语义网络。

目录 Web3与Web3.0: Web3指的是去中心化和基于区块链的网络 Web3.0指的是链接或语义网络。...

98、Text2Room: Extracting Textured 3D Meshes from 2D Text-to-Image Models

简介 github 利用预训练的2D文本到图像模型来合成来自不同姿势的一系列图像。为了将这些输出提升为一致的3D场景表示,将单目深度估计与文本条件下的绘画模型结合起来,提出了一个连续的对齐策略,迭代地融合场景帧与现有的几何形状&#xff0…...

MySQL 优化器 Index Condition Pushdown下推(ICP)

ICP 测试 准备数据 CREATE TABLE icp (employee_id int(6) NOT NULL AUTO_INCREMENT,first_name varchar(20) DEFAULT NULL,last_name varchar(25) DEFAULT NULL,email varchar(25) DEFAULT NULL,phone_number varchar(20) DEFAULT NULL,PRIMARY KEY (employee_id) );insert i…...

ruoyi 若依框架采用第三方登录

在项目中,前后端分离的若依项目,需要通过统一认证,或者是第三方协带认证信息跳转到本系统的指定页面。需要前后端都做相应的改造,由于第一次实现时已过了很久,再次重写时,发现还是搞了很长时间,…...

dom api

dom的全称为Document Object Model,即文档对象模型.所谓文档就是html页面,对象就是js里的对象,通过这个模型把页面上的元素和js里的对象关联起来. 下面是关于dom api的一些常用方法 1.获取元素 使用querySelector()方法获取一个元素 使用querySelectorAll()方法获取所有元素 当…...

音视频项目—基于FFmpeg和SDL的音视频播放器解析(二十一)

介绍 在本系列,我打算花大篇幅讲解我的 gitee 项目音视频播放器,在这个项目,您可以学到音视频解封装,解码,SDL渲染相关的知识。您对源代码感兴趣的话,请查看基于FFmpeg和SDL的音视频播放器 如果您不理解本…...

Qt项目打包发布超详细教程

https://blog.csdn.net/qq_45491628/article/details/129091320...

简单递归题

本来不想用递归做的,最后还是用了 题目如下: 洪尼玛有 n 块长度不同的木板,他想用这些木板拼成一个等边三角形的围栏,好将他的草泥马养在这个围栏里面。现在,给你这 n 块木板的长度,洪尼玛想知道他能否拼…...

再生式收音机踩坑记

下载《A Simple Regen Radio for Beginners》这篇文章也有好几年了,一直没有动手,上周末抽空做了一个,结果相当令人沮丧,一个台也收不到,用示波器测量三极管振荡波形,只有在调节再生电位器R2过程中&#xf…...

稻谷飘香金融助力——建行江门市分行助力乡村振兴

7月的台山,稻谷飘香。在大耕户李胜业的农田里,金灿灿的稻谷翻起层层稻浪,收割机在稻浪里来回穿梭,割稻、脱粒、装车等工序一气呵成。空气中弥漫着丰收的喜悦。 夏粮迎丰收的背后,是中国建设银行江门市分行&#xff08…...

【Pytorch】Visualization of Feature Maps(1)

学习参考来自 CNN可视化Convolutional Featureshttps://github.com/wmn7/ML_Practice/blob/master/2019_05_27/filter_visualizer.ipynb 文章目录 filter 的激活值 filter 的激活值 原理:找一张图片,使得某个 layer 的 filter 的激活值最大&#xff0c…...

js修改浏览器地址栏里url的方法

1、更新url某一参数的值 function updateQueryStringParameter(uri, key, value) {if (!value) { return uri }var re new RegExp("([?&])" key ".*?(&|$)", "i");var separator uri.indexOf(?) ! -1 ? "&" : &q…...

正则表达式(Java)(韩顺平笔记)

正则表达式(Java) 底层实现 package com.hspedu.RegExp;import java.util.regex.Matcher; import java.util.regex.Pattern;public class RegExp00 {public static void main(String[] args) {String content "1998年12月8日,第二代J…...

LLVM学习笔记(62)

4.4.3.3.2. 指令处理的设置 4.4.3.3.2.1. 目标机器相关设置 除了基类以外,X86TargetLowering构造函数本身也是一个庞然大物,我们必须要分段来看。V7.0做了不小的改动,改进了代码的结构,修改了一些指令的设置。 100 X86Targ…...

解决Spring Boot应用在Kubernetes上健康检查接口返回OUT_OF_SERVICE的问题

现象 在将Spring Boot应用部署到Kubernetes上时,健康检查接口/healthcheck返回的状态为{"status":"OUT_OF_SERVICE","groups":["liveness","readiness"]},而期望的是返回正常的健康状态。值得注意的…...

Java对象逃逸

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 未经允许不得转载 目录 一、导读二、概览三、相关知识3.1 逃逸…...

Greenplum的数据库年龄检查处理

概述 Greenplum是基于Postgresql数据库的分布式数据库,而PG数据库在事务及多版本并发控制的实现方式上很特别,采用的是递增事务id的方法,事务id大的事务,认为比较新,反之事务id小,认为比较旧。 事务id的上…...

[HCIE] IPSec-VPN (IKE自动模式)

概念: IKE:因特网密钥交换 实验目标:pc1与pc2互通 步骤1:R1与R3配置默认路由 R1: ip route-static 0.0.0.0 0.0.0.0 12.1.1.2 R2: ip route-static 0.0.0.0 0.0.0.0 23.1.1.2 步骤2:配ACL…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...

Python第七周作业

Python第七周作业 文章目录 Python第七周作业 1.使用open以只读模式打开文件data.txt&#xff0c;并逐行打印内容 2.使用pathlib模块获取当前脚本的绝对路径&#xff0c;并创建logs目录&#xff08;若不存在&#xff09; 3.递归遍历目录data&#xff0c;输出所有.csv文件的路径…...

虚拟机网络不通的问题(这里以win10的问题为主,模式NAT)

当我们网关配置好了&#xff0c;DNS也配置好了&#xff0c;最后在虚拟机里还是无法访问百度的网址。 第一种情况&#xff1a; 我们先考虑一下&#xff0c;网关的IP是否和虚拟机编辑器里的IP一样不&#xff0c;如果不一样需要更改一下&#xff0c;因为我们访问百度需要从物理机…...

可视化预警系统:如何实现生产风险的实时监控?

在生产环境中&#xff0c;风险无处不在&#xff0c;而传统的监控方式往往只能事后补救&#xff0c;难以做到提前预警。但如今&#xff0c;可视化预警系统正在改变这一切&#xff01;它能够实时收集和分析生产数据&#xff0c;通过直观的图表和警报&#xff0c;让管理者第一时间…...