.NET週報 【4月第1期 2023-04-02】

2023-04-04 12:03:25

國內文章

探索 SK 範例 -- GitHub 儲存庫中的機器人

https://www.cnblogs.com/shanyou/p/17280627.html

微軟 3月22日 一篇文章「Semantic-kernel 嵌入和記憶:使用聊天UI探索GitHub Repos」[1] ,文章中進行了展示了嵌入,該文章解釋了他們如何幫助開發人員提出有關GitHub儲存庫的問題或使用自然語言查詢探索GitHub儲存庫。與嵌入一起,這是在SK記憶體[2](嵌入集合)的幫助下完成的,這有助於為提示(或SK世界中的ASK)提供更廣泛的上下文。

.NetCore中使用分散式事務DTM的二階段訊息

https://www.cnblogs.com/xwc1996/p/17252311.html

二階段訊息是DTM新提出的,可以完美代替現有的事務訊息和本地訊息表架構。無論從複雜度、效能、便利性還是程式碼量都是完勝現有的方案。

相比現有的訊息架構藉助於各種訊息中介軟體比如RocketMQ等,DTM自己實現了無需額外的學習成本。它能夠保證本地事務的提交和全域性事務提交是「原子的」,適合解決不需要回滾的分散式事務場景。

微軟部落格上幾篇 Semantic-kernel (SK)文章

https://www.cnblogs.com/shanyou/p/17275581.html

自從最近微軟開源Semantic-kernel (SK) 來幫助開發人員在其應用程式中使用AI大型語言模型(LLM)以來,Microsoft一直在忙於改進它,釋出了有關如何使用它的新指南並行布了5篇文章介紹他的功能。

開發人員可以使用Semantic-kernel (SK) 建立自然語言提示、生成響應、提取資訊、呼叫其他提示或執行可以用文字表示的其他任務。微軟在3月17日開源Semantic-kernel (SK)時,提示是專案描述的關鍵部分:「Semantic-kernel (SK)是一個輕量級SDK,可讓您將C#和Python等傳統程式語言與最新的大型語言模型(LLM)AI'提示'混合在一起,具有提示模板,連結和規劃功能。

記一次 .NET 某感測器採集系統 執行緒爆高分析

https://www.cnblogs.com/huangxincheng/p/17272068.html

前段時間有位朋友微信找到我,說他的程式使用 hsl 庫之後,採集 plc 時記憶體溢位,讓我幫忙看一下怎麼回事,哈哈,貌似是分析之旅中的第二次和 hsl 打交道,既然找到我,那就上 windbg 說話吧。

.Net 7 輕鬆上手Dapr之服務呼叫

https://www.cnblogs.com/Mamba8-24/p/17268674.html

對於Dapr ,在專案中也有用過一段時間,優缺點並存,但是瑕不掩瑜,目前隨著版本的迭代和第三方團隊對它的支援也使得我們用得更加得心應手,所以藉此也回顧一下Dapr的相關知識以及分享一下專案中用到的第三方庫MASA.Framework 對Dapr的完美支援。然後本文只是個人學習與分享,不喜勿噴,謝謝!

基於Admin.NET框架的前端的一些改進和程式碼生成處理(2)

https://www.cnblogs.com/wuhuacong/p/17267815.html

在上篇隨筆《基於Admin.NET框架的前端的一些改進和程式碼生成處理(1)》中大致介紹了一些關於對Admin.NET框架的前端的改造工作,主要目的就是希望能夠增加前端程式碼的簡潔性和可讀性,以及利用程式碼生成工具來快速生成相關的程式碼,從而減少開發過程中的繁瑣問題。本篇隨筆繼續探討一下,對其中一些模組功能進行一些修改調整,涉及前後端的一起修改調整。

P/Invoke之C#呼叫動態連結庫DLL

https://www.cnblogs.com/baibaomen-org/p/17267694.html

這篇文章介紹瞭如何在C#中通過P/Invoke呼叫DLL動態鏈庫的流程。文章中提到,P/Invoke全稱為Platform Invoke (平臺呼叫),其實際上就是一種函數呼叫機制,通過 P/Invoke就可以實現呼叫非託管Dll中的函數。文章還介紹瞭如何建立一個DLL以及如何通過C#去呼叫。

一次對pool的誤用導致的.net頻繁gc的診斷分析

https://www.cnblogs.com/dotnet-diagnostic/p/17258628.html

有位朋友找我,希望我能幫看一下他的一個service。從他的描述看,並沒有資源方面的洩漏,程式目前也能正常工作。他是在用dotnet-counters moniter時發現gc2、也就是full gc觸發的比較頻繁,頻率超過了他自己的預期,於是他心裡不踏實,所以想找我看一下。

SHA-256 簡介及 C# 和 js 實現【加密知多少系列】

https://www.cnblogs.com/czzj/p/JMZDS_SHA256.html

記一次 .NET 某企業 ERP網站系統 崩潰分析

https://www.cnblogs.com/huangxincheng/p/17260332.html

前段時間收到了一個朋友的求助,說他的ERP網站系統會出現偶發性崩潰,找了好久也沒找到是什麼原因,讓我幫忙看下,其實崩潰好說,用 procdump 自動抓一個就好,拿到 dump 之後,接下來就是一頓分析了。

主題

【英文】Visual Studio Code 2023 年 3 月

https://code.visualstudio.com/updates/v1_77

【英文】釋出 2.6.104 StackExchange/StackExchange.Redis

https://github.com/StackExchange/StackExchange.Redis/releases/tag/2.6.104

【英文】Rider 2023.1 Beta 已釋出 | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/03/30/rider-2023-1-beta-is-out/

【英文】ReSharper 2023.1 Beta | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/03/30/resharper-2023-1-beta/

【英文】發現 .NET 7 SDK 容器 - 支援身份驗證和跨體系結構構建 - .NET 部落格

https://devblogs.microsoft.com/dotnet/updates-to-container-support-in-the-dotnet-sdk/

文章、幻燈片等

【日文】C# 正規表示式速查表

https://zenn.dev/boukichi/articles/d4ab6a06690868

【英文】使用 ILookupProtector 和 ILookupProtectorKeyRing 介面在 ASP.NET Core Identity 中加密和解密使用者資料

https://dev.to/mohammedahmed/encrypt-and-decrypt-users-data-in-aspnet-core-identity-using-the-ilookupprotector-and-ilookupprotectorkeyring-interfaces-2gep

【日文】關於字串搜尋演演算法-Qiita

https://qiita.com/takayoshi1968/items/97f232cb7ab50b48131a

【英文】Sail Sharp,優化和保護 Kubernetes .NET 容器的 8 個技巧

https://medium.com/@mabenoit/sail-sharp-8-tips-to-optimize-and-secure-your-net-containers-for-kubernetes-c68ba253844a

【日文】短時傅立葉變換及其逆變換—Qiita

https://qiita.com/takayoshi1968/items/636372d464d02699ba4f

【日文】更新本地開發證書-Qiita

https://qiita.com/alicial/items/f7ee1224037dcd10c932

【英文】即使在代理後面,如何在 ASP.NET Core 中獲取使用者端 IP

https://blog.elmah.io/how-to-get-the-client-ip-in-asp-net-core-even-behind-a-proxy/

【英文】ChatGPT + .NET Slackbot

https://blogg.blank.no/chatgpt-net-slackbot-cd9ec5664f23

【英文】Kubernetes 中的 Kerberos

https://dev.to/da1rren/escaping-kerberos-with-some-simple-kubernetes-tricks-3hal

【英文】ReSharper IL 檢視器和低版本 C# | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/03/30/resharper-il-viewer-and-low-level-csharp/

【英文】C# 命令列對話與ChatGPT API-Qiita

https://qiita.com/fsdg-adachi_h/items/2675b596191e4fa2d0e3

【日文】C#:結構中的這個東西

https://zenn.dev/ruccho/articles/0042b9a9eeb6ed

【英文】簡化安全性:ASP.NET Core 中基於資源的授權

https://medium.com/@niteshsinghal85/simplifying-security-resource-based-authorization-in-asp-net-core-3f70486059d5

【日文】C#:在執行時將 Lambda 表示式傳遞給 LINQ

https://dev.to/kenakamu/c-pass-lambda-expression-to-where-linq-at-runtime-1ma4

【日文】使用 WebView2 直接從印表機列印 HTML 表單

https://zenn.dev/junnuj/articles/7fea619ba7e237

【英文】在 .NET 中使用開放式遙測收集器進行與供應商無關的遙測

https://code-maze.com/vendor-agnostic-telemetry-opentelemetry-collector-dotnet/

【英文】攻擊者開始使用惡意程式碼 NuGet 包將 .NET 開發人員作為目標 | JFrog

https://jfrog.com/blog/attackers-are-starting-to-target-net-developers-with-malicious-code-nuget-packages/

【英文】瞭解 .NET 生態系統:.NET 到 .NET 7 的演變

https://andrewlock.net/understanding-the-dotnet-ecosystem-the-evolution-of-dotnet-into-dotnet-7/

【日文】我試圖通過使用 NDepend-Qiita 進行重構來視覺化技術債務的償還

https://qiita.com/JHashimoto/items/1cde008689c0446be780

【英文】EF Core 7:Json 列

https://dev.to/karenpayneoregon/ef-core-7-json-columns-2k1f

【英文】Rudderstack 使用 .NET Core 7 Web API 的介紹和實現

https://medium.com/@jaydeepvpatil225/rudderstack-introduction-and-implementation-using-net-core-7-web-api-d32fc486589a

【日文】Entity Framework Core 中的順序 GUID 可能不是順序的

https://dev.to/connerphillis/sequential-guids-in-entity-framework-core-might-not-be-sequential-3408

【日文】函數指標 | UFCPP

https://ufcpp.net/study/csharp/interop/functionpointer/

【英文】宣佈 VS Code 的 GitHub Actions 擴充套件 | GitHub 部落格

https://github.blog/2023-03-28-announcing-the-github-actions-extension-for-vs-code/

【日文】[.NET] Selenium 自帶正版 WebDriver Manager | @jsakamoto

https://devadjust.exblog.jp/29530356/

【日文】C#、HTTP/2 和 gRPC

https://speakerdeck.com/nenonaninu/2-to-grpc

庫、儲存庫、工具等

MichalStrehovsky/sizoscope:用於分析本機 AOT 二進位制檔案大小的 .NET 工具。

https://github.com/MichalStrehovsky/sizoscope

https://twitter.com/mstrehovsky/status/1641307198415585280?s=12

我製作了一個新工具!可以檢視是什麼影響了您的 .NET Native AOT 可執行檔案的大小?

microsoft/node-api-dotnet:.Net 的 Node-API 的實現。它可用於在 C# 和其他 .Net 語言中為實現 Node-API 的 JavaScript 引擎或框架建立 Node.JS 外掛

https://github.com/microsoft/node-api-dotnet

drasticactions/Drastic.Flipper:.NET iOS 應用程式的 Flipper 繫結

https://github.com/drasticactions/Drastic.Flipper

推文

你知道嗎?VisualStudio允許你一次性建立多個檔案。

https://twitter.com/hassanrezkhabib/status/1640689844275003393?s=12


我建立一個AI Windbg外掛,可以讓AI來分析和解決死鎖問題。

https://twitter.com/KooKiz/status/1641565024765214720

深入探索

使用 TryStartNoGCRegion 和/或 GC.Collect 時出現死鎖 · Issue #84096 · dotnet/runtime

https://github.com/dotnet/runtime/issues/84096

版權宣告

由於筆者沒有那麼多時間對國內的一些文章進行整理,歡迎大家為《.NET週報-國內文章》板塊進行貢獻,需要推廣自己的文章或者框架、開源專案可以下方的專案地址提交Issue或者在我的微信公眾號私信。

格式如下:

  • 10~50字左右的標題
  • 對應文章或專案網址存取連結
  • 200字以內的簡介,如果太長會影響閱讀體驗

https://github.com/InCerryGit/.NET-Weekly

.NET效能優化交流群

相信大家在開發中經常會遇到一些效能問題,苦於沒有有效的工具去發現效能瓶頸,或者是發現瓶頸以後不知道該如何優化。之前一直有讀者朋友詢問有沒有技術交流群,但是由於各種原因一直都沒建立,現在很高興的在這裡宣佈,我建立了一個專門交流.NET效能優化經驗的群組,主題包括但不限於:

  • 如何找到.NET效能瓶頸,如使用APM、dotnet tools等工具
  • .NET框架底層原理的實現,如垃圾回收器、JIT等等
  • 如何編寫高效能的.NET程式碼,哪些地方存在效能陷阱

希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET效能問題和寶貴的效能分析優化經驗。目前一群已滿,現在開放二群。

如果提示已經達到200人,可以加我微信,我拉你進群: ls1075

另外也建立了QQ群,群號: 687779078,歡迎大家加入。