热门排行
简介
.NET Runtime是一款.NET 运行时仅包含运行控制台应用所需的组件,此版本是在 .NET 20 周年之际发布的,它基于 .NET 6 建立的基础。包括一套统一的基础库、运行时和 SDK,简化了开发体验,提高了开发人员的工作效率。
对于预览版7,此版本主要变化包括对 System.LINQ、Unix 文件权限、底层结构、p/Invoke 源代码生成、代码生成和 websocket 的改进。
.NET 7 最终将统一所有不同的 .NET 开发工具组件,使开发人员能够在同一套类库 (BCL)、运行时和编译器上构建所有类型的应用(桌面、移动、Web 等)。
优化 System.LINQ
System.Linq 现在包含 Order 和 OrderDescending 方法,它们可以根据 T 对 IEnumerable 进行排序。IQueryable 现在也同样提供对此的支持。
支持 Unix 文件模式
此前 .NET 没有内置支持获取和设置 Unix 文件权限,这些权限用于控制哪些用户可以读取、写入和执行文件以及目录。而且 P/Invoking 手动调用 syscalls 并不容易,因为有些 syscalls 在不同的发行版上有不同的公开方式。例如,在 Ubuntu 上,你可能要对__xstat 进行 Pinvoke,在 Red Hat 上对 stat 进行 Pinvoke,诸如此类。
优化底层struct:支持ref 字段
.NET 7 运行时环境现在完全支持 ByRefLike 类型中的 ref 字段(即 ref struct)。此功能背后包含大量的语言设计,例如改进底层结构。借助此功能,以前需要在运行时环境中进行专门处理的类型(例如 Span<T> 和 ReadOnlySpan<T>),现在可以在 C# 中完全实现。
安装教程
步骤1:运行安装程序
下载完成后,运行安装程序并完成在计算机上安装.NET的步骤。
步骤2:验证安装
安装程序完成后,打开一个新的命令提示符并运行该dotnet命令。这将验证.NET是否已正确安装并可以使用。(安装成功您应该会看到类似以下的输出:)
步骤3:开始
现在,您已经安装了.NET,你可以通过教程来构建您的第一个应用程序。
重要新功能和改进
.NET 7 中的新功能
支持
由于 .NET 7 是 .NET 的当前版本,它将在接下来的 18 个月内获得 Microsoft 的免费支持和补丁。
在操作系统方面,此版本将与 Red Hat Enterprise Linux (RHEL) 版本 8 上的以下架构兼容:
AMD x64
Intel x64
ARM (aarch64)
IBM Z
LinuxONE (s390x)
.NET 多平台应用程序用户界面 (.NET MAUI)
微软将带来一个带有 .NET 7 的现代客户端,它本机支持多个平台。由于 Microsoft 最近还发布了 .NET MAUI Preview 13,他们计划将其逐步推广到 .NET 6 Release CandIDAtes (RC),然后向公众推广通用可用性 (GA),然后再转向 .NET 7。
似乎还有时间让这个特性进入 .NET 7,但很高兴知道它会到来。
创建云原生应用程序变得更容易
由于云原生应用程序现在是从头开始构建的,使用现代基于 Web 的资源(例如数据库服务和托管容器),.NET 7 将通过探索对开发人员体验的改进来更轻松地构建云原生应用程序,例如:
简化实施安全身份验证和授权所需的设置和配置。
提高应用程序启动和运行时执行的性能。
微软计划进一步开发此功能并优化容器,以获得更好的可用性和体验。
改进的 .NET 应用程序
一段时间以来,微软一直在对 .NET 应用程序进行升级,例如最小化 API 和热重载、新的运行时和 C# 语言创新,以及成熟的库和工具生态系统的可用性。
微软表示,他们将继续对这些应用程序进行创新,以消除每个单独的 .NET 应用程序所面临的挑战,例如 ASP.NET、WinForms、WPF 等。
Microsoft 扩展的可空注释
可空注释允许您检查值和参数是否返回空值。Microsoft 为可空性添加了以下库:
Microsoft.Extensions.DependencyInjection.Abstractions
Microsoft.Extensions.Logging.Abstractions
Microsoft.Extensions.Primitives
Microsoft.Extensions.FileSystemGlobbing
Microsoft.Extensions.DependencyModel
Microsoft.Extensions.Configuration.Abstractions
Microsoft.Extensions.FileProviders.Abstractions
Microsoft.Extensions.FileProviders.Physical
Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration.Binder
Microsoft.Extensions.Configuration.CommandLine
Microsoft.Extensions.Configuration.EnvironmentVariables
Microsoft.Extensions.Configuration.FileExtensions
Microsoft.Extensions.Configuration.Ini
Microsoft.Extensions.Configuration.Json
有了这些,Microsoft 计划添加所有 Microsoft.Extension 库以实现可空性。
热重载的改进
.NET 6 中的热重载功能允许开发人员在应用程序运行时对其代码进行更改,并随时随地查看结果。此功能首次在 .NET 6 Preview 3 中引入。
微软现在允许对 Blazor WebAssembly 或 iOS 和 Android 设备进行以下 C# 热重载:
向现有方法添加静态 lambda
将捕获这个的 lambda 添加到已经有至少一个捕获这个的 lambda 的现有方法中
向现有类添加新的静态或非虚拟实例方法
向现有类添加新的静态字段
添加新类