.NET週報 【4月第5期 2023-04-30】

2023-05-07 15:00:29

國內文章

基於 Github 平臺的 .NET 開源專案模板. 嘎嘎實用!

https://www.cnblogs.com/NMSLanX/p/17326728.html

大家好,為了使開源專案的維護和管理更方便一些,出於個人需求寫了一款開源專案的模板,該模板基於 Github 平臺,並使用 .NET 來實現管道功能.
在接受過實戰檢驗後, 於今天開源, 專案地址:https://github.com/night-moon-studio/Template

.NET開源分散式鎖DistributedLock

https://www.cnblogs.com/Z7TS/p/17359113.html

本文介紹了.NET開源分散式鎖DistributedLock專案,講述了執行緒鎖和分散式鎖的區別,Redis分散式鎖的實現原理,RedLock演演算法的加鎖過程,以及DistributedLock專案的簡介和原始碼分析。本文使用了一些程式碼範例和圖片來說明分散式鎖的概念和用法。本文可以幫助讀者瞭解.NET中如何使用Redis實現分散式鎖的功能。

Sementic Kernel 案例之網梯科技線上教育

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

2023年4月22日北京網梯科技發展有限公司研發總監馬鴻圖分享了他本人對 AI 應用於教育的看法,以及如何將 AI 應用於線上教育,並向大家展示了基於 ChatGPT 的智慧教學應用。視訊參見 B站【將 ChatGPT 與 AI 應用於線上教育產品,實現智慧化教學|開源雲原生開發者日 2023】在AI2.0 :將ChatGPT和AI技術更深層次「融入」教學場景的分享部分給大家分享了一個Sementic Kernel的案例,當前Semantic Kernel 主要是使用C# 開發,因此網梯科技也擁抱了.NET 7 來實施AI2.0的落地。

為HttpClient開啟HTTP/2

https://www.cnblogs.com/chenyishi/p/17361557.html

本文介紹了.NET Core中使用HttpClient啟用HTTP/2和HTTP/3的方法和優勢。文章分別說明了如何設定DefaultRequestVersion和DefaultVersionPolicy選項,如何在HttpRequestMessage範例上設定Version和VersionPolicy屬性,以及如何在SocketsHttpHandler類上開啟EnableMultipleHttp2Connections屬性。文章還提到了.NET 6中HTTP/3的預覽功能。文章的內容涉及網路程式設計、效能優化和新技術的應用。

C# 手寫識別方案整理

https://www.cnblogs.com/kybs0/p/17361589.html

本文介紹瞭如何在.NET Core中使用書寫識別的方案。文章首先給出了官網的案例,並指出了輸出準確度不高的問題。然後,文章結合作者的開發經驗,提供了一個書寫識別的程式碼範例,並說明了需要參照的名稱空間和DLL檔案。文章最後給出了一個參考連結,介紹了C# vs2012中如何實現手寫識別。文章的內容涉及.NET Core、HttpClient、書寫識別等技術主題。

【Dotnet 工具箱】JIEJIE.NET - 強大的 .NET 程式碼混淆工具

https://www.cnblogs.com/dotnet-box/p/17360983.html

IEJIE.NET 是一個使用 C# 開發的開源 .NET 程式碼加密工具。很多 .NET 開發人員擔心他們的軟體被破解,版權受到侵犯,所以他們使用一些工具來混淆 IL 程式碼。比如 PreEmptive dotfuscator, 但有些場景的需求,是這些工具不能滿足的。所以作者寫了 JieJie.NET,它可以深度加密.NET程式集,幫助大家保護版權。重要的是,這個工具是開源的。

記一次 Windows10 記憶體壓縮模組 崩潰分析

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

在給各位朋友免費分析 .NET程式 各種故障的同時,往往也會收到各種其他型別的dump,比如:Windows 崩潰,C++ 崩潰,Mono 崩潰,真的是啥都有,由於基礎知識的相對缺乏,分析起來並不是那麼的順利,今天就聊一個 Windows 崩潰的核心dump 吧,這個 dump 是前幾天有位朋友給到我的,讓我幫忙看一下,有了dump之後上 windbg 分析。

自學C#,要懂得善用MSDN

https://www.cnblogs.com/chingho/p/17349305.html

很多初學者學習程式設計,都會通過看別人寫的教學、或者錄製的視訊,來學習。

這是一個非常好的途徑,因為這個是非常高效的。

但是這樣,存在兩個問題:

1、教學不夠全面:任何再好的教學,都無法囊括所有的知識點,更多是講解部分精髓而已;

2、無法掌握學習方法:很多教學都是教你如何使用,但是沒有教你如何學習,如何掌握自學方法。

針對以上問題,我首推大家要懂得善用MSDN。

.NET Web入門到高階路線(新版本)

https://www.cnblogs.com/hejiale010426/p/17349394.html

本文總結了學習.NET Web開發技術的從入門到高階的路線圖,包括簡單的C#和.NET基礎知識,常用的ORM、關係型資料庫中介軟體等等方面。

C# 非同步進階— 自定義 TaskSchedule(三)

https://www.cnblogs.com/aoximin/p/17324471.html

本文介紹瞭如何使用TaskThreadPool類實現一個自定義的執行緒池,用於控制task的排程和執行。文章首先建立了一個執行緒安全的佇列,用於儲存task,並使用Semaphore實現了等待和通知的機制。然後建立了指定數量的執行緒,每個執行緒從佇列中取出task並執行。最後,文章提供了一個Dispose方法,用於釋放資源和停止執行緒。文章還簡要介紹了Semaphore的作用和原理。

.NET使用nacos設定,手把手教你分散式設定中心

https://www.cnblogs.com/raok/p/17348508.html

Nacos是一個更易於構建雲原生應用的動態服務發現、設定管理和服務管理平臺。

這麼優秀的分散式服務管理平臺,怎麼能不接入呢?

nacos的安裝和使用這裡就不細說了,可以參考網上教學和官方檔案。https://nacos.io/zh-cn/docs/quick-start.html

我們以建立一個webapi專案為例手把手教你使用Nacos進行設定管理和服務註冊

主題

【英文】microsoft/SqlScriptDOM:ScriptDOM/SqlDOM 是一個用於解析 T-SQL 語句和與其抽象語法樹互動的 .NET 庫

https://github.com/microsoft/SqlScriptDOM

【英文】釋出 11.0.0 預覽 7 · AvaloniaUI/Avalonia

https://github.com/AvaloniaUI/Avalonia/releases/tag/11.0.0-preview7

【英文】ReSharper and Rider 2023.1.1 - 錯誤修復在這裡 | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/04/27/resharper-and-rider-2023-1-1-bug-fixes/

【英文】.NET Framework 2023 年 4 月累積更新預覽更新 - .NET 部落格

https://devblogs.microsoft.com/dotnet/dotnet-framework-april-2023-cumulative-update-preview-updates/

【英文】釋出 v7.0.4 · npgsql/npgsql

https://github.com/npgsql/npgsql/releases/tag/v7.0.4

加入 .NET 團隊參加 Microsoft Build 2023!- .NET 部落格

https://devblogs.microsoft.com/dotnet/microsoft-build-2023-and-dotnet/

文章、幻燈片等

【日文】在外部檔案中定義 Semantic Kernel 的技能並載入

https://zenn.dev/microsoft/articles/semantic-kernel-2

【日文】在 C# 上嘗試使用 Azure OpenAI 服務的 Semantic Kernel

https://zenn.dev/microsoft/articles/semantic-kernel-1

【日文】通過程式碼獲取主題的實際顏色等(C# / WinUI 3)

https://zenn.dev/shinta0806/articles/theme-property

【英文】探索 Visual Studio 中的 JavaScript 和 TypeScript 開發 - Visual Studio 部落格

https://devblogs.microsoft.com/visualstudio/exploring-javascript-and-typescript-development-in-visual-studio/

【英文】Rider 2023.1 中的 HTML、XML、JSON 和 JWT 視覺化工具 | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/04/27/html-xml-json-and-jwt-visualizers-in-rider-2023-1/

【英文】使用 JetBrains Rider 進行遠端開發 | .NET 工具部落格

https://blog.jetbrains.com/ja/dotnet/2023/04/10/remote-development-with-jetbrains-rider/

【英文】如何用一個簡單的控制檯訊息儲存我的生產資料庫

https://dev.to/vanenshi/how-i-saved-my-production-database-with-one-simple-console-message-4fjm

【英文】為 Supabase 建立一個 Dapr 可插入元件

https://dev.to/diagrid/creating-a-dapr-pluggable-component-for-supabase-32kj

【英文】ASP.NET Core Minimal APIs 簡介 | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/04/25/introduction-to-asp-net-core-minimal-apis/

【英文】使用 Elastic APM / RUM agent 將 .Net 應用程式跟蹤傳送到 Elasticsearch

https://medium.zenika.com/send-net-application-traces-to-elasticsearch-using-elastic-apm-rum-agent-d7ff111b1ef

【英文】可觀察性 .NET & OpenTelemetry Collector

https://dev.to/kim-ch/observability-net-opentelemetry-collector-25g1

【日文】.NET MAUI中Ctrl+Enter等鍵盤事件處理的困難 - Qiita

https://qiita.com/selfstudy/items/d0f9520d3b40f8946d36

【英文】將字串轉換為 .NET 物件 - IParsable 和 ISpanParsable

https://csharp.christiannagel.com/2023/04/14/iparsable/

【英文】使用 Coyote 為 C# 程式提供工業級可控並行測試 - Microsoft Research

https://www.microsoft.com/en-us/research/publication/industrial-strength-controlled-concurrency-testing-for-c-programs-with-coyote/

【日文】讓我們學習 .NET - Azure - YouTube

https://www.youtube.com/live/g5KIYx6p8Ek

【英文】開始在 .NET 中使用 OpenAI - .NET 部落格

https://devblogs.microsoft.com/dotnet/getting-started-azure-openai-dotnet/

【日文】Windows App SDK 1.3 中的 System Backdrop 設定和 AppWindow 使用變得更簡單 - しばやん雑記

https://blog.shibayan.jp/entry/20230425/1682412792

【英文】你知道你的 API 發生了什麼嗎?使用 AppMetrics 收集 ASP.NET Core API 指標。

https://medium.com/@milwojarski/do-you-know-what-is-going-on-with-your-api-collect-asp-net-core-api-metrics-using-appmetrics-f5efa2cf050d

【英文】使用 C# 範例的 Redis 鍵空間通知

https://dev.to/sayganov/redis-keyspace-notifications-with-a-c-example-2ahp

【日文】WPF 與 WinUI 3 功能對比表

https://zenn.dev/shinta0806/articles/wpf-vs-winui3

【日文】關於 HTTP/2 和 gRPC 的常見誤解。- ねののお庭。

https://blog.neno.dev/entry/2023/04/22/190510

【日文】與 HttpClientFactory 成為朋友:一個輕鬆升級 .NET 中的 HttpClient 遊戲的指南

https://medium.com/@longeardev/making-friends-with-httpclientfactory-a-chill-guide-to-upgrading-your-httpclient-game-in-net-f4cef3f72a63

【日文】[C#] 探討 EnumerateFiles() 的例外處理的最佳方法 - Qiita

https://qiita.com/hqf00342/items/3707ab2bf5f480ec41f8

【英文】使用 Vault .NET 使用者端庫探索 HashiCorp Vault

https://dev.to/berviantoleo/exploring-hashicorp-vault-with-vault-net-client-library-194n

版權宣告

由於筆者沒有那麼多時間對國內的一些文章進行整理,歡迎大家為《.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,歡迎大家加入。