.NET週報【11月第3期 2022-11-22】

2022-11-24 12:02:14

國內文章

.NET Conf China 2022 第一批講師陣容大揭祕!整個期待了!

https://mp.weixin.qq.com/s/4p89hhBPw6qv-0OB_T_TOg

目光看過來 2022年12月3-4日,一場社群性質的國內規模最大的 線上線下.NET Conf 2022技術大會 即將盛大開幕。目前大會正緊鑼密鼓地進行中,第一批大咖講師及主題已確定,小編迫不及待想和大家分享。

如何像使用AspNetCore中的Controllers 和 Actions一樣處理MQTT訊息

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

在物聯網專案中, 處理MQTT的topic時費工費力, 程式碼一團亂, 什麼才是最好的姿勢?這裡面我們極力介紹 MQTTnet.AspNetCore.Routing 專案,這個元件是通過MQTTnet 實現了定義控制類和屬性來路由處理訊息的topic , 就像Asp.Net Core 的WebApi 寫法一樣簡單容易。

客製化ASP.NET Core的身份認證

https://www.cnblogs.com/jackyfei/archive/2022/11/15/16879926.html

在本章,我們將學習如何客製化ASP.NET Core認證機制。微軟把安全認證當做ASP.NET Core框架的一部分,足以看見它是應用程式非常最重要的內容。在文將介紹如何客製化ASP.NET Core認證UI的基本實現,以及如何向IdentityUser新增自定義資訊。

從 WinDbg 角度理解 .NET7 的AOT玩法

https://www.cnblogs.com/huangxincheng/archive/2022/11/16/16895110.html

前幾天 B 站上有位朋友讓我從高階偵錯的角度來解讀下 .NET7 新出來的 AOT,畢竟這東西是新的,所以這一篇我就簡單摸索一下。

C#多執行緒(三)執行緒高階篇

https://www.cnblogs.com/xiaolipro/archive/2022/11/15/16891311.html

拋開死鎖不談,只聊效能問題,儘管鎖總能粗暴的滿足同步需求,但一旦存在競爭關係,意味著一定會有執行緒被阻塞,競爭越激烈,被阻塞的執行緒越多,上下文切換次數越多,排程成本越大,顯然在高並行的場景下會損害效能。在高並行高效能且要求執行緒安全的述求下,無鎖構造(非阻塞構造)閃亮登場。

.Net Core 實現WebSocket Server 的另外三種方式

https://mp.weixin.qq.com/s/8kXURygrPDmRi2mGcGt5nQ

之前已經寫過關於《WebSocket 原生socket實現》和《.Net Core WebSocket 伺服器端與使用者端完整範例》以及《基於.Net TcpListener 實現 WebSocketServer 通訊》。本文介紹了實現WebSocket Server 的另外三種方式。

C# 11:介面中的靜態抽象成員

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

本文介紹了C# 11中的新特性,在介面中支援靜態抽象成員以及它的使用方法和樣例程式碼。

聊聊FASTER和程序內混合快取

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

本文簡單的體驗了微軟FASTER KV Store,進行效能測試和解讀了官方論文的效能資料,並給出了FASTER是否可以作為程序內混合快取的可能性。

使用Jupyter記事本記錄和製作.NET視覺化筆記

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

對於記錄筆記的工具特別多,不過對於程式設計師來說,記錄筆記+程式程式碼+執行結果演示可以同時存在,無疑會極大增加我們的筆記的可讀性和體驗感。以前在寫python的時候,使用jupyter的體驗很好,所以此處做一個基於jupyter的記錄C#程式碼的筆記簡易教學,供大家圍觀。

使用BeetleX.MQTT構建服務

https://mp.weixin.qq.com/s/8ucY869v4mxFO4DAgx7f8g

已經有很長一段時間沒有寫程式碼,為了不讓自己的程式碼技能有所下降所以針對BeetleX擴充套件了一個MQTT協定來保持自己的程式碼設計和編寫能力。接下來簡單介紹一下如何使用BeetleX.MQTT來構建對應的TCP或WebSocket服務。

【賞析】.NET跨平臺框架-Avalonia UI

這是Avalonia UI官方的一個Demo,站長對部分Nuget包進行了升級,網友【小飛機MLA】對Linux版本修復了字型Bug得以正常執行、演示。

https://mp.weixin.qq.com/s/0MWOq8EznrzzK269phsKnw

主題

Fleet公開預覽版中的C#支援 | .NET工具部落格

https://blog.jetbrains.com/dotnet/2022/11/17/csharp-support-in-fleet/

Fleet中的C#支援現已進入公開預覽階段。

與Rider一樣,實現是基於ReSharper的,但不支援Xamarin或Unity,所以Rider和Fleet將在可預見的未來共存。 在.NET支援下,Rider和Fleet將暫時共存。 作為一個限制條件,在.NET 5或更高的版本中。

支援的功能包括程式碼分析、導航、名稱重構、程式碼完成、模板、格式化、檔案彈出、應用程式設定和執行、偵錯包括斷點。

文章還談到了實現支援的步驟和未來計劃。

宣佈.NET虛擬單體庫 - 問題#241 - dotnet/announcements

https://github.com/dotnet/announcements/issues/241

.NET虛擬單體資源庫,是一個映象和收集構建.NET所需的一切的資源庫。

.NET產品的構建是由許多儲存庫組成的,這使得微軟以外的任何人都很難複製構建,並增加了構建和釋出基礎設施的複雜性,其目標是簡化構建和運輸過程,並使其對社群透明。 儲存庫的目的是簡化構建和運輸,並對社群透明。

ASP.NET Core到底有多快?

https://dusted.codes/how-fast-is-really-aspnet-core

一篇深入探討最近關於ASP.NET Core效能的TechEmpower Benchmark結果的文章,其中吹捧了它的速度,以及相應的程式碼是什麼樣子。

基準程式碼包括僅使用Kestrel和最小部件編寫的 "平臺"、使用ASP.NET Core中介軟體的 "微型 "和甚至使用Razor模板引擎的 "完整",每個實現都被討論和推廣。平臺,但是否可以說它 "比其他語言/平臺更快"。

Git Action:自我託管的執行器現在支援Windows ARM64 - 問題#616 - github/roadmap

https://github.com/github/roadmap/issues/616

GitHub Actions 的自我託管執行器現在支援 Windows ARM64 環境。

宣佈Oracle對.NET 7的支援 - Alex Keh - Medium

https://medium.com/@alex.keh/announcing-oracle-support-for-net-7-c011b0dc4558

ODP.NET Core現在支援.NET 7。

NuGet軟體包3.21.80版本或更高版本支援Oracle資料庫11g Release 2(11.2.0.4)或更高版本。

Visual Studio 2022 版本 17.4.1 - Visual Studio 2022 發行說明 | Microsoft Learn

https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes

Visual Studio 2022的17.4.1版本已經發布。

它修復了ML.NET Model Builder、整合終端螢幕閱讀器的問題,以及在Linux上開啟.NET 7核心轉儲時的崩潰。

VS Git多庫支援已釋出!

https://devblogs.microsoft.com/visualstudio/multi-repository-support-released/

一篇解釋Visual Studio 2022 17.4中釋出的Git的多倉庫支援的文章。

多資源庫支援允許你在開啟一個解決方案的同時處理多個資源庫。 由於效能的限制,目前可以同時處理的儲存庫的數量限制在10個。

文章介紹了跨多個倉庫的分支管理、變更跟蹤、推播以及Git倉庫的設定,如Fetch時是否啟用Prune。

Visual Studio中用於ASP.NET Core專案的開發隧道的公開預覽 - Visual Studio部落格

https://devblogs.microsoft.com/visualstudio/public-preview-of-dev-tunnels-in-visual-studio-for-asp-net-core-projects/

關於可在Visual Studio中用於ASP.NET Core開發的dev tunnels公開預覽的文章。

"dev tunnel "是一種提供從網際網路到本地環境的隧道(埠轉發)的服務。 它已經從一個私人預覽變成了公開預覽。
這篇文章描述瞭如何啟用隧道,如何設定它以用於偵錯啟動,以及自最初發布以來的變化。

未來的路線圖是增加諸如永續性URL、隧道管理和各種UI的內容。

Visual Studio 2022效能提升17.4 - Visual Studio部落格

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-performance-enhancements-17-4/

一篇關於Visual Studio 2022 17.4中效能改進的介紹性文章。

  • 按資料夾搜尋
  • 更快地編制C++專案的索引
  • 在Git分支切換過程中,減少了解決方案的重新載入
  • .NET中設定切換時的響應性
  • 單元測試
    • 平行測試探索
    • 高效的並行測試執行
    • 優化了Visual Studio和測試執行器程序之間的通訊
  • 提高了檔案儲存的響應速度

釋出版本 v2.50.0 - grpc/grpc-dotnet

https://github.com/grpc/grpc-dotnet/releases/tag/v2.50.0

grpc-dotnet 2.50.0已經發布。

在這個版本中沒有重大的功能變化,主要是一些錯誤的修復。

.NET框架程式集支援新增到Azure Logic Apps(標準)XSLT轉換中(預覽)。

https://techcommunity.microsoft.com/t5/integrations-on-azure-blog/net-framework-assembly-support-added-to-azure-logic-apps/ba-p/3669120

在Azure Logic Apps(標準)XSLT轉換中增加了對.NET框架元件的支援。

文章、幻燈片等

.NET 7.0對動態PGO的效能改進是令人難以置信的 | Petabridge

https://petabridge.com/blog/dotnet7-pgo-performance-improvements/

關於.NET 7的DynamicPGO與Akka.NET效能改進的文章。

試用.NET 7中引入的內建容器支援 - 銀光和藍天

https://tech.tanaka733.net/entry/2022/11/builtin-container-support

關於.NET 7中內建容器支援的文章(從dotnet釋出中構建容器映象)。

這篇文章解釋瞭如何實際使用它,各種設定和限制。

用.NET NativeAOT編寫一個OBS外掛

https://sharovarskyi.com/blog/posts/dotnet-obs-plugin-with-nativeaot/

關於用.NET 7的NativeAOT編寫OBS外掛的文章。

它實現了一個例子,即為OBS外掛匯出一個帶有UnmanagedCallersOnly的函數,並在它作為外掛載入時進行記錄。

在同一事務中一起使用Entity Framework Core和Dapper - Qiita

https://qiita.com/jun1s/items/212a95b73e68625a3674

關於在一起使用Entity Framework Core和Dapper時處理事務和連線的文章。

.NET現在被IBM Power支援,試試吧 - Qiita

https://qiita.com/tom_m_m/items/9a729f462c0622a5ece3

關於安裝和執行64位元IBM Power(ppc64le)的文章,.NET 7中支援該功能。

HashSet vs SortedSet in C# - Code Maze

https://code-maze.com/csharp-hashset-vs-sortedset/

文章總結了 "HashSet<T>"和 "SortedSet<T>"之間的區別,它們的特點和效能差異。

如何在沒有[授權]的情況下啟用 - Qiita

https://qiita.com/mkuwan/items/bd5ff882108998d76dca

關於如何通過後退授權策略統一指定`Authorize'屬性,而不是將其指定給控制器或方法的文章。

C#的安全靜態程式碼分析器的快速比較

https://dev.to/dbalikhin/a-quick-comparison-of-security-static-code-analyzers-for-c-2l5h

文章比較了C#靜態程式碼安全分析工具。

文章比較了CodeQL、SonarCloud、Semgrep、安全程式碼掃描和Snyk程式碼等工具針對樣本程式碼的執行結果。 其他方面,如速度、IDE支援和價格也進行了比較。

BlazorBindings.Maui - Preview 10

https://dev.to/dreamescaper/blazorbindingsmaui-preview-10-5c35

關於BlazorBindings.Maui for MAUI forked from MobileBlazorBindings的預覽10的文章。

對.NET 7的支援,導航的改進,外殼屬性,元件生成器的改進等。

斷言範圍,你不知道你需要的FluentAssertions功能

https://dev.to/this-is-learning/assertion-scopes-the-one-fluentassertions-feature-you-didnt-know-you-needed-4pn

一篇關於斷言分組機制的文章,稱為FluentAssertions中的斷言範圍。

在一個斷言範圍內失敗的斷言可以被分組並報告(因此,如果一個斷言失敗,後續的斷言也被執行)。

如何在.NET中繪製2D圖形 MAUI的GraphicsView

https://dev.to/syncfusion/how-to-draw-2d-graphics-in-net-mauis-graphicsview-daj

關於如何在.NET MAUI中建立一個繪製2D圖形的檢視的文章。

GraphicsView和Microsoft.Maui.Graphics可以用來繪製形狀等。

面向.NET開發者的LiteDB介紹:包含WebApp Demo

https://platform.uno/blog/intro-to-litedb-for-net-developers-sample-webapp-included/

介紹LiteDB,一種適用於.NET的NoSQL資料庫,並使用它實現一個Uno平臺的範例應用程式。

C#11的必要成員 - NDepend

https://blog.ndepend.com/c-11-required-members

關於C#11中 "required"(必填)成員的文章。

文章介紹了用法、限制以及何時有用。

用Visual Studio管理模板(ADMX)啟用組策略設定 - Visual Studio部落格

https://devblogs.microsoft.com/visualstudio/enable-group-policy-settings-with-visual-studio-administrative-templates-admx/

關於使用Visual Studio管理模板來啟用組策略設定的文章。

EF Core 7來了 - 歡迎鍵入實體ID