Microsoft .NET Core V8.0.15 Windows server Hosting 官方中文
105MB / 04-10
微軟.NET運(yùn)行時(shí)Microsoft .NET Runtime v8.0.15 官方中文免費(fèi)版
132MB / 04-10
微軟Microsoft .NET SDK V8.0.408 中文免費(fèi)正式版 64位
208MB / 04-10
微軟Microsoft .NET SDK V8.0.408 中文正式安裝版 32位
196MB / 04-10
.Net反編譯軟件 ILSpy 9 V9.0.0.7899 中文免費(fèi)綠色版+安裝包
14.2MB / 01-20
-
Go語言編輯工具JetBrains GoLand v2025.1 中文免費(fèi)正式版(附方法 編程其它 / 793.1MB
-
-
IntelliJ IDEA插件 Kotlin Notebook v2024.3.5 官方最新免費(fèi)版 編程其它 / 16.4MB
-
Wolfram Mathematica 14.2.1 中文正式免費(fèi)版(附安裝教程) 編程其它 / 7.25GB
-
JetBrains IDE Writerside(文檔撰寫軟件) 2025 v2024.3.5 官方最 編程其它 / 432MB
-
-
-
-
.NET 社區(qū)工具包 .NET Community Toolkit 8.4.0 官方最新開源版 編程其它 / 1.2MB
-
詳情介紹
.NET 社區(qū)工具包是一個(gè)從 Windows 社區(qū)工具包拆解出來的 .NET 開發(fā)工具包,內(nèi)含一組跨平臺的幫助程序和 API。該工具包由 Microsoft 維護(hù)和發(fā)布,是 .NET 基金會的一部分,被多個(gè)微軟內(nèi)部項(xiàng)目和應(yīng)用程序使用,例如 Microsoft Store。
.NET 社區(qū)工具包的所有內(nèi)容最初都是 Windows 社區(qū)工具包的一部分,但隨著時(shí)間的推移,僅針對 .NET 而不特定于 Windows 依賴項(xiàng)的 API 數(shù)量不斷增加,微軟決定將 .NET 相關(guān)得內(nèi)容拆分到一個(gè)單獨(dú)的項(xiàng)目中,以便它們可以獨(dú)立發(fā)展,.NET Community Toolkit 由此誕生。
由于分支之前的 Windows 社區(qū)工具包的最后一個(gè)版本是 7.1.x,因此,拆分出來的 .NET 社區(qū)工具包從 8.0.0 版本號開始。
8.2新版本包括在運(yùn)行時(shí)和 MVVM Toolkit 源碼生成器中的性能改進(jìn)、新代碼修復(fù)程序、新的用戶請求功能等內(nèi)容。
包含的組件
CommunityToolkit.Mvvm(又名 MVVM 工具包):一個(gè)快速、模塊化、平臺無關(guān)的 MVVM 庫,它是 MvvmLight 替代品,廣泛用于 Microsoft Store 和其他第一方應(yīng)用程序。
CommunityToolkit.Mvvm.SourceGenerators:用于擴(kuò)充 MVVM 工具包的源碼生成器。
CommunityToolkit.Diagnostics: 一組輔助 API(特別是 Guard和 ThrowHelper),可用于更簡潔、更高效且不易出錯(cuò)的參數(shù)驗(yàn)證和錯(cuò)誤檢查。
CommunityToolkit.HighPerformance用于在高性能場景中工作的助手集合。它包括諸如池化緩沖區(qū)助手、快速字符串池Memory<T> 類型、也支持不連續(xù)區(qū)域的和 Span<T> 的 2D 變體 Span2D<T>、用于位移操作的助手(例如 BitHelper)等 API。
CommunityToolkit.Common:一組與其他 CommunityToolkit 庫共享的幫助程序 API。
更新介紹
自定義屬性?[ObservableProperty]
對于 MVVM 工具包源代碼生成器,我們最需要的功能之一(請參閱#208、#217、#228)是支持對[ObservableProperty]使用自定義屬性。有幾個(gè)提議的設(shè)計(jì)來支持這一點(diǎn),我們最終決定利用 C# 中的現(xiàn)有語法 “ property”:?來讓開發(fā)人員標(biāo)記屬性以傳播到生成的屬性。有幾個(gè)優(yōu)勢:
它利用內(nèi)置的 C# 語法,使該功能感覺“原生”并且不需要額外的屬性
它解決了注解屬性只能針對屬性,不能針對字段的問題
也就是說,使用 MVVM Toolkit 8,現(xiàn)在支持以下場景:
[ 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) ;
可以看到生成的屬性有我們指定的兩個(gè)屬性!這允許完全靈活地為生成的屬性添加注釋,同時(shí)使用內(nèi)置的 C# 語法并且對該功能支持的屬性類型沒有限制。
注意:生成的代碼略有不同,包括此處未顯示的其他性能優(yōu)化。
MVVM 工具包分析器
此版本的 MVVM 工具包也是第一個(gè)引入專用分析器的版本。它能夠幫助開發(fā)人員以最佳方式使用 MVVM 工具包。也就是說,MVVM 工具包將不再只是針對使用錯(cuò)誤的功能發(fā)出診斷(例如,以報(bào)錯(cuò)的方式),它現(xiàn)在還會顯示改進(jìn)代碼和避免常見錯(cuò)誤的建 議!
第一個(gè)分析器涵蓋了使用[ObservableProperty]屬性時(shí)的一個(gè)常見錯(cuò)誤。參照這個(gè)例子:
[ ObservableProperty] privatestring? name;
[ RelayCommand] publicasyncTask LoadUserAsync( ) {User user = await_userService.FetchUserAsync;
name = user.Name; // Whoops! Assigning to the field!}
開發(fā)人員不小心分配給一個(gè)字段(而不是生成的屬性),然后被卡在 UI 上。UI 上沒有顯示該更改,也沒有明確說明為什么會這樣,這一情景已經(jīng)被多次提出。新的分析器將在這些情況下提供幫助,它將標(biāo)記支持可觀察屬性的字段的所有賦值,并顯示診斷建議引用生成的屬性。你不會再收到莫名其妙的屬性丟失的通知。
第二個(gè)新分析器旨在幫助減少使用 MVVM 工具包的應(yīng)用程序中的二進(jìn)制文件大小。正如我們在8.0.0 公告帖子中提到的,MVVM 工具包包含多個(gè)屬性(例如[ObservableObject]),這些屬性允許生成器將實(shí)現(xiàn) INotifyPropertyChanged 和 INotifyPropertyChanging 接口所需的所有代碼(也可選擇使用其他幫助程序)注入現(xiàn)有類。
這僅適用于無法繼承的情況:如果您不屬于這種情況,您應(yīng)該選擇繼承 ObservableObject,從而減小的二進(jìn)制文件大小,因?yàn)榫幾g器不必在每個(gè)過程中一遍又一遍地復(fù)制那些相同的助手類型。請參閱這個(gè)例子:
[ ObservableObject] publicpartialclassMyViewModel{[ ObservableProperty] privatestring? name; }
這里,MyViewModel 不是從任何類型繼承而來,因此它應(yīng)該繼承 ObservableObject 而不是使用[ObservableObject]屬性,以此改進(jìn)二進(jìn)制大小。新的分析器將標(biāo)記所有與此類似的場景并建議改用繼承。這將特別有助于初學(xué)者,他們可能不了解兩種不同方法的細(xì)微差別并且可能不知道如何選擇。在這些情況下,現(xiàn)在分析器可以提供幫助。
MVVM 工具包源代碼生成器優(yōu)化
正如我們提到的,這個(gè)新版本還包括對 MVVM 工具包的主要性能優(yōu)化,以進(jìn)一步改善開發(fā)人員的用戶體驗(yàn),尤其是優(yōu)化了開發(fā)人員在處理非常大的解決方案時(shí)的體驗(yàn)。我們花了很多時(shí)間改進(jìn)我們所有生成器的架構(gòu),并與 Roslyn 團(tuán)隊(duì)的工程師交談,以確保我們正在盡可能地發(fā)揮它們的性能。
以下只是我們在這方面所做的一部分改進(jìn):
為 Roslyn 4.3 添加了多目標(biāo)
(#428 ,#462 ):如果支持,MVVM 工具包源代碼生成器現(xiàn)在將使用 Roslyn 4.3 目標(biāo),這樣他們就可以在主機(jī)支持的情況下選擇加入一些更優(yōu)化的 API。這一功能在引用 MVVM 工具包時(shí)會自動啟用。
使用 ForAttributeWithMetadataName<T>
(#436 ):我們將生成器切換到新的高級 Roslyn API 以匹配屬性 ,這大大提高了生成器觸發(fā)特定屬性的性能。比如現(xiàn)在[ObservableProperty]就在用這個(gè)。
將診斷移入診斷分析器
(#433 ,#434 ):我們將幾乎所有診斷都移動到診斷分析器,這些診斷分析器在進(jìn)程外運(yùn)行并且獨(dú)立于源生成器。這樣能夠顯著減少鍵入時(shí)的overhead,因?yàn)樗性\斷邏輯現(xiàn)在都在單獨(dú)的進(jìn)程中運(yùn)行,并且不會降低 IntelliSense 的速度。
停止在增量提供程序中使用符號
( #435 ):我們更新了所有增量提供程序以不再傳播符號。這可以減少內(nèi)存使用,因?yàn)閭鞑シ枙?dǎo)致 Roslyn 不必要地根編譯對象。
更多性能優(yōu)化 ( #447 、 #460 、 #469 、 #487 、 #489 ):我們徹底檢查了所有增量模型和增量管道,以顯著提高性能并減少內(nèi)存分配。
IObservable<T>?信使擴(kuò)展
另一個(gè)功能需求,尤其是由那些在應(yīng)用程序中大量使用響應(yīng)式 API 開發(fā)人員提出,是尋求一種方法來橋接 MVVM 工具包中的功能。界面的新擴(kuò)展? IObservable<T>?extensions?現(xiàn)在支持此功能。它們可以按如下方式使用:
IObservable < MyMessage> observable = Messenger.CreateObservable < MyMessage> ;
就像這樣!此擴(kuò)展將創(chuàng)建一個(gè)對象 IObservable<T>?,該對象可用于訂閱消息并對其做出動態(tài)反應(yīng)。還支持通過單獨(dú)的重載指定不同的標(biāo)記。這面這個(gè)示例展示了新 API 的端到端使用:
vartoken = Messenger .CreateObservable<MyMessage> .Where(...) .Subscribe( m=> Console.WriteLine($ "Hello {m.Username}!"));
.NET 7和 C# 11支持
.NET Community Toolkit 工具包的新發(fā)布版本還將 .NET 7 TFM 添加到高性能包中,新版本中還包括一些變動,主要對新的 C# 11語言功能進(jìn)行了改善,比如 ref?fields 就是一個(gè)典型。
以下類型現(xiàn)在不再處于預(yù)覽狀態(tài),以及更新使用了新的 ref?安全規(guī)則:
Ref<T>
ReadOnlyRef<T>
NullableRef<T>
ReadOnlyNullableRef<T>
下面這種場景可以使用這些規(guī)則:
publicstaticboolTryGetElementRef( outNullableRef<T> reference ) { // Logic here... }
也就是說,使用?NullableRef<T>?類型規(guī)則可以有效地讓方法具有 out?ref?T?參數(shù), 而這在 C# 中是無法通過表達(dá)式做到的. 我們還計(jì)劃擴(kuò)展這些類型的 API 淺層面,從而允許這些類型通過使用 Unsafe 類型,提供一種易于使用的替代 GC-ref 算法的方法,這在視覺上也更類似于傳統(tǒng)的指針?biāo)惴ā?/p>
此外,所有不在預(yù)覽模式中的 ref?struct?類型都已被更新,使用內(nèi)部的 ref? 字段實(shí)現(xiàn)更好的性能。這些類型包括:
Span2D<T>
ReadOnlySpan2D<T>
RefEnumerable<T>
ReadOnlyRefEnumerable<T>
SpanEnumerable<T>
ReadOnlySpanEnumerable<T>
更多新變化可參照官方文檔。
更新日志
發(fā)生了什么變化
在#944中改進(jìn)@Sergio0694生成的代碼中的[ServableProperty]中的可空注釋
添加.targets以驗(yàn)證#942中@Sergio0694的Windows SDK版本
更新的SDK包檢查。NET 9 SDK,作者@Sergio0694,發(fā)表于第952期
允許@Sergio0694在#946中將屬性轉(zhuǎn)發(fā)給屬性訪問者
修復(fù)#964中@Sergio0694對自定義屬性目標(biāo)的抑制
在#966中添加對@segio0694的[ServableProperty]的部分屬性的支持
通過#967中的@Sergio0694將NuGet包更新到最新穩(wěn)定版本
通過#968中的@Sergio0694將一些診斷轉(zhuǎn)移到分析儀
修復(fù)了#970中@Sergio0694生成的部分屬性的錯(cuò)誤
在#972中由@Sergio0694處理部分屬性代碼修復(fù)程序中的“必需”字段
刪除“this”@Sergio0694在973中的部分屬性碼修復(fù)器表達(dá)式
在#979中,@Sergio0694為WinRT場景添加MVVM Toolkit分析器
在#980中由@Sergio0694為所有分析器項(xiàng)目嵌入.pdb文件
通過#981中的@Sergio0694為類級屬性添加更多WinRT分析器
@Sergio0694在#984中提高了新分析儀的位置分辨率
移除。NET 6 TFM作者:@Sergio0694
允許@Poker在#926中演唱的問題模板中的代碼塊
改進(jìn)#988中@Sergio0694的“RequiresCharpLanguageVersionPreviewAnalyzer”
#997中@Sergio0694在“IndexOf”API中使用“ref readonly”
在#808中,@paulomorgado在ReadOnlySequence上添加了流
修復(fù)#999中@Sergio0694對WinRT診斷之一的消息
#1000中@Sergio0694在C#未“預(yù)覽”時(shí)對WinRT AOT兼容性的新信息診斷
修復(fù)評論中的小拼寫錯(cuò)誤。通過@realybin在#974
@Sergio0694在#1003中進(jìn)行了細(xì)微的診斷調(diào)整
在#1002中,@Sergio0694將Roslyn更新為4.12以獲取新的生成器
在#1008中,@Sergio0694支持修復(fù)具有多個(gè)屬性的屬性列表
@Sergio0694在#1009中為“MVVMTK0051”診斷發(fā)出一致的位置
添加更多分析器,通過#1010中的@Sergio0694啟用部分屬性的單元測試
支持更多局部屬性修飾符,禁止在#1015中使用@Sergio0694的指針類型
在#1016中通過@Sergio0694將NuGet包更新到最新穩(wěn)定版本
在#1019中,@Sergio0694改進(jìn)了[GeneratedBindableCustomProperty]分析器的過濾邏輯
提高SpanExtensions的測試覆蓋率。索引由@Youssef1313在#1023
在#1020中,@Sergio0694將半自動屬性的代碼修復(fù)器添加到“[ServableProperty]”部分屬性中
通過#1024中的@Sergio0694改進(jìn)半自動屬性分析儀中的濾波
在#1026中,@Sergio0694使用表達(dá)式體處理半自動屬性
新貢獻(xiàn)者
@撲克歌手在#926中做出了他們的第一個(gè)貢獻(xiàn)
@paulomorgado在#808中做出了他們的第一個(gè)貢獻(xiàn)
@realybin在974年做出了他們的第一個(gè)貢獻(xiàn)
下載地址
人氣軟件
Wolfram Mathematica 14.2.1 中文正式免費(fèi)版(附安裝教程)
51dedecms模板轉(zhuǎn)碼專用工具 v5.6中文綠色版(GBK、UTF8碼互轉(zhuǎn))
srvinstw 將exe注冊為系統(tǒng)服務(wù)的軟件
Web程序調(diào)用本地exe文件之方法(并傳參到CS程序)
Python 3.7 for win32 (Python編程開發(fā)工具)官方安裝版
Mathworks Matlab R2024b v24.2.0.2712019 中文正式免費(fèi)版(附安
Composer.exe windows安裝包
Mathematica 11.0.1 for linux 英文特別版(附注冊機(jī)+激活方法)
MathWorks MATLAB R2023b v23.2.0.2485118 Update 6 x64 中文正
Mathworks Matlab R2022b v9.13.0 U2 中文完美授權(quán)版(附激活補(bǔ)丁
相關(guān)文章
-
阿里云WEF API調(diào)用工具 GUI版本 v1.0 綠色免費(fèi)版
阿里云WEF API調(diào)用工具是一款Web應(yīng)用防火墻,通過調(diào)用阿里云密鑰AccessKey ID、AccessKey Secret,然后可以直接控制阿里云WAF,操作便捷,歡迎需要的朋友下載使用...
-
Mathworks Matlab R2024b v24.2.0.2712019 中文正式免費(fèi)版(附安裝教程)
MATLAB R2024b由全球領(lǐng)先的數(shù)學(xué)計(jì)算軟件開發(fā)商 MathWorks正式發(fā)布了,新版R2024b 推出了幾項(xiàng)重要更新,幫助從事無線通信系統(tǒng)、控制系統(tǒng)和數(shù)字信號處理應(yīng)用的工程師和研究人...
-
MATLAB Runtime R2024a(24.1) Update 4 中文安裝免費(fèi)版(附教程)
MATLAB Runtime R2024a是一組獨(dú)立的共享庫,支持執(zhí)行已編譯的 MATLAB、Simulink 應(yīng)用程序或組件,允許電腦在沒有安裝MATLAB軟件的情況下運(yùn)行編譯的 MATLAB 應(yīng)用程序或組件...
-
MathWorks MATLAB R2024a v24.1.0.253703 x64 LINUX 中文授權(quán)安裝版
MATLAB R2024a LINUX版是一款強(qiáng)大完整的數(shù)學(xué)計(jì)算分析和編程軟件!數(shù)百萬工程師和科學(xué)家都使用它來完成自己的項(xiàng)目過程,具有超強(qiáng)的靈活性,全面適應(yīng)和滿足用戶在工作過程中...
-
MathWorks MATLAB R2024a v24.1.0.253703 中文授權(quán)安裝版(附安裝教程)
MATLAB R2024a 是一種用于編程、數(shù)值計(jì)算和結(jié)果可視化的高級語言和交互式環(huán)境。使用 MATLAB,您可以分析數(shù)據(jù)、開發(fā)算法、創(chuàng)建模型和應(yīng)用程序,歡迎需要的朋友下載使用...
-
路遙工具箱 v4.8.2024.719 中文綠色開源免費(fèi)版
路遙工具箱主要用于解決一些開發(fā)過程中常見的功能性需求,界面簡潔,功能強(qiáng)大,路遙工具箱是一套專為開發(fā)人員設(shè)計(jì)的實(shí)用工具集合,它的主要目的是簡化開發(fā)流程,幫助開發(fā)者...
下載聲明
☉ 解壓密碼:www.dbjr.com.cn 就是本站主域名,希望大家看清楚,[ 分享碼的獲取方法 ]可以參考這篇文章
☉ 推薦使用 [ 迅雷 ] 下載,使用 [ WinRAR v5 ] 以上版本解壓本站軟件。
☉ 如果這個(gè)軟件總是不能下載的請?jiān)谠u論中留言,我們會盡快修復(fù),謝謝!
☉ 下載本站資源,如果服務(wù)器暫不能下載請過一段時(shí)間重試!或者多試試幾個(gè)下載地址
☉ 如果遇到什么問題,請?jiān)u論留言,我們定會解決問題,謝謝大家支持!
☉ 本站提供的一些商業(yè)軟件是供學(xué)習(xí)研究之用,如用于商業(yè)用途,請購買正版。
☉ 本站提供的.NET 社區(qū)工具包 .NET Community Toolkit 8.4.0 官方最新開源版資源來源互聯(lián)網(wǎng),版權(quán)歸該下載資源的合法擁有者所有。