.NET周刊【11月第2期 2023-11-12】
國(guó)內(nèi)文章
一個(gè)基于百度飛槳封裝的.NET版本OCR工具類庫(kù) - PaddleOCRSharp
https://www.cnblogs.com/Can-daydayup/p/17818557.html
本文介紹了PaddleOCRSharp,這是一個(gè)基于百度飛槳PaddleOCR的.NET OCR工具類庫(kù)。它由C++編寫,優(yōu)化了小圖識(shí)別準(zhǔn)確率,并支持多種開發(fā)語(yǔ)言的API調(diào)用。PaddleOCRSharp包含文本識(shí)別、檢測(cè)和表格識(shí)別功能,支持多種.NET版本。OCR技術(shù)幫助將圖像中的文字轉(zhuǎn)換為可編輯文本,PaddleOCR旨在提供實(shí)用的OCR工具庫(kù)。項(xiàng)目源碼和示例項(xiàng)目說明了如何在.NET環(huán)境中使用該工具類庫(kù)。
就是這么坑:DateTime的字符串格式
https://zhuanlan.zhihu.com/p/666195280
本文講述了.NET開發(fā)中一個(gè)關(guān)于日期格式化的問題,即DateTime.ToString("yyyy/MM/dd")的輸出可能會(huì)因操作系統(tǒng)設(shè)置的更改而變化。作者指出,斜杠("/")在.NET中是一個(gè)占位符,代表系統(tǒng)的日期分隔符。為了避免這個(gè)問題,可以通過使用IFormatProvider如InvariantInfo,或?qū)⑿备軐憺?/'來(lái)確保輸出格式不變。這個(gè)細(xì)節(jié)在.NET文檔中不夠突出,作者建議應(yīng)該加強(qiáng)提示。
基于.NET、Uni-App開發(fā)支持多平臺(tái)的小程序商城系統(tǒng) - CoreShop
https://www.cnblogs.com/Can-daydayup/p/17811656.html
本文介紹了基于.NET和Uni-App開發(fā)的小程序商城系統(tǒng)CoreShop,它支持多平臺(tái)部署,具備豐富的營(yíng)銷和管理功能,如分銷、代理、團(tuán)購(gòu)秒殺等,并提供完整的商品、訂單、會(huì)員管理系統(tǒng)。CoreShop支持多數(shù)據(jù)庫(kù),可進(jìn)行二次開發(fā),適用于微信、支付寶等多個(gè)小程序平臺(tái)。后端技術(shù)包括Asp.net Core MVC、WebApi、Redis等,前端則使用Uni-App和uView UI。商城系統(tǒng)強(qiáng)調(diào)可視化布局和跨平臺(tái)兼容性,適合快速構(gòu)建多功能電商平臺(tái)。
.net core 到底行不行!超高穩(wěn)定性和性能的客服系統(tǒng):性能實(shí)測(cè)
https://www.cnblogs.com/sheng_chao/p/17812296.html
本文介紹了作者利用業(yè)余時(shí)間用.net core開發(fā)的升訊威在線客服系統(tǒng),并分享了開發(fā)過程。該系統(tǒng)性能優(yōu)越,每日可處理超過16萬(wàn)次HTTPS請(qǐng)求,內(nèi)存占用低于300MB,CPU占用低于5%。安全性方面,采用https和wss安全連接,客服端數(shù)據(jù)報(bào)文使用AES加密。系統(tǒng)支持私有化部署,穩(wěn)定性強(qiáng),即使在網(wǎng)絡(luò)不穩(wěn)定情況下也能保證消息不丟失。系統(tǒng)已在官網(wǎng)免費(fèi)提供下載,作者希望通過開放、開源、共享的理念,為.net社區(qū)貢獻(xiàn)優(yōu)秀的開源產(chǎn)品。
模擬ASP.NET Core MVC設(shè)計(jì)與實(shí)現(xiàn)
https://www.cnblogs.com/artech/p/mvc-mini-framework.html
本文介紹了ASP.NET Core MVC框架的設(shè)計(jì)和請(qǐng)求處理流程。通過簡(jiǎn)化代碼構(gòu)建Mini版MVC框架,展示了Action方法的描述、路由終結(jié)點(diǎn)的注冊(cè)、參數(shù)綁定、方法執(zhí)行、執(zhí)行結(jié)果響應(yīng)和整個(gè)流程的編排。特別指出Action方法與ActionDescriptor對(duì)象是一對(duì)多關(guān)系,舉例說明了如何通過代碼注冊(cè)路由和創(chuàng)建ActionDescriptor。
TIOBE 11月榜單:Java和 C# 之間的差距縮小到0.7
https://www.cnblogs.com/shanyou/p/17826446.html
TIOBE在2023年11月公布的編程語(yǔ)言排行榜顯示,Kotlin排名上升至第15位,而C#與Java的差距從10月的1.2%縮小到0.7%。C#因其能高效對(duì)接C/C++代碼,在中國(guó)產(chǎn)業(yè)生態(tài)上升中,崗位增量超過Java。Unity中國(guó)支持OpenHarmony操作系統(tǒng),推動(dòng)高品質(zhì)游戲和3D內(nèi)容發(fā)展。中科龍芯的.NET編譯器團(tuán)隊(duì)與Unity中國(guó)合作,完成Loongarch架構(gòu)下Mono適配。開放原子開源基金會(huì)積極推進(jìn).NET社區(qū)合作,中國(guó).NET開發(fā)者峰會(huì)得到openEuler社區(qū)支持。中國(guó)積極擁抱開源,推動(dòng)科技產(chǎn)業(yè)發(fā)展,貢獻(xiàn)于全球科技創(chuàng)新。
支持C#的開源免費(fèi)、新手友好的數(shù)據(jù)結(jié)構(gòu)與算法入門教程
https://www.cnblogs.com/Can-daydayup/p/17825678.html
本文推薦了Hello算法,這是一個(gè)適合初學(xué)者的開源免費(fèi)數(shù)據(jù)結(jié)構(gòu)與算法教程。教程采用動(dòng)畫圖解,內(nèi)容易懂,支持多種編程語(yǔ)言。讀者可以通過GitHub下載源代碼,并在Visual Studio2022中打開運(yùn)行,包括鏈表、貪心算法、二分查找等示例。還提供了在線預(yù)覽功能。
龍芯發(fā)布 .NET 8 SDK 8.0.100-rc2 LoongArch64
https://www.cnblogs.com/shanyou/p/17827640.html
龍芯.NET團(tuán)隊(duì)宣布,Loongarch .NET 8將于2023年11月14日發(fā)布,與.NET社區(qū)同步。自2019年起,龍芯.NET團(tuán)隊(duì)已將LoongArch64架構(gòu)代碼合并至.NET主干,確保同步更新。2023年10月27日,龍芯發(fā)布基于.NET 8.0-SDK的LoongArch64架構(gòu).NET 8.0-SDK試用版,將持續(xù)更新。開發(fā)者可通過龍芯Nuget源下載所需資源。新版.NET特性包括OSR堆棧替換、PE32+格式核心庫(kù)文件,以及crossgen2支持,旨在提升LoongArch64平臺(tái)性能。龍芯平臺(tái).NET支持多個(gè)64位操作系統(tǒng),包括Loongnix和統(tǒng)信UOS,提供安全更新、錯(cuò)誤修復(fù)和性能優(yōu)化。
.net 溫故知新【13】:Asp.Net Core WebAPI 使用依賴注入DI
https://www.cnblogs.com/SunSpring/p/17816564.html
本文講述了在WebAPI中使用DI依賴注入的方法。首先創(chuàng)建WebAPI項(xiàng)目,通過Program.cs中的IServiceCollection對(duì)象注冊(cè)服務(wù)。示例中創(chuàng)建DITestClass類,并在WeatherForecastController控制器中通過構(gòu)造函數(shù)注入。文章還介紹了[FromService]注入,它允許在請(qǐng)求時(shí)注入服務(wù),避免初始化耗時(shí)對(duì)象影響其他接口。最后,討論了多層架構(gòu)注入,即在主項(xiàng)目中注冊(cè)其他項(xiàng)目類,以便使用。
NativeBuffering,一種高性能、零內(nèi)存分配的序列化解決方案[性能測(cè)試?yán)m(xù)篇]
https://www.cnblogs.com/artech/p/native-buffering-buffered-string.html
本文討論了NativeBuffering序列化方案,它在性能測(cè)試中顯示出對(duì)System.Text.Json的顯著優(yōu)勢(shì),尤其在處理字符串時(shí)。作者最近優(yōu)化了字符串序列化性能,使用Person類型數(shù)據(jù)進(jìn)行測(cè)試,展示了新版的性能提升和優(yōu)化原理。
【.NET】多線程:自動(dòng)重置事件與手動(dòng)重置事件的區(qū)別
https://www.cnblogs.com/tcjiaan/p/17826114.html
本文討論了多線程編程中的線程同步問題,介紹了同步事件對(duì)象的兩種行為:等待和發(fā)出信號(hào)。通過一個(gè)野外烤魚的例子,說明了線程間的協(xié)作。接著,介紹了四種同步事件:Mutex、AutoResetEvent、ManualResetEvent和CountdownEvent。重點(diǎn)分析了自動(dòng)重置信號(hào)和手動(dòng)重置信號(hào)的區(qū)別,自動(dòng)事件在發(fā)出信號(hào)后會(huì)立即重置,而手動(dòng)事件需要手動(dòng)重置。最后,通過代碼示例展示了自動(dòng)重置事件的使用。
編寫高性能C#代碼 —— Span<T>
https://www.cnblogs.com/YKAndXLL520/p/17814671.html
本文介紹了.NET Core 2.1中引入的Span類型,它提供了對(duì)任意內(nèi)存連續(xù)區(qū)域的類型安全和內(nèi)存安全的讀寫視圖,可以指向堆棧、本機(jī)或托管內(nèi)存。性能測(cè)試顯示,Span在數(shù)組切片操作中速度快且?guī)缀鯚o(wú)內(nèi)存開銷。Span還有只讀版本ReadOnlySpan,適用于字符串等不可變對(duì)象。但Span有局限性,如只能存在于堆棧上,不能作為非堆棧類型字段、被裝箱、用于異步方法或被lambda表達(dá)式捕獲。
記錄一次內(nèi)存泄漏排查過程
https://www.cnblogs.com/cplemom/p/17803265.html
本文描述了服務(wù)器內(nèi)存告警處理過程。服務(wù)器出現(xiàn)卡頓后,重啟服務(wù)釋放內(nèi)存,發(fā)現(xiàn)可能存在內(nèi)存泄漏。服務(wù)器環(huán)境為CentOS 7.6和.NET SDK 5.0。安裝了dotnet-counters和dotnet-dump工具,解決了安裝中的Https證書和版本兼容問題。通過Top命令和dotnet-counters監(jiān)控,發(fā)現(xiàn)Gen 2和LOH內(nèi)存占用高,提示可能的內(nèi)存泄漏問題。
.NET的各種對(duì)象在內(nèi)存中如何布局[博文匯總]
https://www.cnblogs.com/artech/p/net-memory-layout.html
本文匯總了關(guān)于.NET對(duì)象類型布局的系列文章,包括值類型和引用類型的內(nèi)存布局、字符串和數(shù)組的特殊存儲(chǔ)方式。介紹了如何計(jì)算實(shí)例內(nèi)存大小、讀取實(shí)例內(nèi)存二進(jìn)制內(nèi)容、以二進(jìn)制形式在內(nèi)存中構(gòu)建對(duì)象、字符串和數(shù)組的內(nèi)存布局,以及如何用字節(jié)序列手動(dòng)構(gòu)建數(shù)組對(duì)象。
.NET Conf 2023 將在 11 月 15日-17 日 舉行 ,附中文日程表
https://www.cnblogs.com/shanyou/p/17826023.html
.NET Conf 2023將于北京時(shí)間11月15-17日舉行,發(fā)布.NET 8,為參與者提供虛擬體驗(yàn)。會(huì)議內(nèi)容涵蓋云原生、Blazor全棧、.NET MAUI和.NET智能應(yīng)用等主題。11月14日將直播.NET Conf Student Zone,介紹人工智能、網(wǎng)絡(luò)、移動(dòng)和游戲開發(fā)。12月16-17日,.NET Conf China 2023將展示更多內(nèi)容。活動(dòng)還邀請(qǐng)贊助商參與,詳情可訪問官網(wǎng)查看日程。會(huì)議將探討.NET 8的新功能,Blazor在.NET 8中的全棧Web UI,云原生應(yīng)用開發(fā),性能改進(jìn),C# 12的新特性,以及VS Code和C#開發(fā)工具包。
Net 高級(jí)調(diào)試之六:對(duì)象檢查之值類型、引用類型、數(shù)組和異常的轉(zhuǎn)儲(chǔ)
https://www.cnblogs.com/PatrickLiu/p/17812156.html
本文是《Net 高級(jí)調(diào)試》系列的第六篇,深入探討了C#中值類型和引用類型的內(nèi)存形態(tài),以及數(shù)組的內(nèi)存布局,并介紹了如何通過調(diào)試工具分析未捕捉異常導(dǎo)致的程序崩潰。作者分享了個(gè)人學(xué)習(xí)經(jīng)驗(yàn),強(qiáng)調(diào)理解基礎(chǔ)知識(shí)的重要性,并提供了調(diào)試環(huán)境的詳細(xì)說明。文章還講述了對(duì)象檢查、內(nèi)存轉(zhuǎn)儲(chǔ)、值類型和引用類型的轉(zhuǎn)儲(chǔ)方法,以及如何分析異常。最后,作者強(qiáng)調(diào)了通過實(shí)際代碼測(cè)試來(lái)驗(yàn)證學(xué)到的知識(shí)的重要性。
聊一聊 tcp/ip 在.NET故障分析的重要性
https://www.cnblogs.com/huangxincheng/p/17815469.html
本文通過.NET程序網(wǎng)絡(luò)故障分析強(qiáng)調(diào)計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識(shí)的重要性,特別是對(duì)tcpip協(xié)議的理解。作者通過兩個(gè)例子展示tcp協(xié)議在故障分析中的應(yīng)用。第一個(gè)例子是程序偶發(fā)性超時(shí),原因是代理服務(wù)器不穩(wěn)定。作者用WebAPI和HttpClient代碼示例,并用wireshark監(jiān)控流量,發(fā)現(xiàn)代理服務(wù)器故障導(dǎo)致的通訊問題。
Asp.Net Core webapi+net6 使用資源篩選器(過濾器) 做緩存
https://www.cnblogs.com/cyfj/p/17815126.html
本文介紹了如何在ASP.NET Core中使用ResourceFilter特性和MemoryCache實(shí)現(xiàn)方法級(jí)別的緩存。首先定義ResourceFilterAttribute類,標(biāo)記需要緩存的方法。然后創(chuàng)建ResourceFilter過濾器,利用IMemoryCache接口存取緩存,以請(qǐng)求IP和方法名作為緩存鍵。在ResourceFilter中,若緩存存在則直接返回結(jié)果,否則執(zhí)行方法并緩存結(jié)果。在程序啟動(dòng)時(shí),需注入MemoryCache服務(wù)并配置ResourceFilter。最后,在控制器的Action上加上ResourceFilter特性以啟用緩存。注意,避免緩存IQueryable和IEnumerable等延遲執(zhí)行類型,以免失去緩存的效果。
四個(gè)id 生成器性能比較記錄
https://www.cnblogs.com/fs7744/p/17823881.html
本文介紹了Seata改進(jìn)的雪花算法IdGenerator,是一個(gè)分布式UUID生成器。文章提供了C#語(yǔ)言的移植代碼,包含初始化時(shí)間戳、序列號(hào)和工作節(jié)點(diǎn)ID的方法,以及生成下一個(gè)ID的邏輯。該算法通過位運(yùn)算保證ID的唯一性和順序性,適用于分布式系統(tǒng)中生成唯一標(biāo)識(shí)符。
Welcome to YARP - 5.身份驗(yàn)證和授權(quán)
https://www.cnblogs.com/condding-y/p/17818749.html
本文介紹了YARP反向代理服務(wù)的身份驗(yàn)證和授權(quán)功能。身份驗(yàn)證確認(rèn)用戶身份,授權(quán)決定用戶權(quán)限,兩者在ASP.NET Core中有詳細(xì)文檔。YARP利用.NET的認(rèn)證授權(quán)機(jī)制,通過策略和中間件實(shí)現(xiàn),可減輕目標(biāo)服務(wù)器負(fù)載,保護(hù)應(yīng)用程序。
開發(fā)現(xiàn)代化的.NetCore控制臺(tái)程序:(2)創(chuàng)建一個(gè)C#項(xiàng)目模板
https://www.cnblogs.com/deali/p/17823731.html
本文介紹了FluentConsole.Templates腳手架模板,用于快速創(chuàng)建.NetCore控制臺(tái)應(yīng)用。模板提供依賴注入、日志、配置等現(xiàn)代化功能,并展示了如何安裝和使用模板創(chuàng)建項(xiàng)目。還詳細(xì)說明了項(xiàng)目目錄結(jié)構(gòu)和如何創(chuàng)建自己的項(xiàng)目模板。
話題
System.IO的便利性 - .NET博客
https://devblogs.microsoft.com/dotnet/the-convenience-of-system-io/
.NET 8中身份認(rèn)證的新特性 - .NET博客
https://devblogs.microsoft.com/dotnet/whats-new-with-identity-in-dotnet-8/
發(fā)布ILSpy 8.2 · icsharpcode/ILSpy
https://github.com/icsharpcode/ILSpy/releases/tag/v8.2
發(fā)布v6.1.0:新版本發(fā)布了!· CommunityToolkit/Maui
https://github.com/CommunityToolkit/Maui/releases/tag/6.1.0
發(fā)布版本v2.59.0 · grpc/grpc-dotnet
https://github.com/grpc/grpc-dotnet/releases/tag/v2.59.0
發(fā)布2.3.0 Beta 4 · mysql-net/MySqlConnector
https://github.com/mysql-net/MySqlConnector/releases/tag/2.3.0-beta.4
發(fā)布Microsoft.UI.Xaml v2.8.6 · microsoft/microsoft-ui-xaml
https://github.com/microsoft/microsoft-ui-xaml/releases/tag/v2.8.6
更多的Bug修復(fù):ReSharper 2023.2.3和Rider 2023.2.3已發(fā)布!| .NET工具博客
https://blog.jetbrains.com/dotnet/2023/11/03/resharper-rider-2023-2-3/
文章、幻燈片等
【C#】用反射操作固定長(zhǎng)度數(shù)組
https://zenn.dev/ruccho/articles/c000525edfaffe
在ASP.NET Core中從multipart/form-data部分讀取JSON和二進(jìn)制數(shù)據(jù)
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/
時(shí)隔多時(shí)的*游戲適配
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中運(yùn)行Lua腳本
https://khalidabuhakmeh.com/moonsharp-running-lua-scripts-in-dotnet
如何深入CLR
https://chnasarre.medium.com/how-to-dig-into-the-clr-bd67d884f8da
JetBrains Rider是如何實(shí)現(xiàn).NET WebAssembly調(diào)試的 | .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
探索對(duì)象布局 - 殺死一個(gè)模擬bug
https://vannevel.net/posts/exploring-object-layouts/
.NET HttpClient的可擴(kuò)展性:支持Unix域套接字和命名管道
https://medium.com/@madhus.bsg/net-httpclient-extensibility-support-for-unix-domain-sockets-named-pipes-abe3c66ffb6e
【C#】關(guān)于zero-byte reads的優(yōu)化和釘住 - ねののお庭。
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回顧日本 - 學(xué)習(xí)最新的.NET | 微軟活動(dòng)
https://mktoevents.com/Microsoft+Event/415522/157-GQE-382
.NET Conf 2023仙臺(tái) - connpass
https://minamimachi.connpass.com/event/298198/
庫(kù)、倉(cāng)庫(kù)、工具等
microsoft/inshellisense:IDE風(fēng)格的命令行自動(dòng)完成
https://github.com/microsoft/inshellisense
mikihiro-t/NormalizeJapaneseAddressesNET: 開源的地址規(guī)范化庫(kù)。.NET版本
https://github.com/mikihiro-t/NormalizeJapaneseAddressesNET
- 開源地址規(guī)范化庫(kù) NormalizeJapaneseAddresses .NET版本發(fā)布 - Qiita
網(wǎng)站、文檔等
推文
https://x.com/terrajobst/status/1722011787053424825?s=12
https://x.com/ufcpp/status/1720646144139911476?s=12&t=ggvrrZ7oLogHyNoIGNgjbw
版權(quán)聲明
- 國(guó)內(nèi)板塊由 InCerry 進(jìn)行整理 : https://github.com/InCerryGit/WeekRef.NET
- 其余內(nèi)容來(lái)自 Myuki WeekRef,由InCerry翻譯(已獲得授權(quán)) : https://github.com/mayuki/WeekRef.NET
由于筆者沒有那么多時(shí)間對(duì)國(guó)內(nèi)的一些文章進(jìn)行整理,歡迎大家為《.NET周刊-國(guó)內(nèi)文章》板塊進(jìn)行貢獻(xiàn),需要推廣自己的文章或者框架、開源項(xiàng)目可以下方的項(xiàng)目地址提交Issue或者在我的微信公眾號(hào)私信。
格式如下:
- 10~50字左右的標(biāo)題
- 對(duì)應(yīng)文章或項(xiàng)目網(wǎng)址訪問鏈接
- 200字以內(nèi)的簡(jiǎn)介,如果太長(zhǎng)會(huì)影響閱讀體驗(yàn)
https://github.com/InCerryGit/.NET-Weekly
.NET性能優(yōu)化交流群
相信大家在開發(fā)中經(jīng)常會(huì)遇到一些性能問題,苦于沒有有效的工具去發(fā)現(xiàn)性能瓶頸,或者是發(fā)現(xiàn)瓶頸以后不知道該如何優(yōu)化。之前一直有讀者朋友詢問有沒有技術(shù)交流群,但是由于各種原因一直都沒創(chuàng)建,現(xiàn)在很高興的在這里宣布,我創(chuàng)建了一個(gè)專門交流.NET性能優(yōu)化經(jīng)驗(yàn)的群組,主題包括但不限于:
- 如何找到.NET性能瓶頸,如使用APM、dotnet tools等工具
- .NET框架底層原理的實(shí)現(xiàn),如垃圾回收器、JIT等等
- 如何編寫高性能的.NET代碼,哪些地方存在性能陷阱
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能問題和寶貴的性能分析優(yōu)化經(jīng)驗(yàn)。目前一群已滿,現(xiàn)在開放二群。
如果提示已經(jīng)達(dá)到200人,可以加我微信,我拉你進(jìn)群: ls1075
另外也創(chuàng)建了QQ群,群號(hào): 687779078,歡迎大家加入。
抽獎(jiǎng)送書活動(dòng)預(yù)熱!!!
感謝大家對(duì)我公眾號(hào)的支持與陪伴!為慶祝公眾號(hào)一周年,抽獎(jiǎng)送出一些書籍,請(qǐng)大家關(guān)注公眾號(hào)后續(xù)推文!
總結(jié)
以上是生活随笔為你收集整理的.NET周刊【11月第2期 2023-11-12】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 暗黑3牧牛杖的饶舌宝石怎么刷 饶舌宝石速
- 下一篇: [WPF]动手写一个简单的消息对话框