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

宣布发布 .NET 7 Release Candidate 1


今天,我们宣布推出 .NET 7 Release Candidate 1。这是在生产中支持的 .NET 7 的两个候选版本 (RC) 中的第一个。

您可以下载适用于 Windows、macOS 和 Linux 的 .NET 7 Release Candidate 1。

  • 安装程序和二进制文件
  • 容器图像
  • Linux 软件包
  • 发行说明
  • 已知的问题
  • GitHub 问题跟踪器

.NET 7 Release Candidate 1 已通过 Visual Studio 17.4 Preview 2 测试。如果您想在 Visual Studio 系列产品中试用 .NET 7,我们建议您使用预览通道构建。 如果您使用的是 macOS,我们建议使用最新的 Visual Studio 2022 for Mac 预览版。


.NET MAUI

.NET 多平台应用程序 UI (MAUI)  AndroidiOSmacOS  Windows API 统一到一个 API 中,因此您可以编写一个在多个平台上本机运行的应用程序。.NET MAUI 使您能够提供专为每个平台(AndroidiOSmacOSWindows  Tizen)设计的最佳应用体验,同时使您能够通过丰富的样式和图形打造一致的品牌体验。开箱即用,每个平台的外观和行为都符合其应有的方式,无需任何额外的小部件或样式。

作为 .NET 7 的一部分,.NET MAUI 提供了一个单独的项目来处理跨设备及其平台的多目标。想要了解有关生产力改进、工具和性能增强的更多信息,请查看以下资源:

  • .NET MAUI 简介——一个代码库,多个平台
  • Visual Studio 2022 中的 .NET MAUI 提高生产力
  • .NET MAUI 中的性能改进
  • .NET Conf 专注于 MAUI——这是一个总结!

注意:在 .NET 7 中试用 .NET MAUI  Visual Studio 体验将在即将发布的 17.4 Preview 2.1 版本中提供。

Cloud Native

Cloud native是一组在云中构建应用程序以利用弹性、可扩展性、效率和速度的最佳实践。

.NET 是构建cloud native应用程序的绝佳选择。 想要了解有关 .NET 7 中的cloud native功能和改进的更多信息,请查看以下资源:

  • 宣布推出对 .NET SDK 的内置容器支持
  • 宣布推出适用于 .NET 的 gRPC JSON 转码
  • .NET 7 推出 Azure Functions 和 Visual Studio 2022

ARM64

ARM 外形小巧,具有出色的性能和高能效。

.NET 可帮助您构建在 ARM 设备上运行的应用程序。 有关 .NET 7  ARM64 上运行速度的更多信息,请查看以下资源:

  • .NET 7 中的 Arm64 性能改进

现代化

在现代版本的 .NET 上,您可以利用闪电般的性能和大量新功能来提高开发人员的体验。

为了使升级体验尽可能无缝,.NET 升级助手为您提供分步指导体验,通过分析和升级项目文件、代码文件和依赖项来现代化 .NET 应用程序。

有关 .NET 7 如何帮助您实现应用程序现代化的更多信息,请查看以下资源:

  • 增量 ASP.NET 到 ASP.NET Core 迁移
  • 在 Visual Studio 中从 ASP.NET 迁移到 ASP.NET Core

性能

.NET速度很快。 .NET 7 是目前最快的 .NET。 .NET 7 对反射、堆栈替换 (OSR)、启动时间、本机 AOT、循环优化和许多其他领域带来了上千项影响性能的改进。

有关为什么 .NET 7 是目前最快的版本的更多信息,请查看以下资源:

  • .NET 7 中的性能改进
  • .NET 7 中的正则表达式改进

贡献者聚光灯:Filip Navara


我从小就玩电脑。 在拜访我的祖父时,我经常看到他在 BASIC 工作。 他正在编写工厂自动化软件,我从他那里继承了我对所有技术的热爱。 DOS 是当时的标准系统,而 Borland 主导了编程工具。 我想了解编程的工作原理并学习它。 我固执地拒绝了他的所有建议,不得不自己通过反复试验来学习一切。 这很愚蠢,但看到这些小程序变得生动起来很有趣。

渐渐地,我开始用不同的语言编程,探索互联网,然后是开源世界。 我最喜欢在编译器、操作系统或系统仿真器等低级软件上编写代码。 在高中的业余时间,我为 Wine、ReactOS、QEMU、Binutils 和 MinGW 编译器工具集等项目做出了贡献。

当 .NET Framework 的第一个版本问世时,我立刻就被吸引住了。 它保证了我熟悉的 Delphi 的简单性,而且 C# 语言学起来真的很有趣。 时机恰到好处,因为我和我的朋友开始了一个小项目来开发电子邮件客户端应用程序,我们都同意在 .NET 中构建它。 那个应用程序,eM Client,让我在整个大学学习期间都很忙碌。 直到今天,它仍然是我目前的项目; 随着团队的壮大,我的职责发生了变化,我们有很多非常有才华的程序员来减轻我的负担。

.NET 的开源对我们来说是一个巨大的福音,让很多事情变得更容易。 现在我可以更多地专注于副项目,为 .NET 做贡献是一个自然的选择。 它使我能够充分利用我的知识,从硬件和操作系统内部的低级细节到我们的电子邮件应用程序所基于的高级框架。

开放代码允许我驱动一个项目将 WinForms 框架移植到 macOS(基于 Mono 代码,但在许多地方使用 Cocoa 原生控件)。当 .NET 5 统一项目开始时,我开始做出更多贡献。对于我们来说,Xamarin.Mac 和 Mono 等不同平台在我们在 Windows 上使用的 .NET 支持方面一直落后,这一直是我们的痛点。最初,我开始填补 Mono 基类库中的空白,它已经与 .NET Core 共享了一些代码。我意识到这种追赶游戏可能不是最好的解决方案,因此我开始探索其他选项,例如在 CoreCLR 上运行 Xamarin.Mac。它发生在编写第一个 MonoVM(.NET 5+ 中的 Mono 运行时)提交前几天。一旦我意识到发生了什么,我就加入了该计划。所有这些工作都隐藏在 GitHub 上,几个月后在 Build 大会上正式宣布。很高兴看到进展,构建了我自己的 Xamarin 运行时版本,在这个早期的 Unity MonoVM 运行时上运行,显示了第一个 UI。最终,它甚至启动了我们的电子邮件客户端应用程序。这对我们来说确实是一个游戏规则的改变者。使用旧的 .NET 框架,我们无法在新功能发布时使用它们。在新版本的部署赶上之前,花了数年时间。现在我处于相反的境地,跑得比谁都早!

有关运行时统一的工作现已成功完成,我们已向客户发布了最新的 .NET 6 位应用程序。 但是,.NET 中仍有许多可以改进的地方,我喜欢与 .NET 团队的人一起工作。 我尝试为每个版本驱动至少一个次要功能。 对于 .NET 6,我专注于让 iOS 加密堆栈正常工作。 对于 .NET 7,在网络团队的大力帮助下,我尝试了一个小众 API 来处理 Negotiate/Kerberos/NTLM 身份验证。 虽然它不是一个非常有吸引力或可见的功能,但它是长期的技术债务。 单元和功能测试中缺少代码; ASP.NET通过反射访问内部结构,对NativeAOT不友好; 最重要的是,库作者必须使用复杂的方法来解决缺乏简单公共 API 的问题。

我真诚地希望在未来做出更多的贡献,我很高兴看到其他贡献者找到他们感兴趣的领域并让整个平台对每个人都更好!


支持

.NET 7 不是长期支持 (LTS) 版本,因此它将在发布之日起 18 个月内获得免费支持和补丁。 需要注意的是,所有 LTS 版本都具有相同的质量。 唯一的区别是支持的时间长度。 有关 .NET 支持政策的更多信息,请参阅官方 .NET 和 .NET Core 支持政策。

路线图

.NET 版本包括代表 Microsoft 内部和外部多个团队之间协作的产品、库、运行时和工具。 您可以通过阅读产品路线图了解有关这些领域的更多信息:

  • ASP.NET Core 7 and Blazor Roadmap
  • EF 7 Roadmap
  • ML.NET
  • .NET MAUI
  • WinForms
  • WPF
  • NuGet
  • Roslyn
  • Runtime

我们非常感谢您对 .NET 的所有支持和贡献。请尝试使用 .NET 7 Release Candidate 1,让我们知道您的想法!

有关.NET 7 Release Candidate 1 中包含的所有功能和改进的详细概述,请查看之前的 .NET 7 预览版博客文章:

  • 宣布发布 .NET 7 预览版 1

  • 宣布发布 .NET 7 预览版 2

  • 宣布发布 .NET 7 预览版 3

  • 宣布发布 .NET 7 预览版 4

  • 宣布发布 .NET 7 预览版 5

  • 宣布发布 .NET 7 预览版 6

  • 宣布发布 .NET 7 预览版 7


点击这里试用 .NET 7 Release Candidate 1~

相关文章:

  • 8万Star,这个开源项目有点强
  • 数据批处理速度慢?不妨试试这个
  • 透过安全事件剖析黑客组织攻击技术(2FA/MA的攻击手法)
  • java毕业设计——基于Java+AI的五子棋游戏设计与实现(毕业论文+程序源码)——五子棋游戏
  • 29、Java 中的接口详解
  • mysql中怎么防止数据丢失
  • 软件开发中会使用到的图
  • 汇编语言入门(二)
  • java中的IO流
  • 【每日一练】图解: 数组中的逆序对
  • 【Django】开发日报_8_Day:手机号码管理系统(6)
  • Quartz框架之Job和JobDetail(2)
  • C语言刷题(二)
  • 【毕业设计】机器学习股票大数据量化分析与预测系统 - python 毕业设计
  • Ubuntu下安装opencv
  • 【剑指offer】让抽象问题具体化
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Lucene解析 - 基本概念
  • mysql 数据库四种事务隔离级别
  • opencv python Meanshift 和 Camshift
  • PAT A1120
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 构建二叉树进行数值数组的去重及优化
  • 猴子数据域名防封接口降低小说被封的风险
  • 基于 Babel 的 npm 包最小化设置
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 三栏布局总结
  • 我建了一个叫Hello World的项目
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 一文看透浏览器架构
  • const的用法,特别是用在函数前面与后面的区别
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​configparser --- 配置文件解析器​
  • (C#)获取字符编码的类
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (floyd+补集) poj 3275
  • (Forward) Music Player: From UI Proposal to Code
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (九)One-Wire总线-DS18B20
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (学习日记)2024.01.19
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET : 在VS2008中计算代码度量值
  • .NET 中 GetProcess 相关方法的性能
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • /etc/sudoer文件配置简析
  • :not(:first-child)和:not(:last-child)的用法
  • @EventListener注解使用说明