由于眾所周知的原因,大佬們紛紛加入羊群,筆者也未能幸免,體驗下來這絕對不是普通感冒的癥狀,身體不適,熬了幾天,所以本周更新比較晚;另外精力有限,對于國際板塊只有鏈接沒有簡介,十分抱歉!
在這個艱難時刻,大家照顧好自己和家人,做好防護,祝沒羊的永遠"郭襄",祝已羊的早日康復,沒有一個冬天不可逾越,沒有一個春天不會來臨!
國內文章
從位圖到布隆過濾器,C#實現
https://mp.weixin.qq.com/s/zCIOnIaEqutyasfs3vY2Wg
本文將以 C# 語言來實現一個簡單的布隆過濾器,為簡化說明,設計得很簡單,僅供學習使用。
圖解B樹及C#實現(1)
https://mp.weixin.qq.com/s/iX7GUDeBRMBVtGFE_l3CLQ
本系列將用三篇文章講解B樹的設計理念及如何用 C# 實現一個內存版本的B樹:
B樹的定義及數據的插入(本文)
數據的讀取及遍歷
數據的刪除
圖解B樹及C#實現(2)數據的讀取及遍歷
https://mp.weixin.qq.com/s/jcfT5BPPoni7uqgELBeHeA
前一篇文章為大家介紹了 B樹 的基本概念及其插入算法。本文將基于前一篇的內容,為大家介紹插入到 B樹 中的數據該怎么讀取及遍歷,
本文的代碼基于前一篇文章的代碼,已經實現的功能可能會被省略,只介紹新增的功能。
推薦一款 在線+離線數據 同步框架 Dotmim.Sync
https://www.cnblogs.com/shanyou/p/DotmimSync.html
微軟高級軟件工程師 Sébastien Pertus 在 GitHub 網站開源了一種跨平臺的關系數據庫同步框架 Dotmim.Sync:https://github.com/Mimetis/Dotmim.Sync,該框架基于.NET Standard 2.0 研發,支持在 IOT、 Xamarin、.NET、MAUI 等環境中使用。
我做了第一個ChatGPT .net api聊天庫
https://www.cnblogs.com/qwqwQAQ/p/16981579.html
最近這個ChatGPT很火啊,看了B站上很多視頻,自己非常手癢,高低自己得整一個啊,但是讓我很難受的是,翻遍了github前十頁,竟然沒有一個C#的ChatGPT項目,我好難受啊!那能怎么辦?自己搞一個吧。
Mqttnet內存與性能改進錄
https://www.cnblogs.com/kewei/p/16988461.html
MQTTnet是一個高性能的 .NET MQTT庫,它提供MQTT客戶端和MQTT服務器的功能,支持到最新MQTT5協議版本,支持.Net Framework4.5.2版本或以上。本文講述了筆者閱讀源碼,發現性能問題和解決性能的過程。
WinUI(WASDK)使用MediaPipe檢查手部關鍵點并通過ML.NET進行手勢分類
https://mp.weixin.qq.com/s/_vRH-u1v3Ebn9ZOSKKtUKw
之所以會搞這個手勢識別分類,其實是為了滿足之前群友提的需求,就是針對稚暉君的ElectronBot機器人的上位機軟件的功能豐富,因為本來擅長的技術棧都是.NET。也剛好試試全能的.NET是不是真的全能就想著做下試試了,MediaPipe作為谷歌開源的機器視覺庫,功能很豐富了,而且也支持c++,翻遍社區果然找到了一個基于MediaPipe包裝的C#版本,叫MediaPipe.NET,于是就開始整活了。
.NET網站國際化策略
https://mp.weixin.qq.com/s/oylwGgYs4Q2kLGoAtBDEgw
我所在的公司是做SAAS軟件,用戶群體是面向全球的,因此對應業務系統國際化就是順理成章的事情。其實國際化重點在于多語言支持,本文就從這方面入手和大家介紹。
為什么 Random.Shared 是線程安全的
https://mp.weixin.qq.com/s/-4mlXU-3KDFaEr8E2S4rAQ
在多線程環境中使用 Random 類來生成偽隨機數時,很容易出現線程安全問題。例如,當多個線程同時調用 Next 方法時,可能會出現種子被意外修改的情況,導致生成的偽隨機數不符合預期。本文介紹了為什么Random.Shared 是線程安全的。
通過 CancellationToken 提高 Web 性能
https://mp.weixin.qq.com/s/EEojXpM7Vyzs92tjROkq0Q
在 Web 開發中,經常會遇到這樣的場景:用戶發起一個請求,Web 服務器執行一些計算密集型的操作,等待結果返回給用戶。這種情況下,如果用戶在等待結果的過程中取消了請求,那么服務器端依然會繼續執行計算,這樣就會造成資源浪費。
九哥聊Kestrel網絡編程第二章:開發一個Fiddler
https://mp.weixin.qq.com/s/V8M61aZWoDZWE8XqUakPpQ
本文講解基于 kestrel 開發類似 Fiddler 應用的過程,讓讀者了解 kestrel 網絡編程里面的 kestrel 中間件和 http 應用中間件。由于最終目的不是輸出完整功能的產品,所以這里只實現 Fiddler 最核心的 http 請求和響應內容查看的功能。本文章是KestrelApp 項目[2]里面的一個 demo 的講解,希望對您有用。
使用WPF或AspNetCore創建簡易版ChatGPT客戶端,搭建屬于你自己的私人AI助理
https://mp.weixin.qq.com/s/lsOJ-7op9YoiQdA7LlwaPg
前一天寫的一個ChatGPT服務端,貌似大家用起來還不是那么方便,所以我順便用WPF和AspNetCore的webapi程序做個客戶端吧,通過客戶端來快速訪問chatgpt模型生成對話。
記一次 .NET 某工控MES程序 崩潰分析
https://mp.weixin.qq.com/s/o13vrUM7fxyxlDf9dCT5OA
前幾天有位朋友找到我,說他的程序出現了偶發性崩潰,已經抓到了dump文件,Windows事件日志顯示的崩潰點在 clr.dll 中,讓我幫忙看下是怎么回事,那到底怎么回事呢? 上 WinDbg 說話。
.Net MAUI iOS使用騰訊開放平臺TencentOpenAPI
https://mp.weixin.qq.com/s/6ee7rwUHz2t_ZSUVogD_vQ
本文介紹了如何在.Net MAUI iOS使用騰訊開放平臺TencentOpenAPI。
《ASP.NET Core 6框架揭秘》實例演示[34]:緩存整個響應內容
https://mp.weixin.qq.com/s/TDNMNTVS_grD6t_5kMCpkw
我們利用ASP.NET開發的大部分API都是為了對外提供資源,對于不易變化的資源內容,針對某個維度對其實施緩存可以很好地提供應用的性能。《內存緩存與分布式緩存的使用》介紹的兩種緩存框架(本地內存緩存和分布式緩存)為我們提供了簡單易用的緩存讀寫編程模式,本篇介紹的則是針對針對HTTP響應內容實施緩存,ResponseCachingMiddleware中間件賦予我們的能力[本文節選《ASP.NET Core 6框架揭秘》第22章]。
主題
發布 Oracle Entity Framework Core 7
https://medium.com/oracledevs/announcing-oracle-entity-framework-core-7-d89a2495b7db
ReSharper 和 Rider 2022.3.1 Bug 修復內容
https://blog.jetbrains.com/dotnet/2022/12/21/resharper-and-rider-2022-3-1-bug-fixes/
不脫離Visual Studio就能寫markdown - Visual Studio博客
https://devblogs.microsoft.com/visualstudio/write-markdown-without-leaving-visual-studio/
將在Visual Studio 2022中引入Markdown編輯器--無需擴展即可編輯和預覽/正在Visual Studio 2022 17.5 Preview 2中測試--Windows森林
Visual Studio 粘性滾動現在預覽中 - Visual Studio博客
https://devblogs.microsoft.com/visualstudio/sticky-scroll-now-in-preview/
粘性滾動,在VS代碼中也很流行,現在在Visual Studio 2022中/在Visual Studio 2022 17.5 Preview 2中測試 - Windows森林
KB5022083 對基于WPF的應用程序渲染XPS文檔方式的改變 - Microsoft 支持
https://support.microsoft.com/ja-jp/topic/kb5022083-wpf-%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%8C-xps-%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%82%92%E3%83%AC%E3%83%B3%E3%83%80%E3%83%AA%E3%83%B3%E3%82%B0%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AE%E5%A4%89%E6%9B%B4-a4ae4fa4-bc58-4c37-acdd-5eebc4e34556
2022年12月".NET "安全更新問題,WPF應用不能正確顯示XPS文檔/受安全增強措施影響,微軟提供解決方法 - Windows森林
文章、幻燈片等。
擊敗不安全類(函數指針)| UFCPP的博客
https://ufcpp.net/blog/2022/12/unsafer-unsafe/
.NET 7中的新內容 @bind:after可立即處理輸入信息(并再次失敗) - Qiita
https://qiita.com/jsakamoto/items/0a265288cacea70634b4
使用應用程序服務認證(Easy Auth)和ASP.NET表單認證同時并存 - Shibayan雜記
https://blog.shibayan.jp/entry/20221218/1671348695
在(C#)接口中具有靜態虛擬成員的通用構造器 - 鐘聲響起的貓
https://ikorin2.hatenablog.jp/entry/2022/12/17/212228
2022年的C#(Incremental)源生成器開發方法 - neue.cc
https://neue.cc/2022/12/16_IncrementalSourceGenerator.html
LibraryImportAttribute是在.NET 7中添加的,我碰了一下它 - Programming Lineage Memandum Blog
https://tan.hatenadiary.jp/entry/2022/12/16/002739
我決心擺脫邪惡和暴虐的T4 |UFCPP的博客
https://ufcpp.net/blog/2022/12/no-more-t4/
用.NET和WebAssembly做實驗-在AKS的WASI節點池上運行基于.NET的應用程序
https://www.tpeczek.com/2022/12/experimenting-with-net-webassembly.html
使用我最喜歡的靜態分析工具(Code Quality & SAST)也在GitLab上使用
https://zenn.dev/masakura/articles/ff74864c9af28d
利用Blazor和DataFactory輕松實現EL應用 - Qiita
https://qiita.com/bitflyer/items/3b4ef34a9bdf5991b8f6
添加新文件的速度變快了很多 - Visual Studio博客
https://devblogs.microsoft.com/visualstudio/adding-new-files-just-got-a-lot-faster/
.NET on IBM Power #1 - Qiita
https://qiita.com/Nakaji1106/items/f0761c4d1dce58c0b8d5
在IBM Power上使用.NET #2 - Qiita
IBM Power上的.NET #3 - Qiita
C#11允許使用列表模式。
(https://zenn.dev/yuchiki/articles/csharp-list-pattern)
[C#] INumberT實現概述(含小數類型的實現示例) - Qiita
https://qiita.com/YuHima03/items/20b59013d42d294b9839
###用.NET 7、Blazor和.NET MAUI構建你自己的播客應用程序 - .NET博客
https://devblogs.microsoft.com/dotnet/build-your-own-podcast-app-with-dotnet-blazor-and-dotnet-maui/
MQTT與nanoFramework的Node-RED通信
https://zenn.dev/matsuataru/articles/0237a66beb73db
如何將Xamarin.Android遷移到.NET 6 - Qiita
https://qiita.com/secile/items/10266c6b6bd5b179dc23
當pulumi遇到nuke:一個.NET的愛情故事
https://dev.to/techwatching/when-pulumi-met-nuke-a-net-love-story-4omd
用C#檢測Windows屏幕鎖 - Qiita
https://qiita.com/unasenohkoku/items/380e4fb4613b5abe96ea
處理.NET框架的NuGet包沒有設置依賴關系(NU5218警告) - Qiita
https://qiita.com/mxProject/items/f031321ef0d229659f25
在.NET MAUI中用Azure AD B2C進行認證(先用MicrosoftAccount試試) - Qiita
https://qiita.com/MAUIHighSchool/items/b8faf3aba00082b023ac
在MAUI中用Azure AD B2C進行.NET認證(嘗試添加谷歌賬戶認證) - Qiita
不要把異步和同步混在一起,這很危險 - Qiita
https://qiita.com/superriver/items/1f1b83d2d2c6b70ba408
重新實現String.Format方法 - Qiita
https://qiita.com/t0r/items/f83f6ee4ddca1bcf27eb
從Unity 2021.2看新的C#類 - Qiita
https://qiita.com/Gaku_Ishii/items/23d85defb8339fe3e9c0
在Blazor中使用Handsontable,一個類似Excel的網格JS庫 - Qiita
https://qiita.com/yaju/items/bcca337af393f15a6795
Rider 2022.3增加了從JSON創建C#類和Record的能力 - Qiita
https://qiita.com/RyotaMurohoshi/items/0c6730d0988b022378e6
Rider 2022.3和ReSharper 2022.3的IL瀏覽器現在可以將IL反編譯為C# - Qiita
https://qiita.com/RyotaMurohoshi/items/1f8244f0af50ad30583e
C# 如何編寫源碼生成器 第1/5部分:規劃
https://kafkawannafly.medium.com/c-how-to-write-a-source-generator-part-1-5-planning-6b4ab6ea5f63
使用Blazor WASM登錄后,Azure AD安全組中的授權問題
https://zenn.dev/okazuki/articles/auth-securitygroup-blazorwasm
Mark2,一個用Blazor WebAssembly構建的分數表系統,現在已經開放源代碼 - Qiita
https://qiita.com/kaorumori/items/5b7255e3244159b082d3
在.NET中使用代碼優先的gRPC(gRPC-Web) - Qiita
https://qiita.com/michi_wkwk/items/194276f0014df74cac41
.NET 7: 源代碼中可疑的地方和錯誤
https://dev.to/_sergvasiliev_/net-7-suspicious-places-and-errors-in-the-source-code-cgd
用Cardboard做一個游戲,作為你今年的圣誕禮物 - Qiita
https://qiita.com/secile/items/69928aa1e52152034489
Blazor 一個關于用WebAssembly開發新業務系統的故事
https://zenn.dev/rkatsura/articles/4b0e0b3dbb9a59
讓我們在Unity中也使用Index/Range! - Qiita
https://qiita.com/Euglenach/items/c433afe78d72fc1a18fc
SoundMaker,在C#中生成像老游戲的聲音 - Qiita
https://qiita.com/DTB_AutumnSky/items/8d78520567211d9a8dd2
FrogNote,一款筆記、管理和思考軟件 - Qiita
https://qiita.com/DTB_AutumnSky/items/1d691e2428ac7fa9330c
嘗試在Unity中生成System.Text.Json源碼 | Yucchiy的說明
https://blog.yucchiy.com/2022/12/csharp-advent-calendar-system-text-json-unity/
圖書館、資源庫、工具等
nenoNaninu/TypedSignalR.Client.TypeScript。TypeScript源生成器,通過分析C#類型定義來提供強類型的SignalR客戶端。
https://github.com/nenoNaninu/TypedSignalR.Client.TypeScript
[C#]我希望SignalR能有類似SwaggerUI的東西! - 尼諾的花園
mxProject/WindowsFormGenericHost: 這是一個用于Generic Host的擴展庫。在Generic Host上運行一個Windows Forms應用程序。
https://github.com/mxProject/WindowsFormGenericHost
在通用主機上運行Windows Forms應用程序 - Qiita
Introduction | Cadl
https://microsoft.github.io/cadl/
おためしcadl
網站、文件等
推文
https://twitter.com/timheuer/status/1603880562204495877?s=12

https://twitter.com/ufcpp/status/1605378308882935809?s=12

版權聲明
國內板塊由 InCerry 進行整理 :?https://github.com/InCerryGit/WeekRef.NET/blob/master/input_zh-CN/2022/2022-12-23.md
其余內容來自 Myuki WeekRef,由InCerry翻譯(已獲得授權) :?https://github.com/mayuki/WeekRef.NET/blob/master/input/2022/2022-12-23.md
由于筆者沒有那么多時間對國內的一些文章進行整理,歡迎大家為《.NET周報-國內文章》板塊進行貢獻,需要推廣自己的文章或者框架、開源項目可以下方的項目地址提交Issue或者在我的微信公眾號私信。
格式如下:
10~50字左右的標題
對應文章或項目網址訪問鏈接
200字以內的簡介,如果太長會影響閱讀體驗
https://github.com/InCerryGit/.NET-Weekly
.NET性能優化交流群
相信大家在開發中經常會遇到一些性能問題,苦于沒有有效的工具去發現性能瓶頸,或者是發現瓶頸以后不知道該如何優化。之前一直有讀者朋友詢問有沒有技術交流群,但是由于各種原因一直都沒創建,現在很高興的在這里宣布,我創建了一個專門交流.NET性能優化經驗的群組,主題包括但不限于:
如何找到.NET性能瓶頸,如使用APM、dotnet tools等工具
.NET框架底層原理的實現,如垃圾回收器、JIT等等
如何編寫高性能的.NET代碼,哪些地方存在性能陷阱
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能問題和寶貴的性能分析優化經驗。由于已經達到200人,可以加我微信,我拉你進群:?ls1075