https://mp.weixin.qq.com/s/HJYnBE-7wbvkAYHxQaq3eQ
我和擁有多個.NET 千星開源專案作者九哥一拍即合,為了讓更多的人瞭解 Kestrel,計劃寫一系列的文章來介紹它;本文是九哥釋出的第一篇,通過 Kestrel 實現一個 Redis 的偽伺服器,帶大家瞭解 Kestrel 除了承載 HTTP 協定,還有其它更多的可能性,DotNetty 能做到的,Kestrel 同樣也可以。
https://www.cnblogs.com/artech/p/16950268.html
在《用最少的程式碼模擬gRPC四種訊息交換模式》中,我使用很簡單的程式碼模擬了gRPC四種訊息交換模式(Unary、Client Streaming、Server Streaming和Duplex Streaming),現在我們更近一步,試著使用極簡的方式打造一個gRPC框架(github地址)。這個gRPC是對ASP.NET Core gRPC實現原理的模擬,並不是想重新造一個輪子。
https://www.cnblogs.com/huangxincheng/p/16965632.html
.NET 高階偵錯要想玩的好,看懂組合是基本功,但看懂組合和能寫點組合又完全是兩回事,所以有時候看的多,總手癢癢想寫一點,在 Windows 平臺上搭建組合環境不是那麼容易,大多還是用微軟的 MASM + DosBox
搭一個 8086 的環境,這玩意距今快 50 年了,今天為大家介紹介紹。
https://www.cnblogs.com/kewei/p/16955086.html
網路框架千千萬萬,在dotnet平臺,我們可以直接手擼Socket,也可以基於dotnetty來開發,或者選擇某些第三方類似於dotnetty的網路庫,為何我要推薦Kestrel呢?
https://www.cnblogs.com/rupeng/p/16961982.html
前幾天,一位網友跟我說他編寫的一段很簡單的程式碼遇到了奇怪的Bug,他要達到的效果是從一個List中隨機取出來一條資料,程式碼很簡單但是有BUG,帶大家一起了解下。
https://www.cnblogs.com/InCerry/p/use-arraypool-with-naver-clear-array.html
大佬您好,之前讀了您的文章受益匪淺,我們有一個專案經常佔用 7-8GB 的記憶體,使用了您推薦的ArrayPool
以後降低到 4GB 左右,我還想著能不能繼續優化,於是 dump 看了一下,發現是ArrayPool
對應的一個陣列有幾萬個物件,這個類有 100 多個屬性。我想問有沒有方法能複用這些物件?感謝!
https://mp.weixin.qq.com/s/_3LWLTa2Oyn0jwdIuJ1zsw
Jellyfin 是一個使用.NET6編寫的免費的媒體系統,它可以讓您更好的管理媒體,包括電影,音樂,圖書,照片等,它是 Emby 和 Plex 的替代方案,在 Github 開源並擁有18.6k 的 Star。
https://mp.weixin.qq.com/s/Agk3i-YLqNQfcjG4Vc-cIQ
dotnet-exec
是一個可以執行 C# 程式而不需要專案檔案的命令列工具,並且你可以指定自定義的入口方法不僅僅是Main
方法。
https://mp.weixin.qq.com/s/Ga-jBE8iih7KtQVjefwlnw
我們很高興地宣佈 C# 11 已經發布!與往常一樣,C# 開闢了一些全新的領域,同時推進了過去版本中一直在執行的幾個主題。我們的檔案頁面上的 C# 11 的新增功能下有許多功能和詳細資訊,這些內容都得到了很好的介紹。
https://mp.weixin.qq.com/s/E-7y8hV006dhx7TBMrM5Gg
本文是「.NET Conf China 2022」上我的一個分享,這裡更細化的分享出來。分享分為四個部分:1. 制定目標、2.設計應用、3. 正確測試、4.效能優化。
https://mp.weixin.qq.com/s/TqltBB4E-Z6w48z1K-Y6tw
在.NET下常用OpenCV進行影象處理工作,常用的.NET下的OpenCV庫有Emgu CV和OpenCVSharp。今天我們就來和大家介紹一些OpenCvSharp。
https://mp.weixin.qq.com/s/J58yfxbtT7gspZSCEEMK_w
這裡針對GPS接收的WGS84橢球的經緯度轉換為地方座標系的問題,利用C#,對工程座標轉換方法和步驟做出詳細的解答。不基於任何類庫和函數庫,也未使用矩陣庫,可以便利的將程式碼移植到任何語言。
https://devblogs.microsoft.com/dotnet/dotnet-7-networking-improvements/
介紹.NET 7中與網路有關的改進的文章。該文章詳細介紹了以下專案:
https://devblogs.microsoft.com/visualstudio/try-out-visual-studio-2022-17-5-preview-2/
Visual Studio 2022版17.5預覽版已經發布。
https://devblogs.microsoft.com/dotnet/december-2022-updates/
.NET 7.0.1、.NET 6.0.12和.NET Core 3.1.32已被髮布。
該版本包含一個安全修補程式,它修復了一個遠端程式碼執行漏洞,該漏洞允許通過開啟精心製作的XPS檔案來執行程式碼。
這也是.NET Core 3.1的最後一個版本,它將在2022年12月13日不被支援。
2022年12月釋出的.NET框架安全和累積捲動更新。
該版本包含一個安全修補程式,並修復了一個遠端程式碼執行漏洞,該漏洞允許通過開啟精心製作的XPS檔案執行程式碼。
https://github.com/IronLanguages/ironpython3/releases/tag/v3.4.0
IronPython 3.4.0已經發布。
該版本支援Python 3.4語法和標準庫。 它還支援一些較新版本的語法,等等。
執行時目標是.NET框架4.6.2、.NET Core 3.1和.NET 6。
它也以.NET工具的形式釋出,可以通過dotnet tool install -g IronPython.Console
來安裝和執行。
-IronPython 3.4.0終於正式釋出了- 與.NET整合的Python語言的開源實現/從'Python 2'過渡到'Python 3' - Windows森林
https://devblogs.microsoft.com/dotnet/polyglot-notebooks-december-2022-release/
2022年12月釋出的Polyglot Notebooks(以前的.NET Interactive)。
https://github.com/mysql-net/MySqlConnector/releases/tag/2.2.2
Async MySqlConnector 2.2.2已經發布。
該版本修復了TLS連線初始化和連線異常時物件銷燬過程中的記憶體漏失。
https://code.visualstudio.com/updates/v1_74
Visual Studio Code 1.74(1.74.1)已經發布。
console.profile
收集此外,在1.74版釋出後,1.74.1版也已釋出,並對各種錯誤進行了修復。
https://devblogs.microsoft.com/dotnet/migrating-from-asp-net-to-asp-net-core-part-5/
一系列關於從ASP.NET遷移到ASP.NET Core的文章,其中System.Web.Adapter 1.0現已釋出。
這篇文章介紹了遷移的Visual Studio擴充套件和System.Web.Adapter的更新。
https://devblogs.microsoft.com/visualstudio/dev-tunnels-in-visual-studio-for-asp-net-core-projects/
一篇關於Dev tunnels(開發隧道)的介紹性文章,這是Visual Studio中ASP.NET Core專案可用的預覽功能。
Dev tunnels是一種埠轉發功能,允許從外部來源(如ngrok)存取本地環境。
文章介紹了最新的更新和如何使用該功能,永續性和臨時性隧道的區別,工具視窗和環境變數支援。
https://ufcpp.net/blog/2022/12/unused-generic-type-parameter/
關於執行時行為問題的文章,涉及結構體的泛型和包含它們的結構。
如果struct A<T> {}
被定義為struct B { A<B> Value; }
,我們談論的是防禦性地丟擲一個異常,儘管它不是遞迴。
https://dev.classmethod.jp/articles/net-lambda-native-aot/
文章中對AWS Lambda支援的.NET應用的Native AOT進行了實際測試。
在文章中,除了使其發揮作用的程式外,還測量並提到了實際的啟動時間。 (本地AOT較慢,等等。)
https://zenn.dev/tomori_k/articles/966f34daea405a
關於在.NET MAUI中實現一個備忘錄應用程式的文章。
https://blog.shibayan.jp/entry/20221211/1670748155
關於在NuGet 6.4中使用中央包管理來集中管理專案的包版本的文章。
文章還提到了轉換器的存在和關於Dependabot的說明。
https://qiita.com/jsakamoto/items/91c86a0f34de6e6d77b9
關於如何通過在Blazor WebAssembly中進行組合修剪來減少檔案大小的文章。
https://qiita.com/jsakamoto/items/3d749a9ba4f8523b5291
關於用Playwright測試Blazor伺服器時的一個問題,即在事件處理程式連線到預渲染的內容之前,Playwright以讀完的方式執行。
https://devblogs.microsoft.com/visualstudio/whats-new-in-visual-studio-productivity/
關於Visual Studio生產力的新功能的文章。
https://ufcpp.net/blog/2022/12/extension-resolution/
一篇解釋擴充套件方法不能用於隱式型別轉換的文章。
https://andrewlock.net/5-new-mvc-features-in-dotnet-7/
文章介紹了.NET 7中ASP.NET Core MVC的5個新特性。
IParseable
, TryParse
.[FromServices]
為依賴注入IResult
關於如何使用Keycloak作為Blazor WebAssembly的IdP的文章。
https://qiita.com/seuharuka/items/6f77983a179042b48e59
一篇介紹和使用Dev tunnels功能的文章,這是Visual Studio 2022的一個預覽功能。
https://qiita.com/skitoy4321/items/77aff330a4ce63dd977c
文章總結了.NET 7中支援的C# 11功能在.NET 6和.NET Framework 4.8中可以使用(但不一定支援)的程度。
https://zenn.dev/proudust/articles/2022-12-06-build-maui-on-gh-actions
關於GitHub Actions上支援狀態和構建.NET MAUI應用程式步驟的文章。
https://zenn.dev/okazuki/articles/dynamic-items-form-in-blazor
一篇關於如何使用Blazor動態地增加和減少表單中的專案數量,以及進行驗證的文章。
關於如何在Android和iOS上使用CommunityToolkit.Maui.MediaElement(預覽版)進行後臺串流媒體音訊的文章。
https://qiita.com/lx-sasabo/items/557ff31eee36429d229e
關於調查在用MSBuild構建後執行dotnet測試可能導致構建再次被執行的情況的文章。
該文章指出,結果因是否使用Microsoft.NET.Build.Extensions而發生變化。
https://code-maze.com/schedule-jobs-with-quartz-net/
關於如何用Quartz.NET排程Job並在後臺處理的文章。
介紹使用Wolverine(一種調解器/訊息匯流排)進行的伺服器開發。
https://qiita.com/nobu17/items/824c39493f7b12e94f7b
一篇關於將Blazor WebAssembly部署到fly.io並在伺服器端用EF Core連線PostgreSQL等的文章。
https://qiita.com/MAUIHighSchool/items/232e1bb3d65080f2c548
從Figma的設計到建立一個UI元件,都需要使用.NET MAUI程式碼。
關於如何通過在ASP.NET Core Identity中客製化2FA的令牌提供者,嘗試從6位數改為4位元數的文章。
https://qiita.com/kk-river/items/d974b02f6c4010433a9e
CommunityToolkit.Mvvm 8.0.0的一篇介紹性文章。
它介紹了屬性、命令程式碼生成、信使等。
https://steven-giesel.com/blogPost/f4bc6fcc-5691-4f72-b9bb-75aeeb59230a
文章介紹了正在考慮在.NET 8中加入ArgumentException
和ArgumentOutOfRangeException
的輔助方法。
https://maoni0.medium.com/is-the-regression-in-gc-or-something-else-38f10018dd21
關於GC中的倒退的文章。
它解釋說,有些效能退步看起來像GC效能退步,但其實不是,例如當你升級.NET版本時,你可以通過使用舊的GC來檢查它是否確實存在效能退步。
https://medium.com/accessibleai/text-classification-in-c-with-ml-net-2-0-bc979dfd8ca9
關於如何使用ML.NET 2.0進行文字分類的文章。
https://qiita.com/MAUIHighSchool/items/393ba93e2eade7f8c9b9
關於如何通過在.NET MAUI中嵌入Stripe SDK在您的應用程式中實現信用卡支付的文章。
https://qiita.com/sh1ch/items/0b6add41584b5ba7f698
用程式碼介紹C# 11的新特性的文章。
https://medium.com/@saeedeldah/managing-multiple-versions-of-your-api-with-net and-swagger-47b4143e8bf5
關於如何使用API Explorer將ASP.NET Core Web API版本管理與Swagger結合起來的文章。
https://qiita.com/Gaku_Ishii/items/ad4abb1e0073519877d7
文章展示瞭如何用Native AOT將.NET程式碼構建為一個本地庫,並從PHP和Go中呼叫它。
https://github.com/ugai/narabemi
一個用於並排視訊比較的工具。
https://github.com/hadashiA/VYaml
一個高效能、節省記憶體的YAML庫,針對.NET Standard 2.1的過渡。
https://github.com/davidfowl/SmartLoadBalancer/
為類似SignalR的東西實驗性地實現了沒有粘性的對談。它的工作原理是反覆嘗試轉發請求,直到一個成功的SignalR伺服器被YARP拉到。
Newtonsoft.Json 13.0.1有一個小的退步,沒有影響到大多數人,這被誤認為是不能使用的(就像對13.0.2一樣,因為它打了修補程式但不能使用),並被標記為脆弱版本。
https://twitter.com/jamesnk/status/1600844999783903233?s=12
https://github.com/microsoft/Microsoft.IO.RecyclableMemoryStream/issues/258
RecyclableMemoryStream 3.0版本的規劃
由於筆者沒有那麼多時間對國內的一些文章進行整理,歡迎大家為《.NET週報-國內文章》板塊進行貢獻,需要推廣自己的文章或者框架、開源專案可以下方的專案地址提交Issue或者在我的微信公眾號私信。
格式如下:
https://github.com/InCerryGit/.NET-Weekly
相信大家在開發中經常會遇到一些效能問題,苦於沒有有效的工具去發現效能瓶頸,或者是發現瓶頸以後不知道該如何優化。之前一直有讀者朋友詢問有沒有技術交流群,但是由於各種原因一直都沒建立,現在很高興的在這裡宣佈,我建立了一個專門交流.NET效能優化經驗的群組,主題包括但不限於:
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET效能問題和寶貴的效能分析優化經驗。由於已經達到200人,可以加我微信,我拉你進群: ls1075