.NET週刊【5月第2期 2024-05-12】

國內文章

C#在工業數字孿生中的開發路線實踐

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

這篇文章探討了C#在工業數字孿生技術中的應用,介紹了三種基於C#的數字孿生系統實現方案:

  1. WPF + Unity:結合WPF技術和Unity引擎,實現客戶端三維應用,提供直觀的生產場景展示。
  2. 前端 + .NET8 + Unity:通過前端技術、C#後端和Unity引擎,實現Web端三維應用,支持跨平臺操作和遠程監控。
  3. WPF + OpenGL:使用WPF技術和OpenGL圖形庫,創建國產化數字孿生系統,滿足國內企業對本土化技術的需求。

C#.NET體系圖文概述—2024最全總結

https://www.cnblogs.com/anding/p/18031760

C#是一種由微軟創造的編程語言,而.NET是一個包括多種語言規範和工具的開發平臺。文章介紹了.NET的發展歷程(.NET Framework到.NET Core),並分析了.NET Framework的構成(CLR和FCL)。.NET Core的特點是開源和跨平臺,並能支持多種架構。CLR作爲.NET虛擬機,負責執行代碼和提供運行時服務。CTS和CLS是實現多語言互操作的關鍵規範。文中也介紹了例如JIT、GC等.NET中的重要概念。

【WebForms王者歸來】在 ASP.NET Core 中運行 WebForms 業務代碼,99%相似度!

https://www.cnblogs.com/sanshi/p/18186007

ASP.NET Core引入了與20年前WebForms業務代碼高度相似的開發模式,代碼相似度可達99%,簡化了從經典WebForms升級到ASP.NET Core的工作。由於經典 WebForms不再更新導致的安全風險和維護難題,升級到ASP.NET Core變得重要。ASP.NET Core具有出色的性能和安全性,支持跨平臺,並允許使用最新的C#特性,微軟團隊遷移案例顯示CPU性能提升25%。新模式意在簡化開發,比如通過FineUICore提供MVC開發模式和RazorPages,最新的WebForms開發模式能進一步減少轉移工作量和保持代碼一致性。

C#/.NET/.NET Core優秀項目和框架2024年4月簡報

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

這篇文章介紹了多個與C#/.NET/.NET Core相關的開源項目和框架,並提供了它們的GitHub源碼地址及公衆號詳細介紹。包括代碼格式化工具CSharpier、控制檯應用框架Spectre.Console、圖表庫LiveCharts2、桌面啓動器CurvaLauncher、緩存框架FusionCache、跨平臺框架MAUI、UI工具包Uranium、窗口增強工具SmartSystemMenu、WPF UI控件庫MaterialDesignInXamlToolkit和小說閱讀應用CleanReader.Desktop等。

車牌識別控制檯 可快速整合二次開發

https://www.cnblogs.com/yizhuqing/p/18181320

這篇文章介紹了一個完整的車牌號識別程序,該程序不僅能夠識別車牌號碼,還能識別車牌顏色,並且可以通過控制檯輸出流集成到其他項目中。程序使用深度學習框架,包含onnx模型文件,能夠先識別車牌外觀,然後利用OCR技術提取文字和顏色信息。實現過程包括數據標註、訓練數據、導出onnx模式以及使用ML.NET調用模型。文章還提供了使用命令行測試本地或網絡資源文件的說明以及完成程序的下載鏈接。

.NET有哪些好用的定時任務調度框架

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

大姚在技術羣中分享了5個.NET開源任務調度框架。這些框架包括Quartz.Net、Quartz.NetUI、Hangfire、Hangfire.HttpJob和FreeScheduler,它們分別適用不同規模的系統,有的支持複雜的觸發器和任務類型,有的易用且不依賴數據庫,也有的支持輕量化定時任務。這些建議能幫助開發者選擇適合的定時任務調度框架。同時介紹了DotNetGuide技術社區,提供了一個.NET開發者學習、分享和諮詢的平臺。

C#開發Web三維和客戶端三維技術揭祕

https://mp.weixin.qq.com/s/2t9Cs0Y_nXFrfiiMPAQHXA

這篇文章介紹瞭如何使用C#和Unity開發三維客戶端和網頁應用。首先,展示了一個工業AI檢測設備的上位機客戶端軟件,然後是一個工藝產線模擬項目。開發過程包括WPF結合Unity通過socket通信,以及前端HTML+CSS與後端.NET 6和Unity的結合。最後,討論了自適應設計的挑戰和解決方案。

WPF 穩定的全屏化窗口方法

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

本文介紹了在WPF中如何實現窗口全屏的穩定方法。文章基於Win32 API,通過Hook機制來獲取並設置窗口全屏尺寸。提供了一個經過廣泛測試並在超過千萬臺設備上運行的方法,並詳細介紹了相關設置和可能出現的問題,還包含了代碼示例和全屏前後窗口狀態的保存。

C#.Net築基-基礎知識

https://www.cnblogs.com/anding/p/18170347

C#是一門由微軟開發的面向對象的編程語言,2000年發佈並作爲.NET框架的一部分。C#具有類型安全、自動內存管理、跨平臺開源等特點,並擁有強大的標準庫。使用C#時需注意C#和.NET的版本匹配。開發環境包括.NET SDK以及支持多個版本SDK的Visual Studio IDE。C#的基礎語法要求分號結尾,支持多種變量類型聲明和命名風格。變量申明前必須初始化,且作用域以花括號爲界。

在 WPF 中集成 ASP.NET Core 和 WebView2 用於集成 SPA 應用

https://www.cnblogs.com/aobaxu/p/18186785

文章指導如何在WPF項目中集成ASP.NET Core及WebView2控件,以實現Web版工具的複用。首先修改項目文件,使其支持ASP.NET Core庫和引用WebView2。之後,修改App.xaml和App.xaml.cs以接管啓動事件,並使用ASP.NET Core的WebApplication.CreateBuilder()方法進行依賴注入和資源文件管理,是WPF應用程序可以處理靜態文件和支持自定義文件類型。

使用.NET源生成器(SG)實現一個自動注入的生成器

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

文章介紹了在.NET中如何通過依賴注入(DI)來管理服務,尤其是在服務數量衆多,代碼量大時,使用源生成器來簡化服務註冊過程。作者首先定義了一個用於服務註冊的Attribute,並展示了其使用方式。然後藉助C# 11的新特性,實現泛型Attribute來進一步簡化代碼。接着通過幾個示例展示瞭如何利用這個Attribute爲服務增加標記。文章最後部分可能包含了源代碼生成的具體細節和步驟。

C#使用MX Component實現三菱PLC軟元件數據採集的完整步驟(仿真)

https://www.cnblogs.com/Jerry9521/p/18174620

本文詳細介紹了使用三菱MX Component插件對PLC軟元件數據進行讀寫的流程,包括PLC開發環境GX Works2的配置,MX Component的設置和C#上位機程序測試。全文提供了詳細的安裝和配置步驟,並陳列了在讀寫過程中的注意事項。

【OpenVINO™】使用OpenVINO™ C# API 部署 YOLO-World實現實時開放詞彙對象檢測

https://www.cnblogs.com/guojin-blogs/p/18177702

YOLO-World平臺結合了實時目標檢測和增強現實技術,通過YOLO算法實現快速識別並通過AR技術提高用戶交互體驗。文章介紹了使用最新的OpenVINO™ 2024.0和C# API在.NET環境下部署YOLO-World的方法。英特爾新版OpenVINO™ 加速AI推斷,支持多硬件平臺和生成式人工智能,增強了對Hugging Face模型的支持。YOLO-World由騰訊AI實驗室開發,提高了對開放詞彙的檢測能力,並能在保持高性能的同時實現實時性。模型可以通過YOLO-World GitHub或Ultralytics導出,項目配置需要克隆OpenVINO C# API示例項目並安裝相關依賴。

.NET 緩存:內存緩存 IMemoryCache、分佈式緩存 IDistributedCache(Redis)

https://www.cnblogs.com/WinterSir/p/17701841.html

.NET緩存分內存緩存IMemoryCache和分佈式緩存IDistributedCache兩種。內存緩存通過Program注入,並提供Get、TryGetValue、GetOrCreate等方法,重要的是設置過期時間,具有絕對過期、相對當前時間過期和滑動過期三種方式。IMemoryCache示例中介紹了使用各種方法和設置過期時間的代碼。而分佈式緩存則需先安裝Redis並在appsettings.json中配置,再在Program中注入分佈式緩存服務。

使用C#強大的表達式樹實現對象的深克隆

https://www.cnblogs.com/gmmy/p/18186750

表達式樹是一種在C#中將表達式以樹結構表示的技術,常用於LINQ中,能夠將C#查詢轉換爲其他形式,實現跨數據源使用。在運行時可以動態創建或修改表達式樹,適合動態生成代碼邏輯,增強程序的靈活性和效率。C#中通過System.Linq.Expressions命名空間提供的類來創建和操作表達式樹。文中通過示例展示瞭如何創建表達式樹,並描述瞭如何使用它進行深克隆操作。文章還介紹了一個關於深拷貝的擴展類方法,通過表達式樹來提升性能,避免使用反射或序列化的性能開銷。

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

https://www.cnblogs.com/nigture/p/18173550

肉夾饃組件通過靜態代碼織入實現AOP,主要特色是編譯時完成織入,減少啓動時間,支持靜態方法。版本3.0改變了代碼織入方法,從代碼內嵌方式轉爲代理調用方式,簡化了對async/await語法差異的處理,棄用ExMoAttribute屬性,簡化了異步方法的織入處理。

分享幾個.NET開源的AI和LLM相關項目框架

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

人工智能技術正在成爲各行各業的重要組成部分。大姚分享了四個基於.NET的開源AI與LLM項目。Semantic Kernel可讓開發者結合LLM和傳統編程語言創建應用。BotSharp是企業級LLM應用框架,支持智能機器人的開發。LLamaSharp是跨平臺庫,高效在設備上運行LLM模型。OpenAI DotNet則是.NET客戶端庫,方便使用OpenAI的API。同時介紹了DotNetGuide技術社區,旨在爲.NET開發者提供技術交流與資源共享的平臺。

【OpenVINO™】基於 C# 和 OpenVINO™ 部署 Blazeface 模型實現人臉檢測

https://www.cnblogs.com/guojin-blogs/p/18179021

OpenVINO™ C# API是OpenVINO的.NET包裝器,可以在.NET環境下使用C#實現深度學習模型推理。本文介紹瞭如何使用OpenVINO™ C# API部署BlazeFace模型進行人臉檢測,並提供了項目鏈接和源碼鏈接。文中說明了項目環境依賴,並可以通過NuGet Package安裝相應依賴。文章還展示了控制檯輸出的項目運行結果,包括從GitHub下載模型和圖像的過程,以及使用CPU進行模型推理的詳細信息。

IceRPC之服務器地址與TLS的安全性->快樂的RPC

https://www.cnblogs.com/xlgwr/p/18187552

文章介紹了.Net 8.0下新的RPC框架IceRPC,着重介紹了服務器地址、客戶端連接配置、服務器配置以及TLS安全性。通過示例代碼提供瞭如何在C#中使用這些配置進行RPC通信的指南。特別說明了icerpc和ice協議的端口和使用,還強調了如何通過Quic和Tcp傳輸來實現TLS安加密通信。

微服務 - 作業調度 · Hangfire集成式 · 儀表盤 · DolphinScheduler分佈式 · 定義流程

https://www.cnblogs.com/Sol-wang/p/17509813.html

本文介紹了兩款適合在.NET環境下使用的作業調度產品——Hangfire與DolphinScheduler,並聚焦於Hangfire的介紹、使用與配置。Hangfire是一個開源、支持多種.NET版本、可以集成在項目中的調度工具,提供了便捷的Dashboard查看作業狀態。本文介紹了Hangfire的基本概念、作用、如何在項目中集成以及如何配置使用等方面,使讀者能夠快速理解如何在.NET中部署和使用Hangfire。

C#中的對象深拷貝和淺拷貝

https://www.cnblogs.com/chi8708/p/18183115

C#中對象的拷貝分爲淺拷貝和深拷貝。淺拷貝通過MemberwiseClone方法實現,僅複製值類型成員,引用類型成員會與原對象共享。深拷貝不僅複製值類型成員,還生成引用類型成員的新實例,可通過反射、序列化或對象映射實現,確保副本完全獨立。選擇淺拷貝或深拷貝取決於是否需避免修改原始對象及對象的使用場景。

使用.NET查詢日出日落時間

https://www.cnblogs.com/czwy/p/18181050

本文介紹瞭如何在WPF中實現自動切換主題的方法,包括跟隨系統明暗主題的切換和根據日出日落時間自動切換。文章首先說明了計算日出日落時間需要考慮的因素,接着介紹了通過在線API和公式計算兩種獲取日出日落時間的方法,並提供瞭如何將IP地址轉換爲經度緯度信息的方法。在線API部分詳細介紹了一個免費API的使用方法,而公式計算部分則提供了一個不涉及大氣折射因素的計算公式。

C#實現多線程的幾種方式

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

C#中的多線程是指在一個進程中同時運行多個線程,適用於提升併發性、吞吐量和響應速度,特別是在CPU密集型任務、I/O密集型任務、併發請求處理及大數據處理場景中。進程是運行中程序的抽象,包含代碼和操作系統資源,而線程是進程內的執行單元。C#提供了Thread、ThreadPool、Task和Parallel等類來實現多線程編程。此外,文章提及有關C#/.NET/.NET Core的拾遺補漏專欄、開源地址和技術社區,旨在提供學習資料、項目推薦和技術交流的平臺。

入門Semantic Kernel:OneApi集成與HelloWorld

https://www.cnblogs.com/ruipeng/p/18178756

Semantic Kernel是一個用於構建智能應用的輕量級開源框架,支持C#/Python/Java等語言,兼容OpenAI、Azure OpenAI、Hugging Face等模型。其特點包括模塊化插件架構、多模型集成、多樣化鏈接器、全面語言支持和低門檻開發體驗。含內核、插件、記憶、規劃器等核心組件,支持任務規劃和決策,可應用於不同領域。還介紹了Semantic Kernel中對接OneApi的過程和使用自定義HttpClientHandler進行請求轉換。

關於DDD和COLA的一些總結和思考

https://www.cnblogs.com/TheGCC/p/18184043

這篇文章討論了面向對象和麪向過程的區別,並以圖書管理系統和學生自我介紹的實例闡釋了二者的思考方式和代碼實現。面向過程關注步驟邏輯和操作細節,適合底層或硬邏輯內容;面向對象則專注於抽象概念和模型構建,注重對象本身及其行爲,有利於代碼的複用和擴展。文章還簡述了領域驅動設計(DDD)的基本理念,包括統一語言、邊界劃分,以及貧血和充血模式的不同。

使用 Docker 部署 VS Code in The Browser

https://www.cnblogs.com/wuhanjiayou/p/18186362/VS-Code

Code-Server是一個能夠將VS Code帶入瀏覽器的開源編輯器,支持遠程開發與多人協作。文章提供了安裝Docker、部署Code-Server容器並訪問VS Code網頁界面的詳細步驟,還包括瞭如何更換主題和中文配置設置。最終用戶只需通過瀏覽器訪問設定的服務器IP並輸入密碼,即可使用Code-Server。

GitLab 管理 NuGet 包

https://www.cnblogs.com/txrock/p/18179524

GitLab提供Package Registry功能,允許用戶上傳和管理不在nuget.org上的NuGet包。用戶可以爲項目創建部署令牌以上傳或下載軟件包,並通過命令行工具將NuGet包推送到指定的GitLab項目中。在構建過程中,還需向構建環境添加新的NuGet源以使用這些包。最後,用戶可以在NuGet配置文件或IDE中管理和配置NuGet包源,並進行包源映射設置,以增強安全性。

Lua熱更學習--使用toLua中的協程

https://www.cnblogs.com/TonyCode/p/18187626

這篇文章討論瞭如何在C#中使用tolua來訪問Lua table中的變量和函數,以及如何利用tolua提供的協程功能。文章首先展示瞭如何創建Lua中的CStudent類,並在C#中調用它的方法和變量。然後,介紹瞭如何在Unity中添加LuaLooper組件來使用tolua的協程,包括創建計時器和開始、停止計時器的例子。

使用NSSM將.exe程序安裝成windows服務

https://www.cnblogs.com/magicMaQaQ/p/18174409

本文介紹了使用NSSM(Non-Sucking Service Manager)在Windows上安裝服務的兩種方法。第一種是通過cmd命令行操作,需將NSSM的可執行文件nssm.exe所在路徑設置到cmd中,然後執行安裝命令並設置服務的各種參數。第二種是通過編寫批處理文件(.bat),將nssm.exe放在程序目錄下並創建相應的安裝、關閉、卸載服務的批處理腳本執行。bat文件需要以管理員權限運行,並可創建快捷方式以便快速執行服務的管理。文中還提供了參考鏈接以供深入學習。

C#.Net築基-運算符Family

https://www.cnblogs.com/anding/p/18170514

C#語言內置了多種運算符,比如數學、賦值、比較、邏輯、位運算等,還支持運算符重載。不同類型運算符具有不同行爲,如整數除以0會引發異常,浮點數則得到無窮大。此外,還包括隱式和顯示轉換運算符。數字的運算可能產生溢出,在默認情況下整型溢出不會引發異常,除非使用checked關鍵字,浮點數不存在溢出的概念,decimal類型會拋出異常,整數除以整數結果爲整數。

Blazor/Hybird 觸屏下單程序調優筆記

https://www.cnblogs.com/densen2014/p/18174198

文章主要介紹了在Blazor Net8.0環境下結合FreeSql和Bootstrap Blazor組件進行性能優化的策略,包括減少組件的不必要渲染、API與UI分離、處理髒數據、服務端使用原子操作進行數據更新、提高按鈕操作性能和合理使用CascadingValue的建議。

在Biwen.QuickApi中整合一個極簡的發佈訂閱(事件總線)

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

文章介紹瞭如何在Biwen.QuickApi中實現一個簡單的事件總線系統。首先定義了事件的接口IEvent以及事件訂閱者的接口IEventSubscriber,並提供了默認實現EventSubscriber類。然後實現了負責發佈事件的Publisher類,並展示瞭如何處理事件和異常。最後演示瞭如何在QuickApi中註冊發佈者和訂閱者,使事件系統得到應用。

自定義Lua解析器管理器-------演化腳本V0.5

https://www.cnblogs.com/TonyCode/p/18178850

這篇文章介紹瞭如何在項目中通過封裝管理Lua解析器來使用Lua解析方法。代碼示例中介紹了創建Lua狀態機、獲取和設置Lua全局變量、調用Lua函數等功能。文章同時提供了具體的測試用例,包括無參無返回值以及有參有返回值函數的調用,以便讀者能夠通過實際操作更好地學習和理解Lua接口。

前端使用 Konva 實現可視化設計器(9)- 另存爲SVG

https://www.cnblogs.com/xachary/p/18178115

這篇文章講述瞭如何將canvas元素中的內容另存爲SVG格式。作者首先受到來自react-konva-custom-context-canvas-for-use-with-canvas2svg的啓發,提出了通過canvas2svg庫將Konva的CanvasRenderingContext2D替換,從而捕捉canvas動作並生成SVG內容的方法。接着闡述了具體的實現步驟,包括處理和導出圖片節點,並給出了相關代碼示例。文章也詳細描述瞭如何通過正則表達式處理SVG和其它圖片素材節點的鏈接轉換。實現將canvas中的內容以SVG圖像格式導出的功能,並提供了Github和Gitee上的源碼鏈接以及示例地址。

ABP-VNext 用戶權限管理系統實戰06---實體的創建標準及遷移

https://www.cnblogs.com/zhengwei-cq/p/18186793

apb-vnext實體創建時可以設置字段長度、註釋、指定對應的數據庫表及爲字段添加索引。訂單實體示例包括單據編號、發貨倉庫、供應商編碼和名稱、申請時間和人、審覈時間和人以及訂單狀態與刪除標識等屬性,並展示如何通過遷移命令將實體映射到數據庫表。

使用自定義委託來調用Lua中的多返回值和長參數類型函數

https://www.cnblogs.com/TonyCode/p/18183121

文章介紹了使用自定義委託在C#中調用Lua腳本函數,並處理多返回值及長參數列表的場景。文中展示了調用無參無返回值函數、有參有返回值函數的多種方法,包括直接獲取LuaFunction對象、通過委託轉換、解析器直接調用等。還演示瞭如何獲取和修改Lua中的全局變量。全文通過具體的代碼範例對如何在C#環境下使用Lua功能進行了詳細解釋。

C# 實現Ping遠程主機功能

https://www.cnblogs.com/weskynet/p/18186329

C#實現Ping遠程主機功能,引入了Wesky.Net.OpenTools開源工具庫,可通過PingHelper.PingHost方法對指定主機執行ping操作。源碼實現包含域名解析、防止數據包分片、發送ping請求及返回結果,反映ping成功與否及相關數據。本教程展示瞭如何使用1.0.2版本的具體代碼實現Ping功能。

gRPC入門學習之旅(八)

https://www.cnblogs.com/chillsrc/p/18185818

這是一組關於gRPC的入門學習教程,講解如何在demo項目中添加和使用proto協議文件,編譯生成客戶端GRPC類,創建公共類庫引用協議文件,管理NuGet包並安裝必要的庫。過程包括在Visual Studio 2022中配置項目文件,重建項目,添加服務引用,更新類庫項目,使服務端文件更改自動應用到客戶端項目。

C#的基於.net framework的Winform編程 - 編程手把手系列文章

https://www.cnblogs.com/lzhdim/p/18149157

本文介紹了使用C#基於.net framework開發Winform程序的過程,涉及到安裝Visual Studio 2022、項目配置、添加類庫、UI編碼等步驟,並提供了相關的操作示例和源碼下載鏈接。文中也介紹瞭如何利用單例模式統一管理變量,以及無邊框窗體設計等具體技術細節,並建議讀者在界面設計上參考Windows風格或使用專業設計。

.NET 7 將於本月 14 日停止支持。如果您使用的是 .NET 7,請考慮升級到 .NET 8。

主題

版本 1.5.3 (1.5.240428000) - Windows 應用程序 SDK 的穩定通道發行說明 - Windows 應用程序

https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/stable-channel#version-153-15240428000

Windows App SDK 1.5.3 已發佈。

此版本修復了多個錯誤,例如崩潰和構建時間。

.NET MAUI Community Tookit v8 簡介:TouchBehavior 支持現已推出 - .NET 博客!

https://devblogs.microsoft.com/dotnet/dotnet-maui-community-toolkit-touchbehavior/

.NET MAUI Community Tookit v8 已發佈。

此版本包括添加 TouchBehavior 以替換 Xamarin.Forms 中 Xamarin 社區工具包的 TouchEffect、對 Windows 上 Snackbar 的重大更改、Android 上導航欄顏色設置以及許多其他錯誤修復。

Ubuntu 24.04 中 .NET 的新增功能 - .NET 博客

https://devblogs.microsoft.com/dotnet/whats-new-for-dotnet-in-ubuntu-2404/

關於 Ubuntu 24.04 中 .NET 的處理。

隨着 Ubuntu 24.04 的發佈,.NET 可以從官方 Ubuntu feed 中獲取,並提供基於 24.04 的 .NET 容器映像。

TypeSpec 簡介:以 API 爲中心的開發新語言 | TypeSpec

https://typespec.io/blog/2024-04-25-introducing

API定義語言TypeSpec已發佈。

TypeSpec 是一種受 TypeScript 和 C# 啓發的 API 定義語言,目前可以編譯爲 OpenAPI、JSON Schema 或 Protobuf。在微軟內部,據說他們正在測試 Azure 服務、Microsoft Graph 等。

爲 Visual Studio 和 Visual Studio Code 提供了編輯器擴展,並且該項目根據 MIT 許可證發佈在 GitHub 上。

https://x.com/davidfowl/status/1785047593963454896?s=12

發佈版本 v1.63.0 · grpc/grpc

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

gRPC 1.63.0 已發佈。

此版本包含與 Grpc.Tools 的協議輸出相關的修復。

OData .NET 8 預覽版 - OData

https://devblogs.microsoft.com/odata/odata-net-8-preview-release/

OData .NET 8 預覽版已發佈。

八年來的第一次重大更新包括許多重大更改,包括終止對 .NET Framework 的支持和實現技術堆棧現代化。未來我們將推出支持政策、文檔生命週期支持、發佈遷移指南。

Cascadia Code 2404.23

https://devblogs.microsoft.com/commandline/cascadia-code-2404-23/

Cascadia Code 2404.23 已發佈。

此版本添加了許多傳統計算符號,包括象限、六分儀、八分儀和大型部件。還添加了其他家族,例如包含 Nerd 字體的“Cascadia Code NF”和“Cascadia Mono NF”。

文章

nativeint 和 nativeptr<'T> 和 voidptr

https://zenn.dev/sayurin/articles/3dfaa375223b0e

關於在 F# 中處理指針時使用的三種類型。

分享您使用 .NET 開發工具的經驗來幫助我們 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/05/01/share-your-experience-with-dotnet-dev-tooling/JetBrains 進行的 .NET 開發工具調查。

我們將隨機選擇受訪者,贏取 50 美元的亞馬遜禮品卡或一年的全產品包。

使用 C# 2024 年 5 月版計算 Azure OpenAI 服務中的令牌數量

https://zenn.dev/microsoft/articles/count-token-with-csharp

如何使用“Microsoft.ML.Tokenizers”計算令牌。

如何使用 IDesktopWallpaper - Qiita

https://qiita.com/nnkanegon/items/3309afd8433d38659147

如何使用“IDesktopWallpaper” COM 接口從 C# 實現更改 Windows 桌面壁紙。

通過 ReSharper 中的 JetBrains AI Assistant 擁抱 .NET 中 AI 驅動的生產力 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2024/04/30/jet-brains-ai-assistant-in-resharper/

介紹ReSharper的AI助手功能。

上下文閱讀聊天、多行代碼完成、問題檢測、重構、單元測試生成以及代碼解釋和文檔等功能。

使用 .NET 8 保護您的容器構建和發佈 - .NET 博客

https://devblogs.microsoft.com/dotnet/secure-your-container-build-and-publish-with-dotnet-8/

瞭解如何使用 .NET 8 構建和發佈安全容器。

本文解釋了存在哪些類型的威脅以及如何在不使用 root 的情況下創建容器映像。

創建 .NET AsciiMath 解析器並在 Markdig 擴展中使用它

https://andrewlock.net/creating-a-dotnet-asciimath-parser-and-using-it-in-a-markdig-extension/

關於將 AsciiDoctor/AsciiMath 的 Ruby 實現移植到 .NET 並使其可從 Markdig 獲取。

卷影複製未啓動的 ASP.NET Core 託管模塊:分離卷影複製文件夾!

https://weblog.west-wind.com/posts/2024/Apr/28/ASPNET-Core-Module-with-Shadow-Copy-Not-Starting-Separate-your-Shadow-Copy-Folders

將 IIS 的 ASP.NET Core 模塊更新到 8.0.4 後出現的與卷影副本相關的問題以及如何解決這些問題。

Marten、PostgreSQL 和 .NET Aspire 走進一家酒吧……

https://jeremydmiller.com/2024/05/01/marten-postgresql-and-net-aspire-walk-into-a-bar/

瞭解如何通過 .NET Aspire 配置 Marten(一種使用 PostgreSQL 的事件消息傳遞框架)。

如何使用 TypeScript 進行 ASP.NET Core Blazor 開發

https://zenn.dev/microsoft/articles/how-to-develop-ts-for-blazor

瞭解如何將 ASP.NET Core Blazor 應用程序配置爲使用 TypeScript 而不是 JavaScript。

本文介紹如何使用 TypeScript 開發 Razor 組件附帶的 JavaScript 以及 Razor 類庫的 JavaScript 初始化程序。

我想創建一個在 Blazor 啓動時自動加載的 JavaScript 文件

https://zenn.dev/microsoft/articles/how-to-load-js-onstartup

如何將 JavaScript 包含在 Razor 類庫項目中,該項目在 Blazor 應用程序啓動時自動加載。

無障礙應用程序之旅:鍵盤輔助功能和 .NET MAUI - .NET 博客

https://devblogs.microsoft.com/dotnet/the-journey-to-accessible-apps-keyboard-accessible/

關於 .NET MAUI 應用程序中的鍵盤輔助功能。

文章介紹了模態頁面的鍵盤導航、Android 上的焦點操作以及鍵盤加速器等功能。

關於 Garnet(Redis 兼容服務)內存消耗和檢查點創建的注意事項 - Qiita

https://qiita.com/skitoy4321/items/3498ddbbc27d3ce6e9f0

關於 Garnet 的內存消耗估計、記錄保存行爲和設置、壓縮和檢查點期間的行爲等的研究摘要。

活動、幻燈片等

CS 表演學習課程直播 - YouTube

https://www.youtube.com/watch?v=wg3CibR0mWI

使用 GitLab CI/CD 自動化 C#/WPF 應用程序測試和安裝程序構建/部署

https://speakerdeck.com/hacarus/wpfapurikesiyonnotesutotoinsutoranobirudodepuroiwozi-dong-hua-suru

向量編程和不安全

https://www.docswell.com/s/binnmti/Z4Q8V8-2024-04-27-234152

從 R3 代碼看實用的 LINQ 實現優化和併發編程示例

https://speakerdeck.com/neuecc/r3nokodokarajian-rushi-jian-linqshi-zhuang-zui-shi-hua-konkarentopuroguramingushi-li

從今天開始你就可以做到!簡易.NET加速技巧-2024年版

https://speakerdeck.com/xin9le/jin-ri-karadekiru-jian-dan-net-gao-su-hua-tips-2024-edition

現代 .NET 分析工具

https://speakerdeck.com/kkamekawa/dot-net-profiler-in-2024

網站、文檔等

DotnetBenchmarks.com - .NET 基準測試目錄

https://dotnetbenchmarks.com/

一個主要可以分享 BenchmarkDotNet 基準測試結果的網站。

推文

https://x.com/opensilverteam/status/1785264961926598758?s=12

image-20240514222119106


image-20240514222142917

https://x.com/terrajobst/status/1784256998340739323?s=12

版權聲明

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

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