https://www.cnblogs.com/shawshank/p/17420469.html
園子裡的有朋友在下載並瞭解了《C# 實現 Linux 視訊會議(原始碼,支援信創環境,銀河麒麟,統信UOS)》中提供的原始碼後,留言給我說,這個視訊會議有點複雜了,程式碼比較多,看得有些費勁。問我能不能整個簡單點的Demo,只要有視訊聊天和遠端桌面的功能就可以。於是,我就又寫了一個Demo來供大家參考,它可以在Windows和Linux(包括國產OS,如銀河麒麟、統信UOS、深度Deepin等)上執行。
https://www.cnblogs.com/jevonsflash/p/17519792.html
本文介紹瞭如何在.NET MAU中實現Material You風格的時鐘小部件,包括鋸齒錶盤、時鐘指標和文字路徑的繪製方法。文中給出了詳細的程式碼範例和效果圖,以及相關的字型設定和Xaml檔案。
https://www.cnblogs.com/huangxincheng/p/17516112.html
本文介紹瞭如何在Windows和Linux平臺上自主生成dump檔案,以便於診斷.NET程式的異常情況。文中分別介紹了使用Win32 API的MiniDumpWriteDump方法和使用Microsoft.Diagnostics.NETCore.Client庫的WriteDump方法的程式碼範例和執行結果。
https://www.cnblogs.com/InCerry/p/writing-a-net-profiler-in-c-sharp-part-2.html
這篇文章介紹了Kevin Gosse大佬使用C#編寫.NET分析器的系列文章之一。.NET分析器常被用於APM(應用效能診斷)、IDE、診斷工具中,比如Datadog的APM,Visual Studio的分析器以及Rider和Reshaper等等。本文主要講述瞭如何將COM物件對映到.NET中的一個實際物件範例,以及如何使用GCHandle來獲取與該控制程式碼關聯的固定地址,並使用GCHandle.FromIntPtr從該地址檢索控制程式碼。
https://www.cnblogs.com/artech/p/17469614.html
之前參與一個機票價格計算的專案,為他們設計了基本的處理流程,但是由於整個計算流程相當複雜,而且變化非常頻繁,導致日常的修改、維護和升級也變得越來越麻煩,當我後來再接手的時候已經看不懂計算邏輯了。為了解決這個問題,我借鑑了「工作流」的思路,試圖將整個計算過程設計成一個工作流。但是我又不想引入一個獨立的工作流引擎,於是寫了一個名為Pipelines的框架。顧名思義,Pipelines通過構建Pipeline的方式完成所需的處理流程,整個處理邏輯被分解並實現在若干Pipe中,這些Pipe按照指定的順序將完成的Pipeline構建出來。Pipeline本質上就是一個簡單的順序工作流,它僅僅按序執行註冊的Pipe。這個簡單的Pipelines框架被放在這裡,這裡我不會介紹它的設計實現,只是簡單地介紹它的用法,有興趣的可以檢視原始碼。
https://www.cnblogs.com/Z7TS/p/17494203.html
.NET本身就是一個基於中介軟體(middleware)的框架,它通過一系列的中介軟體元件來處理HTTP請求和響應。在之前的文章《.NET原始碼解讀kestrel伺服器及建立HttpContext物件流程》中,已經通過原始碼介紹瞭如何將HTTP封包轉換為.NET的HttpContext物件。接下來,讓我們深入瞭解一下.NET是如何設計中介軟體來處理HttpContext物件。
https://www.cnblogs.com/huangxincheng/p/17513935.html
經常有朋友跟我反饋,說看你的文章就像看天書一樣,有沒有一些簡單入手的dump 讓我們先找找感覺,哈哈,今天就給大家帶來一篇入門級的案例,這裡的入門是從 WinDbg 的角度來闡述的,這個問題如果你通過 記紀錄檔,分析程式碼 的方式,可能真的無法解決,不信的話繼續往下看唄!
前段時間有位朋友微信上找到我,說他的程式崩潰了,也沒找出是什麼原因,然後就讓朋友抓一個崩潰的dump讓我看看。
https://www.cnblogs.com/artech/p/17509624.html
我在面試的時候經常會問一個問題:「談談值型別和參照的區別」。對於這個問題,絕大部分人都只會給我兩個簡潔的答案:「值型別分配在棧中,參照型別分配在堆中」,「在預設情況下,值型別引數傳值(拷貝),參照型別引數傳參照」。其實這個問題有很大的發揮空間,如果能夠從記憶體佈局、GC、互操作、跨AppDomain傳遞等方面展開,相信會加分不少。這篇文章獨闢蹊徑,從「變數」的角度討論值型別和參照型別的區別。
https://www.cnblogs.com/czzj/p/NETCoreCors.html
當把開發好的 WebApi 介面,部署到 Windows 伺服器 IIS 後,postman 可以直接存取到介面並正確返回,這並不意味著任務完成,畢竟介面嘛是要有互動的,最常見的問題莫過於跨域了。若前端檔案是在當前介面檔案下的 wwwroot 資料夾下,那麼介面的存取就沒問題,因為是同協定(http、https)、同地址(域名)、同埠,不存在跨域問題。但是,若前端和介面不是部署在一起的,那麼一般都會存在跨域問題,本文將通過兩種方式介紹如何使介面允許跨域請求。
https://www.cnblogs.com/huangxincheng/p/17508154.html
前段時間有個朋友找到我,說他們的程式有偶發崩潰的情況,讓我幫忙看下怎麼回事,針對這種 crash 的程式,用 AEDebug 的方式抓取一個便知,有了 dump 之後接下來就可以分析了。
https://www.cnblogs.com/huangxincheng/p/17505313.html
有很多朋友跟我說,在 Windows 上看過你文章知道了怎麼抓 Crash, CPU爆高,記憶體暴漲 等各種Dump,為什麼你沒有寫在 Docker 中如何抓的相關文章呢?瞧不上嗎?哈哈,在DUMP的分析旅程中,跑在 Docker 中的 .NET 佔比真的不多,大概10個dump有 1-2 個是 docker 中的,市場決定了我的研究方向,為了彌補這一塊的空洞,決定寫一篇文章來分享下這三大異常下的捕獲吧。
https://blog.jetbrains.com/dotnet/2023/06/26/resharper-ai-assistant/
ReSharper 2023.2 EAP 6 已釋出。
此版本包含一個利用大型語言模型的人工智慧助手。這將允許您通過 Visual Studio 中的聊天詢問有關改程序式碼的問題。
更多 C# 支援、LINQ 嵌入提示、dotTrace Linux、macOS 原始碼檢視等。
https://blog.jetbrains.com/dotnet/2023/06/26/rider-ai-assistant/
Rider 2023.2 EAP 6 已釋出。
此版本包含一個利用大型語言模型的人工智慧助手。這提供了諸如聊天式幫助、提交訊息生成和檔案生成等功能。
其他更新的 C# 支援、新使用者的新 UI 預設值、每個專案的自定義顏色、可存取性改進、新增的結構檢視過濾器和排序、Roslyn(源生成器)改進和模板、遠端偵錯程式,例如 ARM32 支援
https://github.com/Cysharp/MagicPhysX
物理引擎 PhysX 5 的 .NET 繫結庫已釋出。
https://twitter.com/neuecc/status/1674688540339499010?s=12
關於使用.NET 8 Preview 4 SDK構建的程式集的AssemblyInformationVersion現在有原始碼修訂。
文章還介紹了防止修改的設定方法。
如何在 ASP.NET Core 中實現 WebSocket 伺服器並與使用者端通訊。
https://qiita.com/fsdg-adachi_h/items/1fe094f4f1a0556045ae
如何使用語意核心連結多個外掛。
隆重推出 Jetbrains Qodana,它可以分析和報告 C# 程式碼。
https://visualstudiomagazine.com/articles/2023/06/27/open-vsx-registry.aspx
關於 Open VSX 登入檔,它是 Visual Studio Marketplace 的替代方案。
https://devblogs.microsoft.com/ifdef-windows/microsoft-store-open-source-series-appservices-library/
它引入了一種名為 AppService 的機制,該機制與 Microsoft Store 應用程式和完全受信任的 Win32 應用程式中使用的 UWP 進行通訊,以及一個利用它的庫。
本文提到使用一種機制通過 Community Kit Lab 的 Source Generator 生成代理。
對 .NET 8 Preview 3 中引入的 Microsoft.Extensions.Configuration 的基於源生成器的繫結器的討論。
本文涉及如何安裝它、它的實際工作原理以及當前的問題/限制。
https://qiita.com/jun1s/items/903570264d1bfb62cf14
在設定為使用 cookie 身份驗證和 JWT 的 ASP.NET Core 應用程式中,如果使用 AntiForgery 並行生 JWT 重新整理,AntiForgery 令牌驗證失敗以及如何解決它。
關於使用 RuntimeHelpers.IsReferenceOrContainsReferences 進行集合微優化。
例如,對於參照型別,在 Pop 等情況下需要從內部陣列中刪除參照,但對於值型別來說,有減少索引而不刪除元素等技巧,IsReferenceOrContainsReferences 就很有用那時。
https://khalidabuhakmeh.com/using-stringbuilder-to-replace-values
關於使用 StringBuilder 進行字串替換。
與使用 String 的 Replace 替換相比,使用 StringBuilder 可以減少分配。
https://qiita.com/gazf/items/085a93cabf10e745e227
嘗試以較少分配的方式重新實現 Process.GetProcessesByName。
https://ufcpp.net/blog/2023/6/init-order/
存在多個模組初始值設定項(「ModuleInitializer」)時執行順序的描述。
https://minidump.net/writing-a-net-profiler-in-c-part-4-c54df903b9ce
使用 C# (NativeAOT) 建立 .NET 分析器系列的第 4 部分。
https://blog.xin9le.net/entry/2023/06/25/230203
針對Swashbuckle.AspNetCore.Cli不支援Top-level statements導致生成失敗問題的對策。
它展示瞭如何實現建立專門稱為 IHost 的方法。
MessagePack-CSharp 從個人帳戶移至組織(預發行版本支援源生成器)。
https://twitter.com/neuecc/status/1674179032349306884?s=12
您可以通過設定 .csproj 中的 MapPath 屬性來更改堆疊跟蹤中顯示的路徑。
https://twitter.com/karenpaynemvp/status/1674152970668351488?s=12
C# 12 內聯陣列合併到 Visual Studio 2022 17.7 Preview 3 中。
https://twitter.com/jcouv/status/1673780113434091520?s=12
由於筆者沒有那麼多時間對國內的一些文章進行整理,歡迎大家為《.NET週報-國內文章》板塊進行貢獻,需要推廣自己的文章或者框架、開源專案可以下方的專案地址提交Issue或者在我的微信公眾號私信。
格式如下:
https://github.com/InCerryGit/.NET-Weekly
相信大家在開發中經常會遇到一些效能問題,苦於沒有有效的工具去發現效能瓶頸,或者是發現瓶頸以後不知道該如何優化。之前一直有讀者朋友詢問有沒有技術交流群,但是由於各種原因一直都沒建立,現在很高興的在這裡宣佈,我建立了一個專門交流.NET效能優化經驗的群組,主題包括但不限於:
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET效能問題和寶貴的效能分析優化經驗。目前一群已滿,現在開放二群。
如果提示已經達到200人,可以加我微信,我拉你進群: lishi-wk
另外也建立了QQ群,群號: 687779078,歡迎大家加入。
感謝大家對我公眾號的支援與陪伴!為慶祝公眾號一週年,抽獎送出一些書籍,請大家關注公眾號後續推文!