.NET週報【1月第2期 2023-01-13】

2023-01-15 12:00:23

國內文章

【ASP.NET Core】按使用者等級授權

https://www.cnblogs.com/tcjiaan/p/17024363.html

本文介紹了ASP.NET Core如何按照使用者等級進行授權。

在 C# 9 中使用 foreach 擴充套件

https://www.cnblogs.com/newbe36524/archive/2023/01/06/17018770.html

在 C# 9 中,foreach 迴圈可以使用擴充套件方法。在本文中,我們將通過例子回顧 C# 9 中如何擴充套件 foreach 迴圈。

MassTransit 知多少 | 基於StateMachine實現Saga編排式分散式事務

https://www.cnblogs.com/sheng-jie/archive/2023/01/02/17019926.html

本文介紹瞭如何通過MassTransit實現saga編排式分佈事務。

『 再看.NET7』讓json序列化體現多型

https://mp.weixin.qq.com/s/L3-vkd2e3mLPcopjUTEzfg

從System.Text.Json誕生,就在努力增加功能和提升效能,在.NET7中,又帶來了多型的適配。

『 再看.NET7』新的存取修飾符——file

https://mp.weixin.qq.com/s/sQQZuC2VLyvq8pNpfe6VJg

NET7到來時,C#11中新增了file存取修飾符。對,就是檔案的意思,file是隻能用來定義型別的存取修飾符,不能定義型別中的類成員,即使巢狀類也不可以。file是用來定義使用範圍最小的型別存取修飾符,只限於在當前檔案中,其他型別的成員記憶體取。

使用 .NET 標記遊戲地圖關鍵座標點

https://mp.weixin.qq.com/s/-aUlTsI2IzbMNrq94OHVgQ

本文以天涯明月刀 OL 遊戲的雲上之城探索玩法為例,介紹如何使用 .NET 在遊戲地圖中標記大量關鍵座標點。

.NET效能優化-使用RecyclableMemoryStream替代MemoryStream

https://mp.weixin.qq.com/s/fnWo-TcxgC_jepkC2ZQUPQ

今天給大家帶來的這個優化技巧其實就是池化MemoryStream的版本RecyclableMemoryStream,它通過池化MemoryStream底層buffer來降低記憶體佔用率、GC暫停時間和GC次數達到提升效能目的。

SqlServer 的主鍵索引真的是物理有序嗎?

https://mp.weixin.qq.com/s/wU5L1hWItRuV90tUAlUBow

最近在看 SQL SERVER 2008 查詢效能優化,書中說當一個表建立了聚集索引,那麼表中的行會按照主鍵索引的順序物理排列,這裡有一個關鍵詞叫:物理排列,如果不瞭解底層原理,真的會被忽悠過去,其實仔細想一想不可能實現嚴格的 物理排列 ,那對效能是非常大的損害,本篇我們就從底層出發聊一聊到底是怎麼回事。

SQLSERVER 居然也能調 C# 程式碼 ?

https://mp.weixin.qq.com/s/g-AmmPIeMsW7ja9pO-yzEg

前些天看到一個奇怪的 Function 函數,呼叫的是 C# 連結庫中的一個 UserLogin 方法,這就讓我產生了很大的興趣,眾所周知 SQLSERVER 是 C++ 寫的,那這裡的 C++ 怎麼和 C# 打通呢?而且 C# 是一門託管語言,需要 JIT 將其 native 化,這個 JIT 又在哪裡呢?帶著這些疑問一起研究下吧。

主題

【英文】paint.net 5.0 正式釋出!

https://forums.getpaint.net/topic/121643-paintnet-50-is-now-available/

Paint.NET 5.0已經發布。

這個版本包括對壓力檢測的支援,基於GPU的渲染和影象處理,一個新的效果外掛系統和各種效能的提升和改進。

它現在也使用.NET 7構建,傳統的C++/CLI程式碼已被TerraFX.Interop.Windows取代。 .

【英文】ReSharper 2023.1 路線圖 | .NET工具部落格

https://blog.jetbrains.com/dotnet/2023/01/10/resharper-2023-1-roadmap/

ReSharper 2023.1 路線圖。

  • 快捷方式方式修復
  • 過渡到程序外模型
  • 語法檢查
    • 從內建拼寫檢查器遷移到JetBrains Grazie
  • 單元測試自動化
  • 在地化
    • 簡體中文、日文、韓文
  • UX/UI重新設計
  • 其他
    • 網路開發
    • 更新對話

【英文】Rider 2023.1 路線圖 | .NET工具部落格

https://blog.jetbrains.com/dotnet/2023/01/10/rider-2023-1-roadmap/

Rider 2023.1的路線圖。

  • 設定同步外掛
  • 改進對Docker的支援
  • 資料庫模式比較
  • 遊戲開發
    • Unity
      • DOTS支援
    • 虛幻引擎
  • 語法檢查
    • 從內建拼寫檢查器遷移到JetBrains Grazie
  • 雜項
    • UI
    • 新的使用者介面調整
    • 在地化
      • 簡體中文、日文、韓文

【英文】domaindrivendev/Swashbuckle.AspNetCore 釋出v6.5.0版本

https://github.com/domaindrivendev/Swashbuckle.AspNetCore/releases/tag/v6.5.0

Swashbuckle.AspNetCore 6.5.0已經發布。

在這個版本中,.NET 7已經被新增到目標框架中,並且Swagger使用者介面已經被更新。

【英文】grpc/grpc 釋出v1.46.6版本

https://github.com/grpc/grpc/releases/tag/v1.46.6

gRPC 1.46.6(C-Core)已經發布。

該版本解決了zlib中的一個漏洞,並修復了幾個bug。

【英文】fluentassertions/fluentassertions 釋出v6.9.0版本

https://github.com/fluentassertions/fluentassertions/releases/tag/6.9.0

FluentAssertions 6.9.0已經發布。

增加了與TimeOnly相關的斷言方法和對型別、方法等。

文章、幻燈片等。

【日文】[C#] 在DateTime中顯示日本日曆 - Qiita

https://qiita.com/ikuzak/items/b0fa005d267041890ed6

如何像R(2021)那樣用日文字母格式化DateTime。

【日文】C#中的真正非同步IO

https://zenn.dev/k_taro56/articles/csharp-true-async-io

關於是否使用FileStream的非同步I/O,預設的useAsync設定為false,所以它不是非同步I/O。

【英文】Entity Framework Core 7中的繼承策略

https://medium.com/abp-community/inheritance-strategies-in-entity-framework-core-7-e0cfd42877a5

簡要介紹一下EF 7中支援的TPC(Tables per Concrete Type),作為Entity Framework Core中儲存繼承模型的一種方式,以及EF 7之前支援的TPH和TPT。

【英文】SQLitePCLRaw和開源的可持續性

https://ericsink.com/entries/sqlitepclraw_sustainability.html

維護SQLitePCLRaw(SQLite的本地繫結)的現狀、擔憂和好處。

【英文】用C#和Pidgin解析模板語言| Zach on Code

https://zachoncode.dev/blog/parsing-template-language-with-csharp-and-pidgin/

描述瞭如何使用解析器庫Pidgin實現模板語言。

【日文】ReactiveProperty v9.0.0的預釋出版本出來了!

https://zenn.dev/okazuki/articles/reactiveproperty-v9-0-0-pre1

描述了ReactiveProperty v9.0.0預釋出中的改進、重組和新類。

【英文】程序外ReSharper之路:非同步型別化 | .NET工具部落格

https://blog.jetbrains.com/dotnet/2023/01/05/resharper-out-of-process/

解釋了我們在將ReSharper移至與Visual Studio分開的程序中(程序外)執行時遇到的障礙和正在做的事情。

【日文】[點播] .NET大會2022年回顧活動東京~微軟日本社群活動之旅系列

https://info.microsoft.com/JA-ModApps-VDEO-FY23-12Dec-23-MKTO-FY23-dotnetconf-2022-Recap-Tokyo-Gated-video-SRGCM8691_LP01-

.NET大會2022年回顧活動東京會議的會議視訊,可按需觀看。

【日文】確定你是否不需要管理員許可權就能在C#中寫入資料夾 - Qiita

https://qiita.com/Alone-and-Slow/items/a2332bcb500051e19fbc

如何在Windows環境下檢查你是否有對一個資料夾的寫入許可權。

【英文】測試 ASP.NET Core FastEndpoints | Khalid Abuhakmeh

https://khalidabuhakmeh.com/testing-aspnet-core-fastendpoints

對使用FastEndpoints(一個建立在ASP.NET Core上的框架)時的單元測試的解釋。

【英文】在.NET 7中實現一個自定義設定提供者

https://medium.com/@gokerakce/implement-a-custom-configuration-provider-in-net-7-c0a195dcd05f

描述瞭如何在.NET 7中為Microsoft.Extensions.Configuration實現一個自定義設定提供者。

這篇文章實現了一個可以從SQL Server讀取和重讀數值的提供者。

【英文】如何為你的測試執行一次性資料庫。 用Testcontainers提高你的整合測試準確性

https://blog.genezini.com/p/how-to-run-disposable-databases-for-your-tests.-improve-your-integration-tests-accuracy-with-testcontainers/

描述瞭如何使用Testcontainers為你的單元和整合測試執行一次性的資料庫。

【英文】提高生產力的五個快捷鍵 - Visual Studio Blog

https://devblogs.microsoft.com/visualstudio/the-visual-studio-editor-can-do-that/

Visual Studio 提高生產力的五個快捷鍵

  • Ctrl+D: 複製一行
  • Ctrl+Shift+L: 刪除整個行
  • Shift+Alt+.: 選擇下一個相同的詞
  • Alt+選擇:方框(矩形)選擇
  • Alt+Ctrl+滑鼠點選:插入多個遊標

【英文】令人困惑的.NET偵錯程式:代理物件

https://washi.dev/blog/posts/debugger-proxy-objects/

描述了一種通過插入代理物件來欺騙反編譯器和相關偵錯程式的技術。

【日文】[C# 12候選] lambda表示式的預設引數和params引數 | UFCPP部落格

https://ufcpp.net/blog/2023/1/lambda-default/

關於在lambda表示式中允許預設引數和params引數的改進,這是C#12的一個候選功能。

【英文】Rider 2022.3中的語言注入改進|The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2023/01/12/language-injection-improvements-in-rider-2022-3/

對Rider 2022.3的語言注入改進的介紹。

支援原始字串字面,支援字串連線中的完成字串,支援LanguageInjection屬性,支援.NET 7中的StringSyntax屬性,等等。

【英文】偵錯編碼文字 - Visual Studio部落格

https://devblogs.microsoft.com/visualstudio/debugging-encoded-text/

對最新的Visual Studio預覽版中的偵錯程式文字視覺化器的介紹。

預覽中的文字視覺化器可以顯示編碼和解碼Base64和URL的結果,以及解碼JWT的結果。

【英文】從最小的API處理程式中提取後設資料:最小的API的幕後 - 第二部分

https://andrewlock.net/behind-the-scenes-of-minimal-apis-2-extracting-metadata-from-a-minimal-api-handler/

解釋瞭如何從作為處理程式傳遞給Minimal API端點的Delegate中提取後設資料,以及如何建立RequestDelegate。

開源庫、資料庫、工具等

【英文】jellyfin/jellyfin: 自由軟體媒體系統

https://github.com/jellyfin/jellyfin

一個建立在.NET上的媒體伺服器,如Emby或Plex。