.NET週刊【10月第3期 2023-10-22】

國內文章

.NET 8 RC 2 發佈,將在11月14日發佈正式版

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

微軟於2023年10月10日發佈了.NET 8 RC 2,預計在下個月的Net Conf 2023期間正式發佈.NET 8。.NET 8的所有主要新功能已經推出,開發團隊將在接下來的一個月內主要專注於改進功能和修復錯誤。此外,Tiobe編程語言排行榜顯示,C#的上升趨勢明顯,預計在大約兩個月內將超過Java。.NET團隊還在官方博客上發佈了一系列文章,介紹.NET 8框架以及相關的ASP.NET Core、MAUI、EF Core、Visual Studio 2022 17.8的功能特性。

OpenTelemetry學習筆記-Trace

https://mp.weixin.qq.com/s/X-aiCMaVIzcz0lSM22jpfQ

文章是關於OpenTelemetry的學習筆記,主要介紹了以下內容:

  • OpenTelemetry是一個可觀測性的框架和工具包,目的是創建和管理遙測數據,如traces、metrics和logs。
  • OpenTelemetry有兩個重要的優勢:你可以擁有自己生成的數據,而不是被專有數據格式或工具;你可以學習一組API和約定。
  • OpenTelemetry中trace表示一組有序的事件,描述了分佈式系統中一個操作的生命週期。每個trace由一系列的span組成,每個span描述了一個子任務或步驟。
  • OpenTelemetry中resource描述了程序正在消費的物理和虛擬信息結構,包括一些基本信息和配置設置。
  • OpenTelemetry提供了一套通用的server attributes,用於描述服務端的屬性。

.NET靜態代碼織入——肉夾饃(Rougamo)發佈2.0

https://www.cnblogs.com/nigture/p/17753498.html

"肉夾饃"是一種實現AOP的組件,主要特點是在編譯時完成AOP代碼織入,減少應用啓動的初始化時間,提高服務可用性,還能對靜態方法進行AOP。2.0版本推出了新功能,包括部分織入,用戶可以根據需要選擇使用的功能,避免無形中增加目標程序集的大小,提高運行效率。例如,如果只想在方法執行成功或失敗時執行日誌操作,不需要重寫參數、修改返回值或處理異常,可以通過重寫Features屬性來選擇使用到的功能。

.NET高性能開發-位圖索引(一)

https://www.cnblogs.com/InCerry/p/dotnet-bitmap-index-part-1.html

本文主要討論瞭如何使用.NET構建內存位圖索引優化搜索引擎計算速度。以機票搜索爲例,由於航班數據量大且實時變動,傳統數據庫無法滿足實時搜索需求。業界解決方案是將數據加載到內存進行計算,但如何在短時間內處理大量數據仍是挑戰。文章提出了使用位圖索引的方法,通過構建和使用位圖索引,可以優化搜索引擎的計算速度。文章還將深入討論位圖索引的性能,如何通過SIMD加速位圖索引的計算,以及構建高效的Bitmap內存索引庫等問題。

WPF 筆跡算法 從點集轉筆跡輪廓

https://www.cnblogs.com/lindexi/p/17758666.html

本文介紹了筆跡算法,這是一種基礎數學算法,可以將用戶輸入的點集(如鼠標軌跡點或觸摸軌跡點)轉換爲可在界面上繪製顯示的筆跡畫面。雖然本文以WPF的筆跡算法爲例,但其基礎數學計算理論上適用於任何支持幾何繪製的UI框架。文章從簡單到複雜描述了筆跡算法,包括最簡單的筆跡軌跡算法,即通過創建一條几何圖形(如折線)來構建筆跡軌跡。

【源碼解讀(一)】EFCORE源碼解讀之創建DBContext查詢攔截

https://www.cnblogs.com/1996-Chinese-Chen/p/17761733.html

本文主要講解了EFCore源碼的一些關鍵部分。首先,文章解釋了AddDbContext的作用,它是EFCore提供的幾種擴展方法之一,用於設置DbContext和DBContextOption的生命週期。如果DBContext的生命週期是單例,Option的生命週期也應設置爲單例。如果設置Option的委託不爲空,那麼DBContext的構造函數必須有一個參數。此外,文章還介紹瞭如何在EFCore的服務中獲取Web注入的服務,攔截查詢的方式,使用緩存查詢方法提升性能,以及如何託管EFCORE的IOC容器等內容。

使用 OpenTelemetry 構建 .NET 應用可觀測性(4):ASP.NET Core 應用中集成 OTel

https://www.cnblogs.com/eventhorizon/p/17760641.html

本文介紹瞭如何在ASP.NET Core應用中集成OTel SDK,並使用elastic構建可觀測性平臺展示OTel的數據。elastic提供了一套完整的可觀測性平臺,並支持OpenTelemetry protocol (OTLP)協議。elastic apm部署相對複雜,可以參考elastic的官方文檔進行部署或直接購買elastic cloud。爲了方便學習,作者提供了一個elastic的docker-compose文件,包含了elasticsearch、kibana、apm-server和fleet-server等組件。啓動完成後,還需要一些配置才能啓用apm-server。

4款.NET開源的Redis客戶端驅動庫

https://www.cnblogs.com/Can-daydayup/p/17760613.html

本文推薦了四款.NET開源免費的Redis客戶端驅動庫。Redis是一個開源的NoSQL數據庫。NewLife.Redis是一個以高性能處理大數據實時計算爲目標的Redis客戶端組件,支持.NETCore/.NET4.0/.NET4.5。csredis是.NET Core或.NET Framework 4.0+的Redis客戶端,支持同步和異步客戶端。FreeRedis是基於.NET的Redis客戶端,支持.NET Core 2.1+、.NET Framework 4.0+以及Xamarin。StackExchange.Redis是一個基於.NET的高性能Redis客戶端,提供了完整的Redis數據庫功能支持,並且具有多節點支持、異步編程模型、Redis集羣支持等特性。此外,還介紹了DotNetGuide技術交流羣,提供.NET開發者分享自己優質文章的羣組和獲取更多全面的C#/.NET/.NET Core學習資料、視頻、文章、書籍,社區組織,工具和常見面試題資源。

.NET微服務系列之Saga分佈式事務案例實踐

https://www.cnblogs.com/linguicheng/p/17728458.html

本文主要分享了使用Wing進行Saga分佈式事務的實踐案例,以“跨行轉賬”爲例。假設有“中國農業銀行”和“中國工商銀行”的賬戶,需要從農業銀行轉賬1000元到工商銀行。這個過程被分爲兩個事務單元處理:1. 當前賬戶扣減1000元,定義一個事務單元的數據傳輸模型和實現類。如果事務策略是“向前恢復”,則只需實現“Commit”方法,否則還需實現“Cancel”方法。

.NET 8 候選版本 2 (RC2) 現已可用

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

".NET 8 候選版本 2 (RC2)已經發布,包含了許多ASP.NET Core的新改進。這是今年晚些時候發佈的最終.NET 8版本之前的最後一個候選版本,大部分計劃中的功能和更改都已包含在此版本中。新功能包括服務器和中間件的HTTP日誌擴展性和更新到IdentityModel 7x,API創作中的表單文件支持,SignalR的Typescript客戶端有狀態重新連接支持,以及Blazor的多項改進。要開始使用.NET 8 RC2中的ASP.NET Core,需要安裝.NET 8 SDK。如果在Windows上使用Visual Studio,建議安裝最新的Visual Studio 2022預覽版。如果使用的是Visual Studio Code,可以嘗試新的C# Dev Kit。"

Util應用框架 7.x 來了

https://www.cnblogs.com/xiadao521/p/Util-7x.html

Util是一個.Net平臺的應用框架,旨在提升中小團隊的開發能力。最新版本7.x與.Net最新穩定版本同步更新,代碼經過完全重寫,提升了模塊化程度,增加了對本地化、多租戶等需求的支持。Util使用NgZorro作爲UI基礎組件庫,封裝了NgZorro絕大部分組件,並對常用功能進行擴展。新版本還集成和封裝了Dapr微服務框架的幾個常見構造塊,並開發了基於Razor引擎的簡易代碼生成器。Util的所有項目發佈時會在Github和Gitee進行同步更新。

Bridge 橋接模式簡介與 C# 示例【結構型2】【設計模式來了_7】

https://www.cnblogs.com/hnzhengfy/p/SJMSLL_Bridge.html

本文介紹了橋接模式,這是一種結構型設計模式,通過將抽象與實現分離,實現松耦合。橋接模式可以使抽象和實現獨立擴展,不會相互影響。例如,學生和餐品可以看作兩個變化的類,老師就像橋接模式中的橋,學生想喫什麼套餐,可以通過老師來對應到具體的套餐類別。橋接模式的優點包括分離抽象接口及其實現部分,提高系統的可擴展性,減少子類的個數。但使用橋接模式會增加系統的理解與設計難度,且使用範圍具有一定的侷限性。在遊戲開發、網絡編程、圖形界面開發等場景中,橋接模式都有實際應用。

Semantic Kernel .NET SDK 的 v1.0.0 Beta1 發佈

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

Semantic Kernel(SK)是一個開源的SDK,將大型語言模型與流行的編程語言相結合,支持Java、Python和C#。它提供了添加內存和AI服務的連接器,支持來自不同提供商的插件,簡化了AI服務的集成。SK的.NET SDK的v1.0.0 Beta1已發佈,包括多項更改和改進,如將包和類從“技kill”重命名爲“插件”,添加對多個AI模型的支持,重構規劃器和內存配置等。如果需要從0.24版本升級到v1.0.0 Beta1,需要更新NuGet包和代碼。此外,本文還介紹瞭如何簡單地開始使用Semantic Kernel。

輕量通訊協議 --- MQTT

https://www.cnblogs.com/pandefu/p/17755762.html

本文介紹了MQTT(Message Queuing Telemetry Transport),這是一種輕量級的消息傳輸協議,常用於物聯網和傳感器網絡中的通信。MQTT的特點包括輕量級、發佈/訂閱模型、可靠性、持久會話、QoS(Quality of Service)和適應性。MQTT還提供了QoS機制,以確保消息的可靠傳遞。此外,文章還介紹了MQTTnet,這是一個開源的、基於MQTT的通信的高性能.NET庫。最後,文章介紹了Windows下的MQTT消息服務器的安裝使用,包括Mosquitto和EMQX兩種常見的MQTT服務器軟件。

Skywalking APM監控系列(一丶.NET5.0+接入Skywalking監聽)

https://www.cnblogs.com/GuZhenYin/p/17757705.html

本文主要介紹了Skywalking的使用和部署。Skywalking是一款分佈式鏈路追蹤組件,用於解決微服務架構中的問題,如服務故障定位、響應延遲原因分析、性能瓶頸定位等。Skywalking具有多種監控手段,支持多語言,輕量高效,模塊化,並提供優秀的可視化解決方案。文章還詳細介紹瞭如何通過Docker部署Skywalking和ES數據庫。

C#學習筆記--複雜數據類型、函數和結構體

https://www.cnblogs.com/TonyCode/p/17757597.html

本文介紹了C#的複雜數據類型,包括枚舉、數組和結構體。枚舉是整型常量的集合,可以方便表示對象的各種狀態,例如怪物的種類、玩家的動作狀態等。數組是存儲同一種特定變量類型的有序數據集合,可以是一維數組或多維數組。結構體是任意變量類型的數據組合成的數據塊。這些複雜數據類型在編程中有廣泛的應用,可以提高代碼的可讀性和可維護性。

Asp-Net-Core開發筆記:EFCore統一實體和屬性命名風格

https://www.cnblogs.com/deali/p/17751279.html

本文介紹瞭如何在C#和數據庫中實現命名風格的轉換。在C#編碼規範中,類和屬性使用大寫駝峯命名,而數據庫通常使用小寫蛇形命名。FreeSQL內置了命名風格轉換功能,可以實現PascalCase到snake_case的轉換。而EFCore沒有這個功能,需要我們自行實現。我們可以使用正則表達式來實現這個功能,寫一個擴展方法,該方法會在每個小寫字母/數字與大寫字母之間添加下劃線,並把整個字符串轉換爲小寫。然後,我們可以重寫DbContext的OnModelCreating方法,對錶名、列名、key、index的名稱做轉換。

使用Docker buildx 爲 .NET 構建多平臺鏡像

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

.NET團隊的博客介紹瞭如何使用Docker的buildx工具在.NET 7以上的平臺上構建多平臺鏡像。buildx是Docker的一個構建工具,可以快速、高效地構建Docker鏡像,並支持多種平臺的構建。用戶可以在單個命令中構建多種架構的鏡像,例如x86和ARM架構,而無需手動操作多個構建命令。buildx還支持Dockerfile的多階段構建和緩存,這可以大大提高鏡像構建的效率和速度。要使用buildx,需要Docker Engine版本號大於等於19.03。使用buildx構建跨平臺鏡像,需要先創建一個builder。然後,可以使用一條命令構建跨平臺鏡像。

Composite 組合模式簡介與 C# 示例【結構型3】【設計模式來了_8】

https://www.cnblogs.com/hnzhengfy/p/SJMLLL_Composite.html

本文介紹了組合設計模式,這是一種針對樹形結構的設計模式,所有節點實現同一接口,具有相同的操作,可以遍歷全部節點。組合模式通過樹形結構組合對象,表示部分和整體層次,屬於結構型模式,多用於遞歸。優點包括高層模塊調用簡單,節點自由,簡化了客戶端代碼。缺點包括葉子節點可能繼承不需要的方法,組合類的引用開銷可能大,需要運行時判斷特殊組件。適用場景包括客戶端可以忽略組合對象與單個對象的差異,以及對象層次具備整體和部分,呈樹形結構。最後,文章提供了一個代碼示例來解釋這個概念。

OpenSSL 生成 RootCA (根證書)並自簽署證書(支持 IP 地址)

https://www.cnblogs.com/aobaxu/p/17754721.html

本文介紹瞭如何在Ubuntu 22.04機器上生成HTTPS證書。首先,生成根CA的私鑰和證書。然後,爲特定IP(例如10.12.0.2)生成私鑰和證書請求文件。接着,創建證書擴展文件以確保簽名的證書能用作服務器身份驗證。最後,使用根CA的證書爲特定IP簽名證書。此外,還介紹瞭如何在Ubuntu、CentOS和Windows上信任根CA的證書,以及如何在ASP.NET CORE應用中使用生成的證書。

爲.NET打開新大門:OpenVINO.NET開源項目全新發布

https://www.cnblogs.com/sdflysha/p/20231015-sdcb-openvino-net.html

本文介紹了OpenVINO.NET開源項目的全新發布。OpenVINO是Intel開發的一款開源工具包,用於優化深度學習模型並進行推理部署,支持跨不同的Intel硬件平臺。然而,對於.NET世界來說,OpenVINO的C API並沒有一個合適且高質量的封裝,因此作者開發了OpenVINO.NET項目。使用OpenVINO.NET的最簡單方法是使用作者發佈的NuGet包,包括Sdcb.OpenVINO和Sdcb.OpenVINO.runtime.win-x64等。作者還發布了一個基於Linux的鏡像sdflysha/openvino-base,用於減輕部署壓力。

詳解.NET依賴注入中對象的創建與“銷燬”

https://www.cnblogs.com/tenleft/p/17766501.html

本文主要介紹了DI容器如何創建和銷燬對象。DI容器可以註冊類型並創建其實例,如果類型實現了IAsyncDisposable或IDisposable接口,DI容器還會在適當的時候調用對象的DisposeAsync或Dispose方法。文章詳細解釋了DI容器中類的三種生命週期:Singleton(單例)、Scoped(局部單例)和Transient(每次都創建新對象)。在ASP.NET CORE中,每次請求會創建一個Scope,生命週期爲Scoped的類在一次請求中只會創建一次。最後,文章深入探討了ServiceProvider類在對象創建和銷燬過程中的關鍵作用。

【分段傳輸】c#使用IAsyncEnumerable實現流式分段傳輸

https://www.cnblogs.com/1996-Chinese-Chen/p/17776939.html

本文主要討論了使用C#的IAsyncEnumerable和ajax實現流式傳輸的方法。在使用SSE進行流式傳輸時,存在連接獨佔和數據格式固定的問題。而使用C#的IAsyncEnumerable可以解決這些問題,但返回的數據是在之前返回的基礎上進行累加,需要自己處理。文章中提供了一個使用ajax實現的例子,通過監聽請求的進度,可以獲取到每一次寫了哪些東西,從而實現流傳輸。同時,羣友也提供了fetch的實現代碼。

VS Code C# 開發工具包正式發佈

https://www.cnblogs.com/Can-daydayup/p/17780747.html

微軟正式發佈了Visual Studio Code C#開發工具包,經過四個月的測試和調整,修復了350多個問題,並進行了300多項改進。C#開發工具包旨在提高在VS Code中使用C#的工作效率,它與C#擴展協同工作,打造了一個高性能、可擴展且靈活的工具環境。該工具包由一組VS Code擴展組成,提供豐富的C#編輯體驗、AI驅動的開發、解決方案管理和集成測試。C#開發工具包的發佈,提升了.NET的開發和工作效率。

Avalonia 實現視頻聊天、遠程桌面(源碼,支持Windows、Linux、國產OS)

https://www.cnblogs.com/shawshank/p/17761146.html

本文介紹了基於.NET Core的跨平臺UI框架Avalonia,它可以運行在任何支持.NET Core的平臺上,包括Windows和Linux等。作者以一個視頻聊天的Demo爲例,展示了Avalonia的應用,該Demo支持視頻聊天和遠程桌面功能。用戶可以向其他在線用戶發送視頻聊天或遠程桌面請求,接受或拒絕其他用戶的請求,開啓視頻聊天或遠程桌面連接,也可以主動斷開連接。該Demo的開發環境包括Visual Studio 2022,.NET Core 3.1和C#語言。

字符串 - 不可變性與駐留池

https://www.cnblogs.com/pandefu/p/17771369.html

本文主要討論了字符串的性能優化,特別是StringBuilder和字符串駐留池的使用。StringBuilder由於其可變性,可以在原地修改字符串,避免了頻繁的內存分配和回收,提高了性能。而字符串駐留池則是一種內存管理機制,它存儲了字符串字面值的唯一實例,減少了內存使用並提高了性能。字符串的不可變性使得多個字符串字面值可以共享相同的內存實例,節省內存。此外,字符串駐留池的存在還帶來了內存節省、性能提升、可靠性和代碼簡化等優點。

如何通過SK集成ChatGPT實現DotNet項目工程化?

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

本文介紹瞭如何實現智能助手服務的天氣插件。首先,我們需要了解SemanticKernel,它是一個SDK,將大型語言模型與傳統編程語言集成在一起。然後,我們需要在項目中添加IKernel,OpenAIOptions.Model和OpenAIOptions.Key。在項目中,我們還有一個plugins文件夾,這是提供的插件目錄。在BasePlugin目錄下,有一個識別意圖的插件。此外,config.json對應當前插件的一些參數配置,skprompt.txt則是當前插件使用的prompt。最後,我們需要注入IKernel。

[MAUI]深入瞭解.NET MAUI Blazor與Vue的混合開發

https://www.cnblogs.com/jevonsflash/p/17772897.html

本文介紹瞭如何在.NET MAUI中結合Vue進行混合開發,使得開發者可以使用熟悉的Vue語法,而無需重寫現有項目。文章詳細闡述瞭如何創建MAUI項目和Vue應用,並將Vue作爲MAUI的一部分,使得在MAUI項目中可以直接使用Vue。同時,Vue的漸進性特性使得開發者可以根據需要逐步使用其框架特性。此外,文章還介紹瞭如何使用element-ui組件庫,以及JavaScript和原生代碼的交互方式。

記一次 .NET某新能源檢測系統 崩潰分析

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

本文描述了一位朋友的程序偶爾會崩潰,作者使用WinDbg工具進行分析。通過命令!analyze -v,作者發現崩潰點異常,且異常狀態80000004在微軟官方文檔中顯示爲單步跟蹤造成,這是作者首次遇到的情況。儘管自動化分析的信息不盡人意,但作者根據經驗,查看了異常前的狀態,尋找新的線索。

通過 Radius 實現Dapr 雲原生應用程序開發協作

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

微軟Azure孵化團隊推出了名爲Radius的新開放應用程序平臺,這是一個開源項目,支持在私有云、Microsoft Azure和Amazon Web Services上部署應用程序。該團隊還推出了多個流行的開源項目,如Dapr、KEDA和Copacetic,這些都是雲原生計算基金會(CNCF)項目。Dapr是一個分佈式應用程序運行時,爲開發現代應用程序提供了新方法,可以安裝在任何可以運行Docker的計算機上。然而,基於Dapr開發的應用程序的構建、管理和運營存在挑戰。爲此,微軟Azure孵化團隊發佈了Radius,該平臺將應用程序置於每個開發階段的中心,重新定義應用程序的構建、管理與理解方式。

探究 - C# .NET 代碼混淆/加殼

https://www.cnblogs.com/magicMaQaQ/p/17702951.html

本文介紹瞭如何使用Obfuscar工具進行.NET代碼混淆。首先,通過NuGet在項目中安裝Obfuscar。然後,找到Obfuscar.Console.exe並將其複製到需要加密的文件夾中。最後,創建一個名爲Obfuscar.xml的文件,設置相關參數,如輸入路徑、輸出路徑和是否保留公共API等。通過這種方式,可以有效地保護.NET代碼,防止被輕易閱讀和修改。

IL編織器 - Fody

https://www.cnblogs.com/pandefu/p/17775991.html

"Fody"是一個用於.NET程序集的可擴展工具,它可以在構建過程中操縱程序集的中間語言(IL)。Fody通過可擴展的插件模型消除了大量需要了解MSBuild和Visual Studio的API的底層代碼。Fody使用Mono.Cecil和基於插件的方法在編譯時修改.NET程序集的IL,不需要額外的安裝步驟來構建,不需要部署運行時依賴項。此外,基於Fody庫,誕生了許多插件庫,如AutoProperties.Fody,PropertyChanged.Fody,InlineIL.Fody等,爲用戶提供了更多的功能和便利。

.NET開源簡單易用、內置集成化的控制檯、支持持久性存儲的任務調度框架 - Hangfire

https://www.cnblogs.com/Can-daydayup/p/17766499.html

本文介紹了.NET開源任務調度框架Hangfire。Hangfire是一個簡單易用的庫,可以在.NET應用程序中執行後臺的、延遲的和定期的任務,無需使用Windows服務或任務計劃程序。它具有簡單易用、可靠性強、高性能、擴展性好、持久化存儲、任務監控和多種任務類型支持等特點。Hangfire可以與Redis、SQL Server、SQL Azure和MSMQ集成,提供了多種持久化存儲方案。此外,Hangfire還提供了多種監控工具,可以實時查看任務的執行情況、錯誤信息、性能指標等。

Util應用框架Web Api開發環境搭建

https://www.cnblogs.com/xiadao521/p/17769405.html

本文主要介紹瞭如何使用Util應用框架開發項目,包括搭建開發環境和安裝Visual Studio企業版。首先,需要安裝Windows 10或以上版本的操作系統,然後下載並安裝Visual Studio企業版,過程中需要聯網。安裝完成後,需要重啓電腦。然後,打開Visual Studio,創建一個Web Api項目,以驗證Visual Studio是否安裝成功。在創建項目時,選擇ASP.NET Core Web API項目類型,框架選擇.Net 7.0。

C# 實現MD5加密

https://www.cnblogs.com/yangyongdashen-S/p/YiRenXiAn_CSharp_MD5.html

本文介紹了在C#中使用MD5進行數據加密的方法。MD5是一種hash算法,可以對任意長度的數據進行加密,生成固定長度的消息摘要,且加密結果不可逆。在C#中,可以使用MD5CryptoServiceProvider和MD5兩種類型進行MD5加密,但在.NET6及以上版本中,MD5CryptoServiceProvider已過時,建議使用MD5。加密後的數據可以通過BitConverter方法或循環字節數組轉成字符串的方式轉換爲32位數字和字母組成的字符串。此外,文件、圖片等其他數據也可以轉換成字節數組進行加密。完整的幫助類已上傳至Gitee,可供下載使用。

再學Blazor - 擴展方法

https://www.cnblogs.com/known/p/17766595.html

本文主要介紹了Blazor組件的擴展方法實現思路。擴展方法是C#類型添加新方法的一種方式,可以對任何類型進行擴展,只需新建一個擴展類型。擴展方法需要添加擴展類和方法,都必須聲明static修飾符,方法的第一個參數必須是擴展類型,並有this關鍵字。文章還介紹瞭如何擴展HTML元素和自定義組件,以及如何使用RenderTreeBuilder的原生方法。最後,文章提供了一個HTML元素擴展類的代碼示例,用於擴展HTML元素。

一款簡單漂亮的WPF UI - AduSkin

https://www.cnblogs.com/Can-daydayup/p/17778563.html

本文推薦了一款簡單漂亮的WPF UI庫——AduSkin。WPF是一個強大的桌面應用程序框架,用於構建具有豐富用戶界面的Windows應用。AduSkin是一款融合多個開源框架組件的WPF UI,爲個人定製的UI,可供學者參考和使用。在Nuget搜索"AduSkin"即可直接導包使用。更多項目實用功能和特性,可以前往項目開源地址查看。此外,該項目已被收錄到C#/.NET/.NET Core優秀項目和框架精選中。

主題

.NET 2023 年 10 月更新 – .NET 7.0.12、.NET 6.0.23 - .NET 博客

https://devblogs.microsoft.com/dotnet/october-2023-updates/

.NET 7 和 6 的 2023 年 10 月更新已發佈。

此版本包括多個錯誤修復和改進以及三個安全修復。

宣佈 .NET 8 候選版本 2 - .NET 博客

https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-rc2/

.NET 8 候選版本 2 已發佈。

  • .NET 庫包自述文件
  • MSBuild+ 基於 CLI 的簡單項目評估
  • SDK容器發佈:發佈到tar.gz存檔
  • .NET 的張量基元簡介

.NET 8 候選版本 2 中的 ASP.NET Core 更新 - .NET 博客

https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-rc-2/

關於使用 .NET 8 候選版本 2 更新 ASP.NET Core。

  • 服務器和中間件
    • HTTP 日誌記錄可擴展性
    • 更新到 IdentityModel 7x
  • API 編寫
    • 支持具有新表單綁定的表單文件
    • SignalR
    • 對 TypeScript 客戶端的狀態重新連接支持
  • Blazor
    • 與 Blazor Web Apps 的全球交互
    • Blazor WebAssembly 模板更新
    • 文件範圍@rendermode Razor指令
    • 增強的導航和表單處理改進
    • 當交互式服務器組件消失時連接斷開
    • 改進的表單模型綁定
    • 將 HttpContext 作爲級聯參數訪問
    • Blazor Web 應用程序中的持久組件
    • 將密鑰服務注入組件
    • 支持對話框取消和關閉事件
    • 錯誤頁面支持
    • 身份
    • Blazor 身份用戶界面
    • 單頁應用程序(SPA)
    • 從命令行運行新的 SPA 模板

EF Core 8 候選版本 2:EF8 中的較小功能 - .NET 博客

https://devblogs.microsoft.com/dotnet/announcing-ef8-rc2/

介紹 Entity Framework Core 8 候選版 2 的發佈以及 EF Core 8 中的新功能。

  • 哨兵值和數據庫默認值
  • 更好的執行更新和執行刪除
  • 更好地使用“IN”查詢
  • SQL Azure/SQL Server 中的數字行版本
  • 消除括號

在 .NET 8 候選版本 2 中宣佈 .NET MAUI:更高質量 - .NET 博客

https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-in-dotnet-8-rc-2/

關於 .NET 8 候選版本 2 中的 .NET MAUI 更新。

除了介紹此版本中的質量改進之外,文章還提到了針對 .NET 7 的 .NET MAUI 服務版本 8 的發佈以及與 Xcode 15 和 Android 14 的兼容性。

.NET Framework 2023 年 10 月安全和質量彙總更新 - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-framework-october-2023-security-and-quality-rollup-updates/

.NET Framework 的 2023 年 10 月安全修復程序和累積更新已發佈。

此版本不包含任何新的安全修復,但包含一些錯誤修復。

VMMap v3.4 - Microsoft 社區中心

https://techcommunity.microsoft.com/t5/sysinternals-blog/vmmap-v3-4/ba-p/3958601VMMap v3.4 已發佈。

VMMap是Windows上的內存分析工具。此版本還支持 .NET 6 到 8。

https://x.com/sysinternals/status/1714731087119675416?s=12

ASP.NET Core 8 中的性能改進 - .NET 博客

https://devblogs.microsoft.com/dotnet/performance-improvements-in-aspnet-core-8/

關於 .NET 8 候選發佈版 2 中的 ASP.NET Core 性能改進。

  • 服務器
    • Kestrel
    • HTTP.sys
  • 原生AOT
  • 請求委託生成器
  • 運行時 API
    • SearchValues
    • Span
    • FrozenDictionary
  • 其他
    • 正則表達式
    • 分析儀
    • 字符串生成器

Visual Studio 2022 17.8 預覽版 3 現已推出!- Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-8-preview-3-is-here/

Visual Studio 2022 17.8 預覽版 3 已發佈。

  • 生產力
    • Visual Studio更新通知
  • C++ 遊戲開發
    • 虛幻引擎宏說明符建議
    • 結構化診斷
  • 將 SQL Server Data Tools 從 MDS 3.0 升級到 MDS 5.0

Visual Studio 中的 F# 代碼修復大修 - .NET 博客

https://devblogs.microsoft.com/dotnet/overhauled-fsharp-code-fixes-in-visual-studio/

在 Visual Studio 中修復 F# 代碼的改進。

.NET Conf 2023 議程

https://www.dotnetconf.net/agenda

.NET Conf 2023 的時間表/會議列表已發佈。

https://x.com/dave_dotnet/status/1711432833594532083?s=12

發佈版本 v2.58.0 · grpc/grpc-dotnet

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

gRPC (grpc-dotnet) v2.58.0 已發佈。

此版本包括多個錯誤修復、調試改進以及從某些項目中刪除 .NET Standard 1.5。

文章、幻燈片等

使用 .NET MAUI 和 Evergine 構建 3D 應用程序和內容 - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-maui-3d-app-with-evergine/

介紹如何組合 .NET MAUI 和 Evergine 以在 .NET MAUI 應用程序之上託管 3D。

在 .NET 項目中使用 Stryker 進行突變測試

https://medium.com/@hamed.shirbandi/mutation-testing-with-stryker-in-net-projects-ff1f05ddce8f

瞭解如何使用 Stryker 在 .NET 項目中執行突變測試。

使用 Husky.NET 進行預提交掛鉤 - 在 Git 提交之前構建、格式化和測試您的 .NET 應用程序

https://www.code4it.dev/blog/husky-dotnet-precommit-hooks/

介紹如何使用 Git 提交掛鉤通過 Husky.NET 進行構建、測試、格式化等。

混合 C# 和 Rust - 互操作

https://fractalfir.github.io/generated_html/rustc_codegen_clr_v0_0_3_2.html

有關爲 Rust 開發針對 .NET 的後端的系列。本文涉及實現和考慮如何從 Rust 調用 .NET。

C# 中雙精度數的內存對齊

https://minidump.net/memory-alignment-of-doubles-in-c-1d13e3ce741

深入研究 .NET 中的雙精度(64 位浮點)數組內存對齊。

如何在 EF Core 中將 UTC 保存的日期和時間轉換並顯示爲 JST

https://zenn.dev/hat_kotap/articles/785960b233e5f0

如何使用 Entity Framework Core 和 PostgreSQL 在數據庫中存儲 UTC 日期和時間,並在顯示時將其顯示爲 JST。

Rider 2023.3 EAP 3:全局使用支持的改進等等。| .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/10/17/rider-2023-3-eap-3/

Rider 2023.3 EAP 3 已發佈。

此版本包括改進的對全局使用的支持、對無根容器的支持、改進的 HTTP 客戶端中的 JSON 請求正文完成、URL 路徑引用的自動代碼完成、AI 助手插件的更新等等。

.NET 8 中 Docker 映像的更新:探索 .NET 8 預覽版 - 第 10 部分

https://andrewlock.net/exploring-the-dotnet-8-preview-updates-to-docker-images-in-dotnet-8/

使用 .NET 8 更新的 Docker 映像的詳細說明。

RazorSlices - 使用 ASP.NET Core 最小 API 的 Razor 視圖

https://khalidabuhakmeh.com/razorslices-razor-views-with-aspnet-core-minimal-apis

引入 RazorSlices,它允許您通過最少的 API 使用 Razor,而無需依賴 ASP.NET Core MVC 或 Razor Pages。

更好地查看 Visual Studio 活動日誌

https://dev.to/karenpayneoregon/view-visual-studio-activity-logs-better-2id8

如何檢索和查看 Visual Studio 本身的活動日誌。

使用 Scrutor 改進 ASP.NET Core 依賴注入

https://dev.to/milanjovanovictech/improving-aspnet-core-dependency-injection-with-scrutor-48e3

如何使用 Scrutor 來處理 ASP.NET Core 的依賴注入,它擴展了 Microsoft.Extensions.DependencyInjection。

.NET Conf 2023 上的 Visual Studio 創新:節省時間 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visual-studio-innovations-at-net-conf-2023-save-the-date/

請注意,.NET Conf 2023 上將介紹 Visual Studio。

C# 13 的計劃

https://ufcpp.net/blog/2023/10/triage2023/

關於 C# 13 的最近分類。

將 Blazor 組件渲染爲字符串:探索 .NET 8 預覽 - 第 9 部分

https://andrewlock.net/exploring-the-dotnet-8-preview-rendering-blazor-components-to-a-string/

瞭解如何使用 .NET 8 中添加的 HtmlRenderer 將 Blazor 組件呈現爲字符串。

更新到預覽版 3 (VS 2022 17.8) 後,MSFT_VSInstance 類從 WMI 目錄中刪除

https://developercommunity.visualstudio.com/t/MSFT_VSInstance-class-removed-from-WMI-c/10489629#T-N10491300

關於從 Visual Studio 2022 17.8 Preview 3 中的 WMI 目錄中刪除 MSFT_VSInstance。要繼續使用它,您需要指定一個命名空間。

https://x.com/skitoy4321/status/1714857655154651192?s=12

Wrathmark:有趣的計算工作負載(第 1 部分)

https://ricomariani.medium.com/wrathmark-an-interesting-compute-workload-part-1-47d61e0bea43

按版本比較本機和 .NET JIT 性能。

庫、存儲庫、工具等。

microsoft/vs-dapr:在 Visual Studio 中查看、管理和診斷 Dapr 服務。

https://github.com/microsoft/vs-dapr

在 Visual Studio 中支持(查看、管理和診斷)Dapr 的擴展。

由於它正在開發中,目前尚未從 Visual Studio Marketplace 分發。

Cysharp/Utf8StringInterpolation:ZString 的後繼者;基於 UTF8 的零分配高性能字符串插值和 StringBuilder。

https://github.com/Cysharp/Utf8StringInterpolation

一個用於高效生成 UTF-8 字符串的庫,主要使用字符串完成表達式。

https://x.com/neuuecc/status/1711911200274153689?s=12

網站、文檔等

推文

https://x.com/chnasarre/status/1710940207950733496?s=12

image-20231024203434289

版權聲明

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

抽獎送書活動預熱!!!

感謝大家對我公衆號的支持與陪伴!爲慶祝公衆號一週年,抽獎送出一些書籍,請大家關注公衆號後續推文!

image-20230703203249615

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章