您现在的位置是:网站首页> 软件下载软件下载
.NET社区工具包下载 .NET 社区工具包 .NET Community Toolkit 8.2 官方最新开源版 下载-
2025-09-24
12人已围观
简介 .NET社区工具包下载 .NET 社区工具包 .NET Community Toolkit 8.2 官方最新开源版 下载-
.NET 社区工具包是一个从 Windows 社区工具包拆解出来的 .NET 开发工具包,内含一组跨平台的帮助程序和 API。该工具包由 Microsoft 维护和发布,是 .NET 基金会的一部分,被多个微软内部项目和应用程序使用,例如 Microsoft Store。
.NET 社区工具包的所有内容最初都是 Windows 社区工具包的一部分,但随着时间的推移,仅针对 .NET 而不特定于 Windows 依赖项的 API 数量不断增加,微软决定将 .NET 相关得内容拆分到一个单独的项目中,以便它们可以独立发展,.NET Community Toolkit 由此诞生。
由于分支之前的 Windows 社区工具包的最后一个版本是 7.1.x,因此,拆分出来的 .NET 社区工具包从 8.0.0 版本号开始。
8.2新版本包括在运行时和 MVVM Toolkit 源码生成器中的性能改进、新代码修复程序、新的用户请求功能等内容。
包含的组件
CommunityToolkit.Mvvm(又名 MVVM 工具包):一个快速、模块化、平台无关的 MVVM 库,它是 MvvmLight 替代品,广泛用于 Microsoft Store 和其他第一方应用程序。
CommunityToolkit.Mvvm.SourceGenerators:用于扩充 MVVM 工具包的源码生成器。
CommunityToolkit.Diagnostics: 一组辅助 API(特别是 Guard和 ThrowHelper),可用于更简洁、更高效且不易出错的参数验证和错误检查。
CommunityToolkit.HighPerformance用于在高性能场景中工作的助手集合。它包括诸如池化缓冲区助手、快速字符串池Memory
CommunityToolkit.Common:一组与其他 CommunityToolkit 库共享的帮助程序 API。
更新介绍
自定义属性 [ObservableProperty]
对于 MVVM 工具包源代码生成器,我们最需要的功能之一(请参阅#208、#217、#228)是支持对[ObservableProperty]使用自定义属性。有几个提议的设计来支持这一点,我们最终决定利用 C# 中的现有语法 “ property”: 来让开发人员标记属性以传播到生成的属性。有几个优势:
它利用内置的 C# 语法,使该功能感觉“原生”并且不需要额外的属性
它解决了注解属性只能针对属性,不能针对字段的问题
也就是说,使用 MVVM Toolkit 8,现在支持以下场景:
[ ObservableProperty] [ property: JsonPropertyName( "responseName") ] [ property: JsonRequired] privatestring? _name;
这将在幕后生成以下属性:
[ JsonPropertyName( "responseName") ] [ JsonRequired] publicstring? Name { get=> _name; set { if(!EqualityComparer< string?>.Default.Equals(_name, value)) { OnPropertyChanging( "Name"); OnNameChanging( value); _name = value; OnPropertyChanged( "Name"); OnNameChanged( value); } } } partialvoidOnNameChanging( string? value) ; partialvoidOnNameChanged( string? value) ;
可以看到生成的属性有我们指定的两个属性!这允许完全灵活地为生成的属性添加注释,同时使用内置的 C# 语法并且对该功能支持的属性类型没有限制。
注意:生成的代码略有不同,包括此处未显示的其他性能优化。
MVVM 工具包分析器
此版本的 MVVM 工具包也是第一个引入专用分析器的版本。它能够帮助开发人员以最佳方式使用 MVVM 工具包。也就是说,MVVM 工具包将不再只是针对使用错误的功能发出诊断(例如,以报错的方式),它现在还会显示改进代码和避免常见错误的建 议!
第一个分析器涵盖了使用[ObservableProperty]属性时的一个常见错误。参照这个例子:
[ ObservableProperty] privatestring? name;
[ RelayCommand] publicasyncTask LoadUserAsync( ) {User user = await_userService.FetchUserAsync;
name = user.Name; // Whoops! Assigning to the field!}
开发人员不小心分配给一个字段(而不是生成的属性),然后被卡在 UI 上。UI 上没有显示该更改,也没有明确说明为什么会这样,这一情景已经被多次提出。新的分析器将在这些情况下提供帮助,它将标记支持可观察属性的字段的所有赋值,并显示诊断建议引用生成的属性。你不会再收到莫名其妙的属性丢失的通知。
第二个新分析器旨在帮助减少使用 MVVM 工具包的应用程序中的二进制文件大小。正如我们在8.0.0 公告帖子中提到的,MVVM 工具包包含多个属性(例如[ObservableObject]),这些属性允许生成器将实现 INotifyPropertyChanged 和 INotifyPropertyChanging 接口所需的所有代码(也可选择使用其他帮助程序)注入现有类。
这仅适用于无法继承的情况:如果您不属于这种情况,您应该选择继承 ObservableObject,从而减小的二进制文件大小,因为编译器不必在每个过程中一遍又一遍地复制那些相同的助手类型。请参阅这个例子:
[ ObservableObject] publicpartialclassMyViewModel{[ ObservableProperty] privatestring? name; }
这里,MyViewModel 不是从任何类型继承而来,因此它应该继承 ObservableObject 而不是使用[ObservableObject]属性,以此改进二进制大小。新的分析器将标记所有与此类似的场景并建议改用继承。这将特别有助于初学者,他们可能不了解两种不同方法的细微差别并且可能不知道如何选择。在这些情况下,现在分析器可以提供帮助。
MVVM 工具包源代码生成器优化
正如我们提到的,这个新版本还包括对 MVVM 工具包的主要性能优化,以进一步改善开发人员的用户体验,尤其是优化了开发人员在处理非常大的解决方案时的体验。我们花了很多时间改进我们所有生成器的架构,并与 Roslyn 团队的工程师交谈,以确保我们正在尽可能地发挥它们的性能。
以下只是我们在这方面所做的一部分改进:
为 Roslyn 4.3 添加了多目标
(#428 ,#462 ):如果支持,MVVM 工具包源代码生成器现在将使用 Roslyn 4.3 目标,这样他们就可以在主机支持的情况下选择加入一些更优化的 API。这一功能在引用 MVVM 工具包时会自动启用。
使用 ForAttributeWithMetadataName
(#436 ):我们将生成器切换到新的高级 Roslyn API 以匹配属性 ,这大大提高了生成器触发特定属性的性能。比如现在[ObservableProperty]就在用这个。
将诊断移入诊断分析器
(#433 ,#434 ):我们将几乎所有诊断都移动到诊断分析器,这些诊断分析器在进程外运行并且独立于源生成器。这样能够显著减少键入时的overhead,因为所有诊断逻辑现在都在单独的进程中运行,并且不会降低 IntelliSense 的速度。
停止在增量提供程序中使用符号
( #435 ):我们更新了所有增量提供程序以不再传播符号。这可以减少内存使用,因为传播符号会导致 Roslyn 不必要地根编译对象。
更多性能优化 ( #447 、 #460 、 #469 、 #487 、 #489 ):我们彻底检查了所有增量模型和增量管道,以显著提高性能并减少内存分配。
IObservable
另一个功能需求,尤其是由那些在应用程序中大量使用响应式 API 开发人员提出,是寻求一种方法来桥接 MVVM 工具包中的功能。界面的新扩展 IObservable
IObservable < MyMessage> observable = Messenger.CreateObservable < MyMessage> ;
就像这样!此扩展将创建一个对象 IObservable
vartoken = Messenger .CreateObservable
.NET 7和 C# 11支持
.NET Community Toolkit 工具包的新发布版本还将 .NET 7 TFM 添加到高性能包中,新版本中还包括一些变动,主要对新的 C# 11语言功能进行了改善,比如 ref fields 就是一个典型。
以下类型现在不再处于预览状态,以及更新使用了新的 ref 安全规则:
Ref
ReadOnlyRef
NullableRef
ReadOnlyNullableRef
下面这种场景可以使用这些规则:
publicstaticboolTryGetElementRef( outNullableRef
也就是说,使用 NullableRef
此外,所有不在预览模式中的 ref struct 类型都已被更新,使用内部的 ref 字段实现更好的性能。这些类型包括:
Span2D
ReadOnlySpan2D
RefEnumerable
ReadOnlyRefEnumerable
SpanEnumerable
ReadOnlySpanEnumerable
更多新变化可参照官方文档。
相关内容
- ChatGPT代码工具下载 基于GPT-4的AI编程神器 Cursor v0.2.31 for Windows 官方免费版 下载-
- ChatGPT编辑器下载 cursor 基于GT-4的代码编辑器 V0.2.31 Linux最新免费版 下载-
- MATLAB R2023a破解版下载 MathWorks MATLAB R2023a 9.14.0 Update1 中文授权破解版(附补丁+安装教程) 64位 下载-
- MATLAB2023a破解版下载 MathWorks MATLAB R2023a v9.14.0 (x64) LINUX 中文授权安装版 下载-
- Java20免费下载 Java SE Development Kit 20(JDK20) v20.0.1 官方最新正式版 64位 下载-
- SGHNetMultiLang下载 SGHNetMultiLang(一键多国语言生成) V1.0 安装免费版 下载-
- Radzen Studio破解版下载 Web应用程序构建器 Radzen Studio v2.84.4 破解安装版 下载-
- Hex editor neo ultimate 7破解 16进制编辑器 Hex editor neo ultimate7 v7.30.00.8482 x64/32 终极破解版(附激活补丁) 下载-
- Adobe RoboHelp破解版下载 帮助文件设计工具Adobe RoboHelp 2022.2.22 x64 中文破解版(附破解教程) 下载-
- hex editor neo补丁下载 hex editor neo ultimate7终极版破解补丁 v7.30.00.8482 64/32 附激活教程 下载-
点击排行
- 代码编辑工具下载 MPad(高级代码编辑器)V1.21 绿色便携版 下载-
- LabView2023激活版下载 NI LabVIEW 2023 Q1 v23.1 中文完整破解版(附授权工具+教程) 32位 下载-
- LabView2023破解版下载 NI LabVIEW 2023 Q1 v23.1 免费破解版(附激活工具+教程) 64位 下载-
- VS Code拓展下载 VS Code Go 扩展 v0.39 官方免费版 下载-
- 火山平台升级工具下载 火山平台升级工具 v2023 绿色便携版 下载-
- 火山软件开发平台下载 火山软件开发平台(视窗+安卓) 飞扬#21测试版 官方安装版 下载-
- Delphi11破解版下载 Embarcadero Delphi RAD Studio 11.3 便携绿色破解版(附破解工具) 下载-
- Android Studio电脑端下载 Android Studio(Android集成开发工具) V2023.2.12 免费32位安装版 下载-
本栏推荐
-
代码编辑工具下载 MPad(高级代码编辑器)V1.21 绿色便携版 下载-
-
LabView2023激活版下载 NI LabVIEW 2023 Q1 v23.1 中文完整破解版(附授权工具+教程) 32位 下载-
-
LabView2023破解版下载 NI LabVIEW 2023 Q1 v23.1 免费破解版(附激活工具+教程) 64位 下载-
-
VS Code拓展下载 VS Code Go 扩展 v0.39 官方免费版 下载-
-
火山平台升级工具下载 火山平台升级工具 v2023 绿色便携版 下载-
-
火山软件开发平台下载 火山软件开发平台(视窗+安卓) 飞扬#21测试版 官方安装版 下载-
-
Delphi11破解版下载 Embarcadero Delphi RAD Studio 11.3 便携绿色破解版(附破解工具) 下载-
猜你喜欢
- 代码编辑工具下载 MPad(高级代码编辑器)V1.21 绿色便携版 下载-
- LabView2023激活版下载 NI LabVIEW 2023 Q1 v23.1 中文完整破解版(附授权工具+教程) 32位 下载-
- LabView2023破解版下载 NI LabVIEW 2023 Q1 v23.1 免费破解版(附激活工具+教程) 64位 下载-
- VS Code拓展下载 VS Code Go 扩展 v0.39 官方免费版 下载-
- 火山平台升级工具下载 火山平台升级工具 v2023 绿色便携版 下载-
- 火山软件开发平台下载 火山软件开发平台(视窗+安卓) 飞扬#21测试版 官方安装版 下载-
- Delphi11破解版下载 Embarcadero Delphi RAD Studio 11.3 便携绿色破解版(附破解工具) 下载-