.NET周刊【9月第3期 2024-09-15】

来源:https://www.cnblogs.com/InCerry/p/-/dotnet_week_24_9_3
-Advertisement-
Play Games

國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...


國內文章

關於.NET在中國為什麼工資低的分析

https://www.cnblogs.com/thinkingmore/p/18406244

.NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET Core,但市場接受度仍不高,主要應用於國有企業和傳統行業。與Java、Python相比,.NET在新興領域發展滯後,社區活躍度低,限制了開發者的技術更新和職業發展。此外,互聯網企業更偏好開源技術,.NET開發者在這些行業的需求和薪酬因而較低。儘管.NET技術演進提供了新機會,但市場對其反應較慢,雲計算和開源支持的挑戰依然存在。

.NET 9 的新亮點:AI就緒 ,擁抱她

https://www.cnblogs.com/shanyou/p/18405567

.NET 9 即將發佈,重點是簡化 AI 集成。開發人員可以使用 OpenAI、OSS 模型和 Azure SDK 構建智能應用。TensorFlow.NET 和 OpenAI SDK 均獲升級,支持高性能和實時處理。ONNX 運行時和 ML.NET 4.0 提供無縫 AI 模型操作,輔助代碼生成、NLP 工具、GPU 加速等提升了開發效率。ASP.NET Core 簡化了 AI 部署,新的數值 API 實現高效運算。性能監控和模型偏差檢測確保 AI 應用的可靠性和道德性。微軟在雲原生和 AI 領域的開放策略使 .NET 更強大。

超輕量級、支持插件的 .NET 網路通信框架

https://www.cnblogs.com/1312mn/p/18401867

TouchSocket 是一個輕量級、支持插件的網路通信庫,具有 TCP、UDP、SSL、RPC 和 HTTP 等功能。其 HTTP 伺服器支持 WebSocket 和其他擴展插件。TouchRPC 支持自定義協議,具備 SSL 加密和分散式調用等功能。基於 .NET 的 TouchSocket 支持多個版本和項目類型,提供相容多種框架模型的功能。項目特點包括改進的 IOCP 模式和強大的數據處理適配器,提高性能並解決數據粘包問題。使用 Nuget 可安裝 TouchSocket,並通過 TcpService 配置和管理客戶端連接。

.NET 9 中 LINQ 新增的功能

https://www.cnblogs.com/Can-daydayup/p/18405683

本文介紹了LINQ,.NET 9的安裝及其新增功能,尤其專註於雲原生應用和性能。說明如何在VS Code中創建.NET 9應用,並提供了CountBy、AggregateBy和Index方法的示例代碼。相關文章鏈接附於文末。

.NET 多版本 WinForm 開源控制項庫 SunnyUI

https://www.cnblogs.com/1312mn/p/18405542

SunnyUI.NET 是一個基於 .NET Framework 和 .NET 6、7、8 的開源 WinForm 控制項庫,提供豐富的控制項和多頁面開發框架,參考 Element 主題風格,支持多主題定製。支持國際化和多語言版本,可以使用 VS 2022 編譯,或通過 Nuget 安裝。控制項庫設計精細,包含主題管理組件,提供一致的視覺體驗。

使用 Microsoft.Extensions.ServiceDiscovery 進行服務發現並調用

https://www.cnblogs.com/kklldog/p/18403778/service-discovery

在現代微服務架構中,服務發現是關鍵功能,通過使用 Microsoft.Extensions.ServiceDiscovery 包,.NET 提供了實現服務發現的簡便方式。首先安裝相應的 NuGet 包,併進行依賴註入和配置預設 HTTP 客戶端。然後,在配置文件中定義服務端點,從而通過服務名進行 HTTP 調用,簡化微服務間的通信。此外,還可以配置多種負載均衡策略,如輪詢、隨機等,提升服務調用的效率和靈活性。總之,服務發現簡化了微服務間的調用過程,是實現微服務架構的重要組件。

dotnet 讀 WPF 源代碼筆記 從 WM_POINTER 消息到 Touch 事件

https://www.cnblogs.com/lindexi/p/18403860

本文介紹如何在 WPF 中通過 Win32 消息迴圈處理 WM_POINTER 消息以實現觸摸事件。文章分為兩部分,首先討論 Win32 程式中如何處理消息並獲取觸摸信息,然後說明 WPF 框架如何集成這些邏輯。文章詳細講述了三種處理消息的方式,並提供了代碼示例。方式1使用 ptPixelLocationRaw 欄位但精度較低;方式2使用 ptHimetricLocationRaw 欄位以提高精度,需要額外計算坐標轉換。代碼示例托管在 GitHub 和 Gitee 上,提供了獲取代碼的命令。

Entity Framework Plus: 讓 EF Core 開發如虎添翼

https://www.cnblogs.com/Can-daydayup/p/18411468

EF Core 是微軟推出的輕量化、跨平臺數據訪問技術,支持多種資料庫和LINQ查詢等功能。Entity Framework Plus 是其擴展庫,提供批量操作、查詢緩存、審計跟蹤等增強性能的特性。項目可通過 NuGet 包輕鬆集成,並包含多種優化功能如全局和實例查詢過濾器。GitHub 上提供項目源碼和線上文檔。

.NET 9 RC1 正式發佈,ASP.NET Core 得到完善

https://www.cnblogs.com/shanyou/p/18409073

.NET 9 RC1是即將發佈的候選版本,含WebSocket API增強、新壓縮選項與SignalR改進,並更新.NET MAUI。ASP.NET Core擁多項更新,如SignalR分散式跟蹤及WebSocket改進。新增功能簡化了AI模型部署,並具備平臺獨立性。HorizontalTextAlignment.Justify在.NET MAUI中實現文本水平對齊,增強了文本顯示。在Ubuntu和Fedora上改善ASP.NET Core HTTPS開發證書的信任。微軟繼續支持雲原生應用及性能優化,強調容器化和微服務架構,註重應用的擴展性和彈性。

淺談 C# 中的頂級語句

https://www.cnblogs.com/Can-daydayup/p/18409971

C# 9引入頂級語句,允許不顯式定義Main方法直接編寫代碼,使代碼更簡潔,適合簡單應用、腳本和演示。雖然降低了學習難度,提高了效率,但在大型項目中,傳統的代碼結構仍然必要。頂級語句在複雜項目中可能引發相容性問題。開發者應根據需求選擇使用哪種方式,傳統結構在大型項目中具備優勢。

C#整合Ollama實現本地LLMs調用

https://www.cnblogs.com/wucy/p/18400124/csharp-ollama

近年來AIGC迅速發展,模型多樣化、使用門檻降低。Ollama是一種開源的語言模型服務工具,支持多種大型語言模型,方便用戶在本地PC上實驗、管理和部署。Ollama簡化了模型使用的過程,不論是CPU還是GPU都可以使用,算力不足則處理較慢。安裝很簡單,可以通過官網下載或GitHub下載,安裝後可以設置環境變數來調整設置。常用命令包括列出、查看、下載和運行模型,以及通過HTTP介面調用服務。需要註意的是較大模型運行需要較高記憶體或顯存。Ollama適用於特定場景的推理任務,但不及商業模型如ChatGPT全面。

C#/.NET/.NET Core技術前沿周刊 | 第 4 期(2024年9.1-9.8)

https://www.cnblogs.com/Can-daydayup/p/18405238

本文是關於C#、.NET、.NET Core相關技術的概覽,包括最新文章、項目、學習資源和社區動態。重點介紹了Azure Developers - .NET Aspire Day 2024活動及其在雲開發中的應用。從.NET 9中移除了BinaryFormatter,並討論了ASP.NET Core中的防抖實現。還介紹了一些C#用戶控制項如流動管道和指示燈,以及使用Dependify工具處理.NET依賴關係。展示了一個.NET開源Git GUI工具和設計模式課程。Avalonia UI框架作為跨平臺UI解決方案被介紹,同時探討了Span和Substring如何提升.NET性能。最後,文章闡述了事務發件箱模式在雲原生開發中的應用,及musl libc與glibc在.NET應用中的相容性。

.NET 8 微軟免費開源的 Blazor UI 組件庫

https://www.cnblogs.com/1312mn/p/18404007

.NET 8 發佈了微軟開源的Blazor UI組件庫——Fluent UI Blazor。該庫為Web應用程式提供工具,確保與Microsoft產品一致的外觀。Fluent UI Blazor封裝了微軟官方Fluent UI組件,並提供額外功能,簡化開發流程。Blazor利用C#構建互動式Web應用,結合Fluent UI可創建現代UI。此庫專為ASP.NET Core Blazor設計,適用於.NET 8。若使用.NET 6或7,請選用Microsoft.Fast.Components.FluentUI的v3版本。Blazor支持SPA和Web服務開發,通過C#代碼操作HTML DOM,降低對JavaScript依賴。組件遵循Fluent設計,易於集成和定製,符合可訪問性標準。開發可通過GitHub源碼學習組件使用。

GitHub Copilot 典型使用場景實踐

https://www.cnblogs.com/edisonchou/p/-/github-copilot-real-practices-in-sewc

本文討論了GitHub Copilot在開發中的實用技巧。Copilot是一個由GitHub、OpenAI和Microsoft開發的AI工具,可在代碼編寫中提供建議和優化。對於.NET程式員,安裝方便且能快速提高效率。在使用中,Copilot能自動生成代碼、優化重覆代碼,並通過語義理解增強代碼質量。作者強調在團隊中使用統一提示詞以提高Code Review效率,並利用Copilot進行代碼翻譯,如從COBOL轉換為Python。此外,作者建議結合團隊的代碼標準文檔,讓Copilot遵循既定規範給出建議。

Entity Framework Plus: 讓 EF Core 開發如虎添翼

https://www.cnblogs.com/Can-daydayup/p/18411468

Entity Framework (EF) Core 是適用於 .NET 的開源對象資料庫映射器,支持多種資料庫和功能擴展。Entity Framework Plus 提高了 EF Core 的性能,提供批量操作、查詢緩存和審計跟蹤等功能。EF Plus 支持多版本的 EF,易於通過 NuGet 集成。文中詳細介紹了批量刪除、更新操作的代碼示例,以及查詢過濾器的應用方法。項目資源和文檔在 GitHub 上開源,並被納入 C#/.NET 優秀項目中。

.NET 開源的功能強大的人臉識別 API

https://www.cnblogs.com/1312mn/p/18406833

文章介紹了一款.NET開源的人臉識別API,名為FaceRecognitionDotNet。該項目基於Python的面部識別庫face_recognition,並使用OpenCVSharp和face_recognition開源庫。它提供跨平臺支持,包括Windows、Linux和macOS,具備預測年齡、情緒識別、性別判斷、臉部標記等功能。項目在GitHub上有1.2k星標,易於集成,提供NuGet包。文末鼓勵讀者點贊和參與技術交流。

.net core8 使用Swagger(附當前源碼)

https://www.cnblogs.com/cyzf/p/18410483

文章介紹了OverallAuth2.0許可權+可視化流程管理系統的搭建和優化過程。系統採用前後端分離模式,使用.net core web api。文章詳細描述瞭如何創建項目及優化Swagger的步驟,包括文件和類的創建、Swagger中間件的使用等。強調在控制器上添加路由和分組,確保系統正常運行並展示優化效果。最後,提供源代碼地址,並邀請讀者關註作者。

UWP 通過 .NET 9 和Native AOT 的支持實現 UWP 應用的現代化

https://www.cnblogs.com/shanyou/p/18412887

微軟正在預覽對 .NET 9 的 UWP 支持,以幫助開發者利用最新的 .NET 和 Native AOT 實現應用現代化。這為希望遷移到 Windows 應用 SDK 和 WinUI 3 的開發者提供了一條更好的路徑,通過分階段遷移降低風險,提升性能。儘管 UWP 已接近被微軟放棄,但通過更新底層代碼和消除對 .NET Native 的依賴,開發者可以在現有平臺上享受新功能。此更新吸引了許多傳統 UWP 開發者,不需全面遷移即可升級到 .NET 9。微軟提供的預覽版雖有粗糙之處,但預計將成為開發者首選的升級方式。

Redis 入門 - C#|.NET Core客戶端庫六種選擇

https://www.cnblogs.com/hugogoos/p/18409367

文章介紹了六款.NET系Redis客戶端庫:ServiceStack.Redis、StackExchange.Redis、CSRedisCore、FreeRedis、NewLife.Redis、BeetleX.Redis。ServiceStack.Redis以其豐富的功能和高性能著稱,但因商業性並非首選。StackExchange.Redis性能優越,支持多節點與集群。CSRedisCore保持與redis-cli一致,支持多種Redis功能。FreeRedis在記憶體使用和持久化方面有所改進,功能更為全面。文章通過代碼示例展示了各庫的基本用法。

全能還是專精?關於技術通才與技術專家的思考

https://www.cnblogs.com/wang_yb/p/18414129

在日新月異的IT行業中,技術和框架不斷更新,如前端的從jQuery到React、Vue,後端從靜態架構到雲和微服務。文章探討了在如此快速迭代的環境中,應該選擇成為通才還是專家。通才用廣泛的知識解決多領域問題,如喬布斯、馬斯克,而專家則在特定領域深入研究。合適的選擇取決於個人興趣和經驗,建議在興趣和經驗中找到平衡。無論選擇什麼,重要的是不斷學習和跨領域探索,不因困難放棄,通才和專家各有優勢。

C# 開源教程帶你輕鬆掌握數據結構與演算法

https://www.cnblogs.com/1312mn/p/18408107

《Hello演算法》是一本開源、免費且友好的數據結構與演算法入門教程,支持多種編程語言,包括C#。教程採用動畫圖解,內容易懂,並提供可一鍵運行的源代碼,幫助初學者理解演算法和數據結構。項目提倡互助學習,通過評論交流提升技能。教程可在GitHub上獲取,也提供線上閱讀和PDF下載。

推薦3款卓越的 .NET 開源搜索組件庫

https://www.cnblogs.com/Can-daydayup/p/18413806

.NET有多個優秀的開源搜索組件庫。Elasticsearch .NET提供強類型請求和響應,處理HTTP連接和重試。Lucene.NET是Java Apache Lucene的移植版,為.NET提供強大的搜索和分析能力。SolrNet是針對.NET的Solr客戶端庫,適合瞭解Solr的用戶。這些項目影響C#/.NET開發效率和質量,歡迎貢獻。

記一次 .NET某上位機視覺程式 卡死分析

https://www.cnblogs.com/huangxincheng/p/18413420

文章描述了一位朋友的窗體程式在客戶端發生卡死的情況。作者通過使用WinDbg分析dump文件來查找問題根源。分析過程中,作者利用!clrstack和!dso命令查找主線程和相關對象,發現是工作線程創建用戶控制項導致的問題,而該控制項與DevComponents有關。文章涉及對WindowsFormsSynchronizationContext的深入分析,嘗試找到創建控制項的具體線程,但只發現了主線程的同步上下文,沒有如預期的兩個上下文,顯示出dump分析的複雜性。作者強調了從線程棧的方法中尋找突破口的重要性,並簡化展示了System.Windows.Forms.Control.MarshaledInvoke方法的關鍵部分。

WPF 實現一個吃豆豆的Loading載入動畫

https://www.cnblogs.com/lvpp13/p/18412070

該文章介紹如何在.NET環境中使用expression.Drawing庫,創建一個無邊框透明視窗,應用圓弧控制項製作載入動畫。通過設置名稱空間和視窗樣式,實現漸變背景效果,使圓弧看起來像球體。然後在視窗中添加堆疊面板和多個圓形元素,並且使用Storyboard添加動畫效果,描述控制項的動態行為。

Redis 入門 - 收官

https://www.cnblogs.com/hugogoos/p/18412627

《Redis 入門》系列文章旨在幫助初學者系統學習Redis。作者通過回顧親身經歷,提供Redis基本信息、安裝方法、可視化工具和五大基礎數據類型等內容。文章還結合C#/.NET Core介紹了六款Redis客戶端庫的應用場景和使用方法,並封裝了一個簡單的客戶端庫Nuget以方便項目擴展。作者希望分享經驗,幫助他人避免踩坑,提升學習效率,並計劃繼續發佈《Redis 進階》系列。

.NET 的 Native AOT 現在是什麼樣的?

https://www.cnblogs.com/shanyou/p/18415013

.NET平臺一直在創新,特別是.NET Native AOT技術,這是一項前沿進步。Native AOT編譯將C#代碼直接編譯為本機代碼,不再依賴運行時JIT編譯。這提升了性能,縮短啟動時間,簡化部署,減小應用程式大小,並增強知識產權保護。然而,它也帶來了平臺特定編譯、部分不相容Reflection等挑戰。微軟在.NET 9中重點發展Native AOT,支持老舊系統如Windows 7和XP,並計劃在未來擴展到更多平臺。這提高了.NET應用的執行效率和相容性,對開發者是重要的技術升級。

使用Roslyn分析器和修複器 對非同步方法規範化返回Async結尾

https://www.cnblogs.com/vipwan/p/18412585

這篇文章介紹了使用Roslyn代碼修複器對非同步返回方法進行規範化的過程。首先需要實現分析器,通過註冊語法節點操作分析所有方法聲明的語法節點。文章詳細描述了創建AsyncMethodNameAnalyzer診斷程式的步驟,並定義了非同步方法名稱需要以Async結尾的規則。文章解釋瞭如何根據方法的返回類型和修飾符來判斷是否報告診斷問題。此外,文章展示了代碼的運行邏輯以確保非同步方法名符合規範。

Redis入門 - C#|.NET Core封裝Nuget包

https://www.cnblogs.com/hugogoos/p/18411381

文章介紹如何封裝自己的Redis C#庫並打包為Nuget。作者並非開發新客戶端,而是基於已有庫進行簡單封裝以提升可測試性和解耦性。通過依賴註入增強測試能力,通過封裝介面實現庫間靈活切換,還有助於擴展功能。提供的示例展示如何定義介面、實現自定義方法,並以CSRedisClient為例實現介面。最終目的是提高編碼效率和維護性。

VS2022 17.12.0 Preview2版本對Copilot的功能增強

https://www.cnblogs.com/vipwan/p/18408246

使用最新版17.12.0 Preview2,擁有Copilot AI訂閱,可以體驗改進的IEnumerable Visualizer的編輯表達功能。AI幫助實現複雜條件篩查,驗證結果,提高開發和調試便利性。提供單元測試失敗的信息和斷點建議,比較受監視變數的值和期望值。多次驗證錯誤時,可繼續詢問以獲得滿意的解決。調試時,可通過AI獲取變數信息、修複建議和調用鏈分析。

dotnet 學習 CPF 框架筆記 瞭解 X11 里如何獲取觸摸信息

https://www.cnblogs.com/lindexi/p/18123027

本文記錄了我學習CPF框架的筆記,重點探討如何在dotnet C#中獲取X11的觸摸信息,包括多指觸摸、觸摸面積和壓感等。CPF框架是一個純C# dotnet實現的跨平臺UI框架,支持多個操作系統和國產化平臺,設計理念類似WPF。文中詳細介紹瞭如何使用CPF代碼獲取主觸摸設備並註冊觸摸事件,並提供了相關代碼示例和下載鏈接。本文通過實踐演示了CPF框架在跨平臺UI解決方案中的應用。

架構師備考的一些思考(四)

https://www.cnblogs.com/kiba/p/18410661

本文討論了數學與電腦教育的不足,指出學生在校學習後的實踐能力不足。通過案例分析強調實際經驗的重要性,並探討了數據分片與雲原生架構的應用。文章提供了項目撰寫與技術選擇的建議,強調數據分片技術的三種類型及其對系統性能的提升作用。同時,介紹了雲原生架構的四個設計原則及其在項目中的應用。技術部分涵蓋了多種編程語言及工具,細緻描述了系統架構與功能。最後,建議論文寫作中要註重字數擴展與個人見解表達。

C# 開源教程帶你輕鬆掌握數據結構與演算法

https://www.cnblogs.com/1312mn/p/18408107

《Hello演算法》是一本面向初學者的數據結構與演算法教程。它支持包括C#在內的多種編程語言,採用動畫圖解幫助理解。代碼可一鍵運行,提升實操能力。項目鼓勵讀者互動交流,實現共同學習進步。

Redis入門 - C#|.NET Core封裝Nuget包

https://www.cnblogs.com/hugogoos/p/18411381

本文介紹如何封裝自己的Redis C#庫並打包成Nuget包。首先,通過依賴註入增強代碼的可測試性和解耦性。其次,通過封裝一層介面,使得使用不同的Redis客戶端庫變得更靈活,降低了更換成本。同時,強調封裝可以擴展功能,提升Redis庫的應用價值。最終,通過定義介面和自定義方法,示例展示瞭如何以CSRedisClient庫為基礎進行封裝,旨在提供更便捷的Redis功能管理和擴展。

UWP 通過 .NET 9 和Native AOT 的支持實現 UWP 應用的現代化

https://www.cnblogs.com/shanyou/p/18412887

微軟預覽支持 .NET 9 的 UWP,提供現代化應用的路徑,鼓勵開發者轉向 Windows App SDK 和 WinUI 3。此預覽僅更新工具和組件,無新特性。UWP 於 2015 年推出,微軟通過 WinUI 3 和 Windows UI 庫為 UWP 提供新選擇。支持 .NET 9 的主要目標是為 UWP 開發者提供逐步遷移至 WinUI 3 的途徑,減少對 .NET Native 的依賴,使應用現代化。此更新旨在降低遷移風險,提高性能,提高代碼的現代化程度。微軟希望此調整能讓更多開發者升級應用至最新 .NET 和 C#,而不必全面遷移至 Windows App SDK。

WPF 實現一個吃豆豆的Loading載入動畫

https://www.cnblogs.com/lvpp13/p/18412070

這篇文章介紹瞭如何在WPF中使用expression.Drawing庫創建載入動畫。先安裝expression.Drawing包,然後配置視窗樣式,並使用庫中的圓弧控制項。設置圓形漸變使其看起來像一個球體。接下來,通過StackPanel放置多個圓,並用Style設置其大小和顏色。最後,使用Storyboard為動畫部分添加迴圈動畫,使控制項動態展示。

MonoDevelop 的續集dotdevelop

https://www.cnblogs.com/shanyou/p/18415351

DotDevelop 是一個基於 MonoDevelop 的跨平臺 .NET IDE,專註於 Linux 支持和 GTK3 升級。儘管與原版相似,但進行了多項改進和功能擴展。隨著微軟關閉 Mac 版 Visual Studio IDE,DotDevelop 獲得更多關註。開發者正努力使其相容最新的 Linux 和 .NET Core 版本。它使用三星的.NET Core調試器netcoredbg,並有活躍的開發社區在 GitHub 上支持持續開發。

架構師備考的一些思考(四)

https://www.cnblogs.com/kiba/p/18410661

文章討論數學和電腦教育的局限性,認為現階段學習缺乏真實應用。通過案例分析,建議結合自身經驗回答問題。論文部分涉及數據分片技術和雲原生架構,強調項目參與及遇到的問題。詳細描述智慧綜合管理平臺的功能與使用技術,提到利用多種技術棧實現系統功能。強調在系統中使用了具體技術如hash分片和布隆過濾以提升性能。文章建議論文寫作要廣泛,不能選擇字數擴展性小的主題。最後,文章要求轉載時需取得授權。

主題

.NET 9 候選版本 1 現已推出 - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-9-release-candidate-1-is-now-available/

.NET 9 候選版本 1 已發佈。

  • BCL
    • WebSocket 保持活動 Ping 和超時 API
    • 添加了 ZLib、Brotli 壓縮選項
    • 添加了 TarEntry.DataOffset
    • 預設情況下禁用 HttpClientFactory 的標頭值日誌記錄
    • 進程外儀錶通配符訂閱
  • SDK
    • 工作負載歷史記錄
  • ASP.NET核心
    • 改進了 SignalR 分散式跟蹤
    • WebSockets 保持活動超時
    • 中間件中的鍵控 DI
    • 覆蓋InputNumber類型屬性
    • 在 Linux 上信任 ASP.NET Core HTTPS 開發證書
  • .NET MAUI
    • 添加了 Horizo​​ntalTextAlignment.Justify

使用 OpenTelemetry 增強適用於 .NET 的 AWS 開發工具包的可觀察性 |

https://aws.amazon.com/jp/blogs/developer/enhancing-observability-in-the-aws-sdk-for-net-with-opentelemetry/

適用於 .NET 3.7.400 及更高版本的 AWS 開發工具包支持的 OpenTelemetry 支持的說明。

本文介紹瞭如何啟用和添加 OpenTelemetry 集成、支持哪些指標以及如何創建您自己的遙測提供程式。

2.8.16 版 · StackExchange/StackExchange.Redis

https://github.com/StackExchange/StackExchange.Redis/releases/tag/2.8.14
https://github.com/StackExchange/StackExchange.Redis/releases/tag/2.8.16

StackExchange.Redis 2.8.14、2.8.16 已發佈。

此版本修複了多個錯誤。

GitHub 模型和 .NET:為工程師構建生成式 AI 應用程式 - .NET 博客

https://devblogs.microsoft.com/dotnet/using-github-models-and-dotnet-to-build-generative-ai-apps/

瞭解如何使用 .NET 中的 GitHub 模型。

本文介紹了使用 Phi-3 模型和 Azure AI 推理 SDK 來使用 GitHub 模型的示例。

適用於 .NET 和 .NET MAUI Android 應用程式的 Android 資源包 - .NET 博客

https://devblogs.microsoft.com/dotnet/android-asset-packs-in-dotnet-android/

關於構建 .NET 9 支持的 Android 資源包。

本文解釋了什麼是資產包、.NET 迄今為止遇到的問題將在 .NET 9 中得到解決,以及如何按需下載和調試資產包。

關於取消游戲區運行費

https://unity.com/ja/blog/unity-is-canceling-the-runtime-fee

關於取消原定在 Unity 6 及更高版本中引入的運行時費用(根據安裝數量計費)。

.NET 9 中的性能改進 - .NET 博客

https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-9/

通過代碼和基準詳細解釋 .NET 9 中的各種性能改進。

Visual Studio 2022 中 SDK 樣式 SQL 項目的預覽版

https://techcommunity.microsoft.com/t5/azure-sql-blog/preview-release-of-sdk-style-sql-projects-in-visual-studio-2022/ba-p/4240616

在 Visual Studio 的 SQL Server Data Tools 項目中添加了對 SDK 樣式項目的預覽支持。

通過對 .NET 9 和本機 AOT 的預覽 UWP 支持來現代化您的 UWP 應用 - #ifdef Windows

https://devblogs.microsoft.com/ifdef-windows/preview-uwp-support-for-dotnet-9-native-aot/

.NET 9 添加了對 UWP 的預覽支持。

.NET 9 中對 UWP 的支持使得能夠遷移到 WinUI 3,並能夠從更新的 .NET Core 2.0 級別功能和 .NET Native (AOT) 運行時遷移到現代 C# 和 .NET 運行時開發。

本文還介紹瞭如何使用 .NET 9 創建 UWP 項目、項目文件的詳細說明、F# 支持以及其他生態系統支持狀態。

使用 componentize-dotnet 為 .NET/C# 開發人員簡化組件

https://bytecodealliance.org/articles/simplifying-components-for-dotnet-developers-with-componentize-dotnetcomponentize-dotnet 的預覽版已經發佈,它允許您從 .NET 工具輸出 WebAssembly 組件。

componentize-dotnet 是一個包含 NativeAOT 的 LLVM 編譯器、綁定生成和 WASI SDK 的包,允許您通過簡單地引用 NuGet 包來使用 dotnet build 生成 WebAssembly 組件。

  • [“componentize-dotnet”,它允許您創建與 .NET 中的 WebAssembly 最新規範“WASI Preview 2”相容的組件,由位元組碼聯盟開源發佈](https://www.publickey1.jp/blog/24 /netweb assemblywasi_preview_2componentize-dotnetbytecode_alliance .html)

文章、幻燈片等

如何在 Arm64 設備上本機運行 .NET 應用程式 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/how-to-run-net-apps-natively-on-arm64-devices/

如何使用 Visual Studio 2022 和 Windows 11 24H2 在 Arm 環境中本地運行使用 Arm 上指定的任何 CPU 的 .NET 應用程式。

[C#] 不宜輕易使用Expression.Compile()的原因及對策 - Qiita

https://qiita.com/simoyama2323/items/8741f455292c03ed1fd9

使用 Expression.Compile 的成本是多少?

本文還介紹了當您不需要使用 Expression.Compile 時的替代方案。

瞭解具有抽象基類的 XAML 設計器的行為 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/understanding-the-behavior-of-the-xaml-designer-with-abstract-base-classes/

關於 Visual Studio 2022 中 XAML 設計器中使用抽象類的控制項的行為。

文章闡述了使用抽象類時出現的問題及解決方案。

使用 TUnit!

https://zenn.dev/masakura/articles/e0238d7b87dedd

介紹 TUnit,一個類似於 xUnit 和 NUnit 的測試框架。

.NET 9 中的新 LINQ CountBy

https://zenn.dev/tomokusaba/articles/83a3fdf6515435

CountBy 簡介,在 .NET 9 的 LINQ 中引入。

C# 11.0 新功能:ref 欄位和作用域關鍵字 | endjin

https://endjin.com/blog/2024/09/dotnet-csharp-11-ref-fields-scoped-keyword

C# 11 的 ref 和scoped 關鍵字的說明。

使用 JetBrains Rider 和 StrawberryShake 在 .NET 中構建 GraphQL 客戶端 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/09/17/building-a-graphql-client-in-net-with-jetbrains-rider-and-strawberryshake/

關於使用 Rider 和 StrawberryShake 實現 GraphQL 客戶端。

本文介紹瞭如何使用 Rider 的 GraphQL 擴展插件高效地進行 GraphQL 開發。

[LINQ] 理解 GroupJoin

https://zenn.dev/shimiyu/articles/5a01676d6165f7

有關 LINQ 的 GroupJoin 方法的行為說明。它還提到了與 SelectMany 結合使用的連接。

在 C# 中實現 Floyd-Warshall 演算法來解決所有對最短路徑問題

https://olegkarasik.wordpress.com/2021/04/25/implementing-floyd-warshall-algorithm-for-solving-all-pairs-shortest-paths-problem-in-c/

本書用C#實現了搜索最短路徑的Floyd-Warshall演算法,並解釋瞭如何優化其實現。

可枚舉集合的散佈值

https://khalidabuhakmeh.com/intersperse-values-for-enumerable-collections

如何實現 Interspase 方法以在集合的元素之間添加元素。

使用 EventPipe 跟蹤分配第 3 部分 — 不使用 dotnet-trace 進行跟蹤

https://medium.com/@ocoanet/tracing-allocations-with-eventpipe-part-3-tracing-without-dotnet-trace-7244bdb86e03

第 3 部分介紹如何使用 EventPipe 跟蹤分配。

本文介紹如何使用 DiagnosticsClient 從正在運行的會話進行跟蹤、涉及的問題以及使用 dotnet-trace 的解決方案。

使用 C# .NET 8.0+Native AOT 創建控制台應用程式 - Qiita

https://qiita.com/nekotadon/items/6031ec1d90f1834e2324

說明在 .NET 8 中使用本機 AOT 構建控制台應用程式的步驟。

讓我們開始使用 Semantic Kernel 的多智能體 AI 功能第 2 部分

https://zenn.dev/microsoft/articles/semantic-kernel-agents-003

閱讀有關 Semantic Kernel 的 Agent 相關類及其代碼的更多信息。

以 PEM 格式保存和載入 RSA 密鑰對,並使用 C# 加密和解密消息 [.NET 7 及更高版本支持] - Qiita

https://qiita.com/SoundOrion/items/6d4da8b6cce6b52e318d

如何使用 .NET 7 及更高版本支持的 PEM 格式 RSA 密鑰加密和解密消息。

EventSource 的意外使用或如何在 CLR 拉取請求中測試統計結果

https://chnasarre.medium.com/unexpected-usage-of-eventsource-or-how-to-test-statistical-results-in-clr-pull-request-8431ffdc460a

關於使用 EventSource 在 CLR 拉取請求中測試統計結果的故事。

從 WinRT COM 介面轉換為 Win32 COM 介面 - Qiita

https://qiita.com/kumakamikoubou/items/245991bb7b247da1eea8

如果需要將 WinRT 介面轉換為 Win32 COM 介面,例如將 IMemoryBufferReference 轉換為 IMemoryBufferByteAccess,該怎麼辦?

.NET 9 中字典和 HashSet 的備用查找 - NDepend 博客

https://blog.ndepend.com/alternate-lookup-for-dictionary-and-hashset-in-net-9/

它解釋了 GetAlternateLookup API 的性能和獨特的實現方法,該 API 已添加到 .NET 9 中的 Dictionary 和 HashSet 中。

使用 PublicApiGenerator 防止公共 API 發生重大更改

https://andrewlock.net/preventing-writing-changes-in-public-apis-with-publicapigenerator/

如何使用 PublicApiGenerator 防止對類庫的公共 API 進行重大更改。

文章介紹了使用PublicApiAnalyzer時的不滿以及使用PublicApiGenerator和單元測試作為替代方法的驗證方法。

WebAssembly 和容器:使用 .NET Aspire 編排分散式架構

https://www.infoq.com/articles/web assembly-containers-dotnet-aspire/

引入 Fermyon.Aspire.Spin,它允許您在 .NET Aspire 上托管運行無伺服器 WebAssembly 應用程式的 Spin。

嘗試反編譯一個值類型記錄 - Qiita

https://qiita.com/abetakahiro123/items/0ea0eeaa82e6921ede87

解釋值類型記錄如何反編譯和實現。

為什麼 F# 代碼如此健壯和可靠? - .NET 博客

https://devblogs.microsoft.com/dotnet/why-is-fsharp-code-so-robust-and-reliable/

關於 F# 代碼的穩健性和可靠性的介紹性文章。 (訪客在 .NET 博客上貢獻了文章)

Visual Studio 調試器中非同步用戶未處理異常的中斷 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/break-for-async-user-unhandled-exceptions-in-the-visual-studio-debugger/

關於在將 Visual Studio 與 .NET 9 或更高版本一起使用時中斷非同步處理期間發生的用戶未處理異常的能力。

使用 ASP.NET Core 進行開發時使用的環境變數現在由 1Password 管理

https://zenn.dev/i999m/articles/4e613a5cc95e6b

瞭解在開發 ASP.NET Core 應用程式時如何使用 1Password 管理、檢索和執行環境變數。

WinUI 3 中實用的視窗大小設置 - Qiita

https://qiita.com/emocht/items/e3935ebc6f713f95ed50

如何通過 WinUI 3 中的代碼設置視窗大小。文章中提到了使用AppWindow.ResizeClient的具體實現方法。

學習構建您的第一個 Blazor 混合應用程式 - .NET 博客!

https://devblogs.microsoft.com/dotnet/introducing-blazor-hybrid-workshop/

介紹創建 Blazor 混合應用程式的研討會- [dotnet-presentations/blazor-hybrid-workshop:全天研討會(.NET MAUI Blazor Hybrid Workshop in a Box),介紹如何使用適用於 iOS、Android、macOS 和 Windows 的 .NET MAUI 構建 Blazor Hybrid 應用程式](https //github.com/dotnet-presentations/blazor-hybrid-workshop)

搜索範圍可幫助您找到所需內容 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/search-scoping-helps-you-find-what-youre-looking-for/

如何在 Visual Studio 搜索中指定範圍(解決方案、項目、文檔)。

VisualStudio.Extensibility 17.11:設置和更多遠程 UI 支持 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visualstudio-extensibility-17-11-settings-and-more-remote-ui-support/

關於新的 Visual Studio 擴展性模型 VisualStudio.Extensibility 17.11 版本。

17.11 包括配置支持、遠程 UI 增強、工具欄和工具視窗等的更新。

本文還介紹了項目查詢 API 文檔的更新以及有關實驗性 API 和重大更改的決策。

我使用 ONNX Runtime 的 QNN Execution Provider 在 Snapdragon X Elite 的 NPU 上執行圖像分類 - Shibayan Miscellaneous

https://blog.shibayan.jp/entry/20240911/1726041638

瞭解如何在 ONNX Runtime 中使用 QNN Execution Provider 和 Qualcomm AI Engine Direct SDK 在 Snapdragon X Elite 的 NPU 上執行 ResNet50 圖像分類。

在 Linux 應用服務上使用 Phi-3 ONNX 運行時和 Sidecar 模式實現本地 RAG

https://azure.github.io/AppService/2024/09/03/Phi3-vector.html

如何通過運行 ONNX 運行時和 Phi-3 模型作為 sidecar 後端來在 Azure Linux 應用服務中實現本地 LAG。

C#/.NET 推薦

https://zenn.dev/tomokusaba/articles/3b1150edaafb8c

簡要介紹當前的 C# 和 .NET。

活動、視頻等

午休時間玩玩Semantic Kernel (2024/09/26 12:00~)

https://msdevjp.connpass.com/event/330257/

庫、存儲庫、工具等。

prozolic/CsToml:.NET 的 TOML 解析器/序列化器

https://github.com/prozolic/CsToml

面向性能的 TOML 解析器/序列化器庫。

版權聲明

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

本文由博客一文多發平臺 OpenWrite 發佈!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 實踐環境 Python 3.9.13 paho-mqtt 2.1.0 簡介 Eclipse Paho MQTT Python客戶端類庫實現了MQTT 協議版本 5.0, 3.1.1, 和3.1。 該類庫提供一個客戶端類,允許應用連接到MQTT代理併發布消息,訂閱主題並檢索發佈的消息。同時還提供了一個 ...
  • 前言 ConcurrentLinkedQueue是基於鏈接節點的無界線程安全隊列。此隊列按照FIFO(先進先出)原則對元素進行排序。隊列的頭部是隊列中存在時間最長的元素,而隊列的尾部則是最近添加的元素。新的元素總是被插入到隊列的尾部,而隊列的獲取操作(例如poll或peek)則是從隊列頭部開始。 與 ...
  • 先說一下我遇到問題,我的項目是NET8.0版本,在VisualStudio上可以正常運行與調試,但是在VSCode里可以正常跑但無論怎麼打斷點都不會進去,提示"還沒有為該文檔載入任何符號"。 其實最開始我以為是launch.json沒有配置好,搞了一上午換了很多種配置方式結果都沒有變。其中我創建新的 ...
  • 1.基礎階段 編程語言基礎(C#) 語法學習:掌握 C# 的基本語法,包括變數、數據類型(如整數、字元串、布爾等)、運算符、控制流語句(如 if-else、for、while 等)。 面向對象編程概念:深入理解面向對象的三大特性,即封裝、繼承、多態,學會定義類、對象、屬性、方法等,以及類的繼承和多態 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 結合上一篇文章使用,味道更佳:從0到1 ...
  • 前言 在平時開發中,好的類庫能幫助我們快速實現功能,C#有很多封裝好的類庫。 本文將介紹一些2024年特別受歡迎的C#類庫,並分析各自的優點讓我們編程寫代碼變的更輕鬆、更快捷。 快來看一看有沒有大家常用的類庫,歡迎各位小伙伴留言補充。 1、Entity Framework Core Entity F ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...