.NET週刊【11月第2期 2023-11-12】

國內文章

一個基於百度飛槳封裝的.NET版本OCR工具類庫 - PaddleOCRSharp

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

本文介紹了PaddleOCRSharp,這是一個基於百度飛槳PaddleOCR的.NET OCR工具類庫。它由C++編寫,優化了小圖識別準確率,並支持多種開發語言的API調用。PaddleOCRSharp包含文本識別、檢測和表格識別功能,支持多種.NET版本。OCR技術幫助將圖像中的文字轉換爲可編輯文本,PaddleOCR旨在提供實用的OCR工具庫。項目源碼和示例項目說明了如何在.NET環境中使用該工具類庫。

就是這麼坑:DateTime的字符串格式

https://zhuanlan.zhihu.com/p/666195280

本文講述了.NET開發中一個關於日期格式化的問題,即DateTime.ToString("yyyy/MM/dd")的輸出可能會因操作系統設置的更改而變化。作者指出,斜槓("/")在.NET中是一個佔位符,代表系統的日期分隔符。爲了避免這個問題,可以通過使用IFormatProvider如InvariantInfo,或將斜槓寫爲'/'來確保輸出格式不變。這個細節在.NET文檔中不夠突出,作者建議應該加強提示。

基於.NET、Uni-App開發支持多平臺的小程序商城系統 - CoreShop

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

本文介紹了基於.NET和Uni-App開發的小程序商城系統CoreShop,它支持多平臺部署,具備豐富的營銷和管理功能,如分銷、代理、團購秒殺等,並提供完整的商品、訂單、會員管理系統。CoreShop支持多數據庫,可進行二次開發,適用於微信、支付寶等多個小程序平臺。後端技術包括Asp.net Core MVC、WebApi、Redis等,前端則使用Uni-App和uView UI。商城系統強調可視化佈局和跨平臺兼容性,適合快速構建多功能電商平臺。

.net core 到底行不行!超高穩定性和性能的客服系統:性能實測

https://www.cnblogs.com/sheng_chao/p/17812296.html

本文介紹了作者利用業餘時間用.net core開發的升訊威在線客服系統,並分享了開發過程。該系統性能優越,每日可處理超過16萬次HTTPS請求,內存佔用低於300MB,CPU佔用低於5%。安全性方面,採用https和wss安全連接,客服端數據報文使用AES加密。系統支持私有化部署,穩定性強,即使在網絡不穩定情況下也能保證消息不丟失。系統已在官網免費提供下載,作者希望通過開放、開源、共享的理念,爲.net社區貢獻優秀的開源產品。

模擬ASP.NET Core MVC設計與實現

https://www.cnblogs.com/artech/p/mvc-mini-framework.html

本文介紹了ASP.NET Core MVC框架的設計和請求處理流程。通過簡化代碼構建Mini版MVC框架,展示了Action方法的描述、路由終結點的註冊、參數綁定、方法執行、執行結果響應和整個流程的編排。特別指出Action方法與ActionDescriptor對象是一對多關係,舉例說明了如何通過代碼註冊路由和創建ActionDescriptor。

TIOBE 11月榜單:Java和 C# 之間的差距縮小到0.7

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

TIOBE在2023年11月公佈的編程語言排行榜顯示,Kotlin排名上升至第15位,而C#與Java的差距從10月的1.2%縮小到0.7%。C#因其能高效對接C/C++代碼,在中國產業生態上升中,崗位增量超過Java。Unity中國支持OpenHarmony操作系統,推動高品質遊戲和3D內容發展。中科龍芯的.NET編譯器團隊與Unity中國合作,完成Loongarch架構下Mono適配。開放原子開源基金會積極推進.NET社區合作,中國.NET開發者峯會得到openEuler社區支持。中國積極擁抱開源,推動科技產業發展,貢獻於全球科技創新。

支持C#的開源免費、新手友好的數據結構與算法入門教程

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

本文推薦了Hello算法,這是一個適合初學者的開源免費數據結構與算法教程。教程採用動畫圖解,內容易懂,支持多種編程語言。讀者可以通過GitHub下載源代碼,並在Visual Studio2022中打開運行,包括鏈表、貪心算法、二分查找等示例。還提供了在線預覽功能。

龍芯發佈 .NET 8 SDK 8.0.100-rc2 LoongArch64

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

龍芯.NET團隊宣佈,Loongarch .NET 8將於2023年11月14日發佈,與.NET社區同步。自2019年起,龍芯.NET團隊已將LoongArch64架構代碼合併至.NET主幹,確保同步更新。2023年10月27日,龍芯發佈基於.NET 8.0-SDK的LoongArch64架構.NET 8.0-SDK試用版,將持續更新。開發者可通過龍芯Nuget源下載所需資源。新版.NET特性包括OSR堆棧替換、PE32+格式核心庫文件,以及crossgen2支持,旨在提升LoongArch64平臺性能。龍芯平臺.NET支持多個64位操作系統,包括Loongnix和統信UOS,提供安全更新、錯誤修復和性能優化。

.net 溫故知新【13】:Asp.Net Core WebAPI 使用依賴注入DI

https://www.cnblogs.com/SunSpring/p/17816564.html

本文講述了在WebAPI中使用DI依賴注入的方法。首先創建WebAPI項目,通過Program.cs中的IServiceCollection對象註冊服務。示例中創建DITestClass類,並在WeatherForecastController控制器中通過構造函數注入。文章還介紹了[FromService]注入,它允許在請求時注入服務,避免初始化耗時對象影響其他接口。最後,討論了多層架構注入,即在主項目中註冊其他項目類,以便使用。

NativeBuffering,一種高性能、零內存分配的序列化解決方案[性能測試續篇]

https://www.cnblogs.com/artech/p/native-buffering-buffered-string.html

本文討論了NativeBuffering序列化方案,它在性能測試中顯示出對System.Text.Json的顯著優勢,尤其在處理字符串時。作者最近優化了字符串序列化性能,使用Person類型數據進行測試,展示了新版的性能提升和優化原理。

【.NET】多線程:自動重置事件與手動重置事件的區別

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

本文討論了多線程編程中的線程同步問題,介紹了同步事件對象的兩種行爲:等待和發出信號。通過一個野外烤魚的例子,說明了線程間的協作。接着,介紹了四種同步事件:Mutex、AutoResetEvent、ManualResetEvent和CountdownEvent。重點分析了自動重置信號和手動重置信號的區別,自動事件在發出信號後會立即重置,而手動事件需要手動重置。最後,通過代碼示例展示了自動重置事件的使用。

編寫高性能C#代碼 —— Span<T>

https://www.cnblogs.com/YKAndXLL520/p/17814671.html

本文介紹了.NET Core 2.1中引入的Span類型,它提供了對任意內存連續區域的類型安全和內存安全的讀寫視圖,可以指向堆棧、本機或託管內存。性能測試顯示,Span在數組切片操作中速度快且幾乎無內存開銷。Span還有隻讀版本ReadOnlySpan,適用於字符串等不可變對象。但Span有侷限性,如只能存在於堆棧上,不能作爲非堆棧類型字段、被裝箱、用於異步方法或被lambda表達式捕獲。

記錄一次內存泄漏排查過程

https://www.cnblogs.com/cplemom/p/17803265.html

本文描述了服務器內存告警處理過程。服務器出現卡頓後,重啓服務釋放內存,發現可能存在內存泄漏。服務器環境爲CentOS 7.6和.NET SDK 5.0。安裝了dotnet-counters和dotnet-dump工具,解決了安裝中的Https證書和版本兼容問題。通過Top命令和dotnet-counters監控,發現Gen 2和LOH內存佔用高,提示可能的內存泄漏問題。

.NET的各種對象在內存中如何佈局[博文彙總]

https://www.cnblogs.com/artech/p/net-memory-layout.html

本文彙總了關於.NET對象類型佈局的系列文章,包括值類型和引用類型的內存佈局、字符串和數組的特殊存儲方式。介紹瞭如何計算實例內存大小、讀取實例內存二進制內容、以二進制形式在內存中構建對象、字符串和數組的內存佈局,以及如何用字節序列手動構建數組對象。

.NET Conf 2023 將在 11 月 15日-17 日 舉行 ,附中文日程表

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

.NET Conf 2023將於北京時間11月15-17日舉行,發佈.NET 8,爲參與者提供虛擬體驗。會議內容涵蓋雲原生、Blazor全棧、.NET MAUI和.NET智能應用等主題。11月14日將直播.NET Conf Student Zone,介紹人工智能、網絡、移動和遊戲開發。12月16-17日,.NET Conf China 2023將展示更多內容。活動還邀請贊助商參與,詳情可訪問官網查看日程。會議將探討.NET 8的新功能,Blazor在.NET 8中的全棧Web UI,雲原生應用開發,性能改進,C# 12的新特性,以及VS Code和C#開發工具包。

Net 高級調試之六:對象檢查之值類型、引用類型、數組和異常的轉儲

https://www.cnblogs.com/PatrickLiu/p/17812156.html

本文是《Net 高級調試》系列的第六篇,深入探討了C#中值類型和引用類型的內存形態,以及數組的內存佈局,並介紹瞭如何通過調試工具分析未捕捉異常導致的程序崩潰。作者分享了個人學習經驗,強調理解基礎知識的重要性,並提供了調試環境的詳細說明。文章還講述了對象檢查、內存轉儲、值類型和引用類型的轉儲方法,以及如何分析異常。最後,作者強調了通過實際代碼測試來驗證學到的知識的重要性。

聊一聊 tcp/ip 在.NET故障分析的重要性

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

本文通過.NET程序網絡故障分析強調計算機網絡基礎知識的重要性,特別是對tcpip協議的理解。作者通過兩個例子展示tcp協議在故障分析中的應用。第一個例子是程序偶發性超時,原因是代理服務器不穩定。作者用WebAPI和HttpClient代碼示例,並用wireshark監控流量,發現代理服務器故障導致的通訊問題。

Asp.Net Core webapi+net6 使用資源篩選器(過濾器) 做緩存

https://www.cnblogs.com/cyfj/p/17815126.html

本文介紹瞭如何在ASP.NET Core中使用ResourceFilter特性和MemoryCache實現方法級別的緩存。首先定義ResourceFilterAttribute類,標記需要緩存的方法。然後創建ResourceFilter過濾器,利用IMemoryCache接口存取緩存,以請求IP和方法名作爲緩存鍵。在ResourceFilter中,若緩存存在則直接返回結果,否則執行方法並緩存結果。在程序啓動時,需注入MemoryCache服務並配置ResourceFilter。最後,在控制器的Action上加上ResourceFilter特性以啓用緩存。注意,避免緩存IQueryable和IEnumerable等延遲執行類型,以免失去緩存的效果。

四個id 生成器性能比較記錄

https://www.cnblogs.com/fs7744/p/17823881.html

本文介紹了Seata改進的雪花算法IdGenerator,是一個分佈式UUID生成器。文章提供了C#語言的移植代碼,包含初始化時間戳、序列號和工作節點ID的方法,以及生成下一個ID的邏輯。該算法通過位運算保證ID的唯一性和順序性,適用於分佈式系統中生成唯一標識符。

Welcome to YARP - 5.身份驗證和授權

https://www.cnblogs.com/condding-y/p/17818749.html

本文介紹了YARP反向代理服務的身份驗證和授權功能。身份驗證確認用戶身份,授權決定用戶權限,兩者在ASP.NET Core中有詳細文檔。YARP利用.NET的認證授權機制,通過策略和中間件實現,可減輕目標服務器負載,保護應用程序。

開發現代化的.NetCore控制檯程序:(2)創建一個C#項目模板

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

本文介紹了FluentConsole.Templates腳手架模板,用於快速創建.NetCore控制檯應用。模板提供依賴注入、日誌、配置等現代化功能,並展示瞭如何安裝和使用模板創建項目。還詳細說明了項目目錄結構和如何創建自己的項目模板。

話題

System.IO的便利性 - .NET博客

https://devblogs.microsoft.com/dotnet/the-convenience-of-system-io/

.NET 8中身份認證的新特性 - .NET博客

https://devblogs.microsoft.com/dotnet/whats-new-with-identity-in-dotnet-8/

發佈ILSpy 8.2 · icsharpcode/ILSpy

https://github.com/icsharpcode/ILSpy/releases/tag/v8.2

發佈v6.1.0:新版本發佈了!· CommunityToolkit/Maui

https://github.com/CommunityToolkit/Maui/releases/tag/6.1.0

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

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

發佈2.3.0 Beta 4 · mysql-net/MySqlConnector

https://github.com/mysql-net/MySqlConnector/releases/tag/2.3.0-beta.4

發佈Microsoft.UI.Xaml v2.8.6 · microsoft/microsoft-ui-xaml

https://github.com/microsoft/microsoft-ui-xaml/releases/tag/v2.8.6

更多的Bug修復:ReSharper 2023.2.3和Rider 2023.2.3已發佈!| .NET工具博客

https://blog.jetbrains.com/dotnet/2023/11/03/resharper-rider-2023-2-3/

文章、幻燈片等

【C#】用反射操作固定長度數組

https://zenn.dev/ruccho/articles/c000525edfaffe

在ASP.NET Core中從multipart/form-data部分讀取JSON和二進制數據

https://andrewlock.net/reading-json-and-binary-data-from-multipart-form-data-sections-in-aspnetcore/

.NET註釋月刊 | 2023年11月 | .NET工具博客

https://blog.jetbrains.com/dotnet/2023/11/09/net-annotated-monthly-november-2023/

時隔多時的梯子游戲適配

https://zenn.dev/panda728/articles/1846b923cfab6a

ReSharper 2023.3 EAP 6:代碼分析性能提升,支持C# 12攔截器,以及更多。| .NET工具博客

https://blog.jetbrains.com/dotnet/2023/11/08/resharper-2023-3-eap-6/

MoonSharp - 在.NET中運行Lua腳本

https://khalidabuhakmeh.com/moonsharp-running-lua-scripts-in-dotnet

如何深入CLR

https://chnasarre.medium.com/how-to-dig-into-the-clr-bd67d884f8da

JetBrains Rider是如何實現.NET WebAssembly調試的 | .NET工具博客

https://blog.jetbrains.com/dotnet/2023/11/07/how-jetbrains-rider-implemented-net-webassembly-debugging/

.NET 8中的ConfigureAwait

https://blog.stephencleary.com/2023/11/configureawait-in-net-8.html

探索對象佈局 - 殺死一個模擬bug

https://vannevel.net/posts/exploring-object-layouts/

.NET HttpClient的可擴展性:支持Unix域套接字和命名管道

https://medium.com/@madhus.bsg/net-httpclient-extensibility-support-for-unix-domain-sockets-named-pipes-abe3c66ffb6e

【C#】關於zero-byte reads的優化和釘住 - ねののお庭。

https://blog.neno.dev/entry/2023/11/11/215353

使用ASP.NET Core的Native AOT - 概述

https://www.thinktecture.com/en/net/native-aot-with-asp-net-core-overview/

.NET Conf 2023回顧日本 - 學習最新的.NET | 微軟活動

https://mktoevents.com/Microsoft+Event/415522/157-GQE-382

.NET Conf 2023仙台 - connpass

https://minamimachi.connpass.com/event/298198/

庫、倉庫、工具等

microsoft/inshellisense:IDE風格的命令行自動完成

https://github.com/microsoft/inshellisense

mikihiro-t/NormalizeJapaneseAddressesNET: 開源的地址規範化庫。.NET版本

https://github.com/mikihiro-t/NormalizeJapaneseAddressesNET

網站、文檔等

推文

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

image-20231121183854000


https://x.com/ufcpp/status/1720646144139911476?s=12&t=ggvrrZ7oLogHyNoIGNgjbw

image-20231121183919985

版權聲明

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

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