國內文章
開源·安全·賦能 - .NET Conf China 2022
https://mp.weixin.qq.com/s/_tYpfPeQgyEGsnR4vVLzHg
.NET Conf China 2022 是面向開發人員的社區峰會,延續 .NET Conf 2022 的活動,慶祝 .NET 7 的發布和回顧過去一年來 .NET 在中國的發展成果,它是由中國各地區的技術社區共同發起舉辦、知名企業和開源組織聯合協辦,是年度國內規模最大的 .NET 線上和線下會議,目的是用中文傳播 .NET 相關技術的知識和經驗。
今年,.NET 相關技術社區將一起,于2022 年 12 月 3 日~4 日 舉辦為期兩天的 .NET Conf China,邀請 .NET 中國開發者共襄盛舉。
.NET 零開銷抽象指南
https://www.cnblogs.com/hez2010/p/dotnet-zero-abstraction.html
目前已經到了 .NET 7 和 C# 11,我們已經能找到大量的相關設施,不過我們仍處在改進進程的中途。本文則利用目前為止已有的設施,講講如何在 .NET 中進行零開銷的抽象。
如何在.NET 程序崩潰時自動創建 Dump?
https://www.cnblogs.com/InCerry/archive/2022/11/02/how_to_automic_create_dump_when_app_crash.html?
介紹了幾種當.NET 程序崩潰自動創建 Dump 的方式。
聊一聊對一個 C# 商業程序的反反調試
https://www.cnblogs.com/huangxincheng/archive/2022/11/02/16849808.html
介紹了如何對商業程序反調試機制進行破解,從而達到逆向分析的目的。
C# 9.0 添加和增強的功能【基礎篇】
https://www.cnblogs.com/czzj/archive/2022/11/03/16845334.html
介紹了在 C# 9.0 中添加的新的語法和功能。
.NET 性能系列文章二:Newtonsoft.Json vs. System.Text.Json
https://www.cnblogs.com/InCerry/archive/2022/10/31/net-performance-series-2-newtonsoft-vs-system-text-json-2bf43e037db0.html
比較 Newtonsoft.Json 和 System.Text.Json 的性能,System.Text.Json 的性能是否已經超越了其它 Json 序列化庫。
為.NET 應用添加截圖功能
https://mp.weixin.qq.com/s/wEzPwThrcfnDlx8C_8aLAQ
本文介紹了 .NET 實現截圖功能的思路和過程,如果你僅想了解最后的解決方案,可以直接查看文章末尾。
C# 的 async/await 其實是 stackless coroutine
https://mp.weixin.qq.com/s/LMlR9W1KRHfj58xqkOkmfA
和大家聊一聊關于.NET 無棧協程的事情。
主題
議程 - .NET Conf 2022
https://www.dotnetconf.net/agenda
2022 年 dotnetconf 大會的舉辦時間為 11 月 8 日晚(中國時間)至 11 月 11 日。
NET Conf 2022 回顧活動東京~微軟日本社區活動之旅系列 - 微軟活動
https://msevents.microsoft.com/event?id=3219140458
NET Conf 2022 回顧活動將于 12 月 6 日星期二在東京舉行。該活動將在微軟日本總部舉行,可免費參加。
在 2022 年的國際互聯網大會上,晚上的會議將包括一個招待會、"詢問發言人 "和社區的閃電講座。
在.NET 會議學生區創建你的.NET 投資組合 - .NET 博客
https://devblogs.microsoft.com/dotnet/dotnet-conf-2022-student-zone/
.NET 學生區,是在.NET 大會上為學生提供的直播活動。
在.NET 學生區,你可以了解到關于.NET 的各種信息。.NET Conf 學生區云技能挑戰賽,三名參與者(學生)將贏得 SWAG(獎品)。
ASP.NET Core 7 的性能改進 - .NET 博客
https://devblogs.microsoft.com/dotnet/performance-improvements-in-aspnet-core-7/
一篇解釋.NET 7 中 ASP.NET Core 的性能改進的文章。
它解釋了各種性能改進以及基準。
通用服務器
內存池分區
將 Windows 的 IO 池切換到使用管理實現
減少連接關閉時的異常情況。
擴展了 PoolingAsyncValueTaskMethodBuilder 的應用
HTTP/2
減少鎖的爭奪
增加默認窗口大小
HTTP/3
改進的 QPack 處理
雜項
SignalR
認證
HttpResult
IndexOfAny
Filters
.NET 7 在.NET MAUI 中的性能改進 - .NET 博客
https://devblogs.microsoft.com/dotnet/dotnet-7-performance-improvements-in-dotnet-maui/
描述.NET 7 中.NET MAUI 性能改進的文章。
它深入研究了啟動時間、應用程序大小和滾動性能方面的改進。
滾動和布局性能的改進
LOLs/秒。
避免重復調用
View.Context
。避免在
CollectionView
中調用View.Context
。減少布局時的 JNI 調用
緩存 RTL 和黑暗模式值
避免在布局過程中生成 "IView[]"。
將 RTL 布局計算留給平臺
關于 "CollectionView "的其他說明。
啟動時的性能改進
安卓 NDK 編譯器標志
DateTimeOffset.Now
。避免 "ColorStateList(int[][],int[])"。
為.NET MAUI 改進 AOT 配置文件
在 Java 互操作性中更好的字符串比較
改進了 XAML 的編譯工作
在 Windows 上默認啟用 ReadyToRun 的功能
默認啟用 macOS 上的雙體系結構
關于
RegexOptions.Compiled
的說明。Mono 解釋器的改進
應用規模的改進
修復安卓系統中 DebuggerSupport 修剪器值的問題
R8 Java Code Shrinker 的改進
能夠排除 Kotlin 相關的文件
改進泛型中的 AOT 輸出
工具和文件
剖析.NET MAUI 應用程序
啟動時間測量
應用規模報告工具
試驗或高級配置
Uno Platform 4.6: Hello .NET 7!
https://platform.uno/blog/uno-platform-4-6-hello-net-7/
宣布 Uno 平臺 4.6 將支持.NET 7。
文章介紹了 Uno 平臺 4.6 的改進,包括對.NET 7 和 Visual Studio 17.4 的支持、庫資源、SVG 支持、Android 13 支持、WebAssembly Bootstrap 7.0、ASP.NET Core 介紹了托管項目。
用 CoreWCF 和升級助手將 WCF 應用程序帶到最新的.NET 上 - .NET 博客
https://devblogs.microsoft.com/dotnet/migration-wcf-to-corewcf-upgrade-assistant/
介紹用于將.NET Framework WCF 項目遷移到 CoreWCF 的升級助手的文章。
這篇文章描述了該工具的安裝和執行,以及基于一個示例項目所執行的遷移過程。它指出,一些不支持的自動升級包括基于網絡或使用.svc 文件的服務、使用 XML 的行為配置、NetTcpBinding 或不基于 HTTP 的綁定等。
宣布.NET 社區工具包 v8.1.0 預覽版 1 - .NET 博客
https://devblogs.microsoft.com/dotnet/announcing-dotnet-community-toolkit-v810-preview-1/
宣布.NET 社區工具包 v8.1.0 預覽版 1。
MVVM 工具包源生成器支持 ObservableProperty 的自定義屬性,優化源生成器本身,IObservable<T>
信使擴展,支持.NET 7 和 C# 11(Ref<T>
。NullableRef<T>
,等等)和其他各種改進。
.NET Interactive Notebooks 改名為 Polyglot Notebooks!
https://devblogs.microsoft.com/dotnet/dotnet-interactive-notebooks-is-now-polyglot-notebooks/
伴隨著.NET Interactive Notebooks 的發展,現在改名為 Polyglot Notebooks!
Visual Studio Code 上的一個擴展 - .NET Interactive Notebooks,已經更名為 Polyglot Notebooks。
由于對.NET Interactive Notebooks 的支持增加,該名稱已不再合適,因此改名為 Polyglo tNotebooks。
文章、PPT 等
neue cc - MemoryPack 中.NET 7/C# 11 代的串行器優化技術。
https://neue.cc/2022/11/04_memorypack.html
文章描述了基于 MemoryPack 的二進制序列器實現的.NET 7 / C# 11 代中的序列器優化技術。
SkiaSharp: 用 SKShader 進行陰影填充
https://bclehmann.github.io/2022/11/05/HatchingWithSKShader.html
關于如何在 SkiaSharp 中使用 SKShader 進行填充的文章。
SkiaSharp: 用 SKColourFilter 進行解密
https://bclehmann.github.io/2022/11/06/UnmaskingWithSKColorFilter.html
關于如何在 SkiaSharp 中使用 SKColourFilter 來改變顏色的文章。
在 ASP.NET Core 應用程序中使用 Azure AD 與多租戶切換租戶
https://damienbod.com/2022/10/31/switch-tenants-in-an-asp-net-core-app-using-azure-ad-with-multi-tenants/
關于如何在 Azure AD 中切換多租戶的 ASP.NET Core 應用程序的租戶的文章。
在 C#.NET 中矢量類的條件分支(if...then...else) - Qiita
https://qiita.com/C5D5E5/items/dd9da77e24752ff50cec
關于Vector.ConditionalSelect
的文章,當使用 Vector.ConditionalSelect 時,用于條件性分支。
Dotnet(.NET)WinUI、Uno 和 Maui 應用程序的性能跟蹤 - Nick 的.NET 旅行
https://nicksnettravels.builttoroam.com/dotnet-trace/
關于如何使用 dotnet-trace 和 dotnet-dsrouter 來獲得 WinUI、Uno Platform 和 MAUI 應用程序的跟蹤的文章。
異步互斥 | David 的博客
https://dfederm.com/async-mutex/
關于實現 AsyncMutex 的文章,它包裝了 Mutex 并使其可用于 async/await。
[C#]調試時需要的字節數組的十六進制轉儲 - Qiita
https://qiita.com/amutou/items/6a0954c7bf190127f3ef
輸出十六進制轉儲的代碼,如 od 命令或二進制編輯器。
在 C#中基本數字類型之間的計算是什么類型? - 齊塔
https://qiita.com/full_deviation/items/a1e01871c33673fd66af
C#數字類型(sbyte,byte,ushort,short,uint,int...)。這篇文章研究了計算以下每種類型的組合時的結果類型。
容器化的 Blazor:微軟正在考慮新的客戶端主機 - Visual Studio 雜志
https://visualstudiomagazine.com/articles/2022/11/02/blazor-docker.aspx
一篇關于使 Blazor WebAssembly 可容器化的討論,與 Blazor Server 不同,Blazor Server 是靜態構建的,不需要 ASP.NET Core 作為方法。
.NET 月報 | 2022 年 11 月 | .NET 工具博客
https://blog.jetbrains.com/dotnet/2022/11/02/net-annotated-monthly-november-2022/
JetBrains 的.NET 相關信息匯編 2022 年 11 月。
Visual Studio 如何使用 Visual Studio 來構建 Visual Studio - Microsoft Ignite - Session Catalogue
https://ignite.microsoft.com/ja-JP/sessions/bafdbcbc-f9e3-49ed-ac0b-fd1dd8cbc155?source=sessions
關于 Visual Studio 背后的團隊為發展 Visual Studio 所做的事情的會議。
有效地建立一個非常大的項目的內部運作,如 Visual Studio,自動化測試和性能跟蹤。
開源庫
AutumnSky1010/SoundMaker: 你可以用這個庫做以下內容,并把 chiptune 的聲音導出為 wave 格式的文件。
https://github.com/AutumnSky1010/SoundMaker
用于生成/輸出類似于 chiptune 的音樂的庫。
tompazourek/NaturalSort.Extension: 🔀 StringComparison 的擴展方法,增加了對自然排序的支持(例如 "abc1", "abc2", "abc10",而不是 "abc1", "abc10", "abc2")。
https://github.com/tompazourek/NaturalSort.Extension
Explorer 文件名排序中使用的自然順序排序的擴展庫。
在 Blazor WebAssembly 中按自然順序對文件名進行排序。- Qiita[1]
devlooped/avatar: 一個現代化的編譯時生成的攔截/代理庫
https://github.com/devlooped/avatar
一個攔截庫,通過使用 Source Generator 在編譯時生成代理。使用源碼生成器可以在不能進行 IL 的 Emit(動態代碼生成)的環境下運行。
關于 Moq 中使用的 Avatar 庫的一點研究た - Qiita[2]
jinek/Consolonia: 一個適用于.NET 的跨平臺 UI 框架.
https://github.com/jinek/Consolonia
在控制臺實現 Avalonia 用戶界面。
使用 Consolonia 在文本控制臺運行的 Avalonia UI 應用程序[3]
pierre3/PlantUmlClassDiagramGenerator: 這是一個生成器,用于從 C#源代碼中創建 PlantUML 的類圖。
https://github.com/pierre3/PlantUmlClassDiagramGenerator
基于 C#源代碼生成 PlantUML 類圖的工具。
PlantUmlClassDiagramGenerator 1.3.0,一個從 C#源代碼生成 PlantUML 類圖的工具,現在可以使用了! - Qiita[4]
ststeiger/PdfSharpCore: 將 PdfSharp 庫移植到.NET Core 中 - 基本上刪除了 GDI+(只缺少 GetFontData- 可以用 freetype2 代替)。
https://github.com/ststeiger/PdfSharpCore
一個用于生成 PDF 的庫,由 PdfSharp for .NET Core 修改而成。
PdfSharpCore 簡介[5]
深入理解
優化 XxHash3 性能 by xoofx · Pull Request #77756 · dotnet/runtime
https://github.com/dotnet/runtime/pull/77756
XxHash3 優化的 PR
在 ARM 平臺上優化 XxHash3 by xoofx · Pull Request #77881 · dotnet/runtime[6]
添加 XxHash128 實現 by xoofx · Pull Request #77944 · dotnet/runtime
https://github.com/dotnet/runtime/pull/77944
增加 XxHash128 實現的建議和 PR
[API Proposal]: XxHash128 · Issue #77885 · dotnet/runtime[7]
版權聲明
InCerry 翻譯與整理 : https://github.com/InCerryGit/WeekRef.NET/blob/master/input_zh-CN/2022/2022-11-07.md
Myuki WeekRef : https://github.com/mayuki/WeekRef.NET/blob/master/input/2022/2022-11-07.md
由于筆者沒有那么多時間對國內的一些文章進行整理,歡迎大家為《.NET 周報-國內文章》板塊進行貢獻,需要推廣自己的文章或者框架、開源項目可以下方的項目地址提交 Issue 或者在我的微信公眾號私信。
格式如下:
10~50 字左右的標題
對應文章或項目網址訪問鏈接
200 字以內的簡介,如果太長會影響閱讀體驗
https://github.com/InCerryGit/WeekRef.NET
參考資料
[1]
在Blazor WebAssembly中按自然順序對文件名進行排序。- Qiita: https://qiita.com/kaorumori/items/712f87a25a3930068c3e
[2]關于Moq中使用的Avatar庫的一點研究た - Qiita: https://qiita.com/mngreen/items/35e45714b1e7540ffd62
[3]使用Consolonia在文本控制臺運行的Avalonia UI應用程序: https://www.youtube.com/watch?v=yyVuvjYycCo
[4]PlantUmlClassDiagramGenerator 1.3.0,一個從C#源代碼生成PlantUML類圖的工具,現在可以使用了! ?- Qiita: https://qiita.com/pierusan2010/items/fbaa8fdf9b7f998bf56f
[5]PdfSharpCore簡介: https://zenn.dev/masmgr/articles/f8557ade054b71
[6]在ARM平臺上優化XxHash3 by xoofx · Pull Request #77881 · dotnet/runtime: https://github.com/dotnet/runtime/pull/77881
[7][API Proposal]: XxHash128 · Issue #77885 · dotnet/runtime: https://github.com/dotnet/runtime/issues/77885