https://www.cnblogs.com/eventhorizon/p/17557821.html
TimerQueue 是.NET中實現定時任務的核心元件,它是一個定時任務的管理器,負責儲存和排程定時任務。它被用於實現很多 .NET 中的定時任務,比如 System.Threading.Timer、Task.Delay、CancellationTokenSource 等。
筆者將用兩篇文章為大家介紹 TimerQueue 的實現原理,本篇文章將以 System.Threading.Timer 為入口,揭祕 TimerQueue 對定時任務基本單元 TimerQueueTimer的管理和排程,下一篇文章將介紹 TimerQueue 又是如何通過 native timer 被觸發的。
https://www.cnblogs.com/anech/p/17556457.html
Redis是一個開源的、高效能的、基於記憶體的鍵值資料庫,它支援多種資料結構,如字串、列表、集合、雜湊、有序集合等。其中,Redis的雜湊(Hash)結構是一個常用的結構,今天跟大家分享一個我的日常操作,如何使用Redis的雜湊(Hash)結構來快取和查詢物件的屬性值,以及如何用Lambda表示式樹來簡化這個過程。
https://www.cnblogs.com/czzj/p/ThreadPool.html
對於 Thread 和 ThreadPool 已經是元老級別的類了。Thread 是 C# 語言對執行緒物件的封裝,它從 .NET 1.0 版本就有了,然後 ThreadPool 是 .Net Framework 2.0 版本中出現的,都是相當成熟的存在。
當然,現在已經出現了 Task 和 PLinq 等更高效率的並行類,執行緒和執行緒池在實際開發中逐漸減少了,但是不能不知道他們的用法,因為總有需要對接的內容,別人用了你也得能看懂。
本文將結合範例,簡單介紹下 Thread 和 ThreadPool。
https://www.cnblogs.com/hejiale010426/p/17553901.html
一個收集了很棒的Blazor資源的集合。
Blazor是一個使用C#/Razor和HTML在瀏覽器中執行的.NET Web框架。
歡迎貢獻!請先檢視貢獻指南。感謝所有的貢獻者,你們真棒,沒有你們就不可能實現這個!
如果你需要在這個列表中搜尋,你可以嘗試這個很棒的網站:Awesome Blazor Browser。感謝@jsakamoto提供這個!原始碼
https://www.cnblogs.com/artech/p/17551034.html
一個物件總是對映一塊連續的記憶體序列(不考慮物件之間的參照關係),如果我們知道了參照型別範例的記憶體佈局,以及變數參照指向的確切的地址,我們不僅可以採用純「二進位制」的方式在記憶體「繪製」一個指定參照型別的範例,還能直接通過改變二進位制內容來更新範例的狀態。
https://www.cnblogs.com/GreenShade/p/17552324.html
之前有用這個MediaPipe.NET .NET包裝庫搞了手勢識別,豐富了稚暉君的ElectronBot機器人的第三方上位機軟體的功能,MediaPipe作為谷歌開源的機器視覺庫,功能很豐富了,於是就開始整活了,來體驗了一把人體姿態關鍵點檢測。
https://www.cnblogs.com/huangxincheng/p/17550195.html
前幾天有位朋友找到我,說他們公司的後端服務記憶體暴漲,而且CPU的一個核也被打滿,讓我幫忙看下怎麼回事,一般來說記憶體暴漲的問題都比較好解決,就讓朋友抓一個 dump 丟過來,接下來我們用 WinDbg 一探究竟。
https://www.cnblogs.com/artech/p/17547246.html
非公開的型別或者方法被「隱藏」在程式集內部,本就不希望從外部存取,但是有時候呼叫一個內部或者私有方法可能是唯一的「救命稻草」,這篇文章列出了幾種具體的實現方式。以如下這個Foobar型別為例,它具有一個內部屬性InternalValue,我們來看看有多少種方式可以從外部獲取一個Foobar物件的InternalValue屬性值。
public class Foobar
{
internal int InternalValue => 123;
}
https://www.cnblogs.com/InCerry/p/writing-a-net-profiler-in-c-sharp-part-4.html
這是在Datadog公司任職的Kevin Gosse大佬使用C#編寫.NET分析器的系列文章之一,在國內只有很少很少的人瞭解和研究.NET分析器,它常被用於APM(應用效能診斷)、IDE、診斷工具中,比如Datadog的APM,Visual Studio的分析器以及Rider和Reshaper等等。之前只能使用C++編寫,自從.NET NativeAOT釋出以後,使用C#編寫變為可能。
筆者最近也在嘗試開發一個執行時方法注入的工具,歡迎熟悉MSIL 、PE Metadata 佈局、CLR 原始碼、CLR Profiler API的大佬,或者對這個感興趣的朋友留聯絡方式或者在公眾號留言,一起交流學習。
https://www.cnblogs.com/Can-daydayup/p/17539010.html
本文來源於知乎的一個提問,提問的是一個大一軟體工程專業的學生,他想要自學C#但是不知道該怎麼去學,這讓他感到很迷茫,希望有人能給他一些建議和提供一些學習方向。
https://www.cnblogs.com/shanyou/p/17546509.html
2023年7月11日 .NET 8 Preview 6,.NET 團隊在官方部落格釋出了系列文章:
這個版本是倒數第二個預覽版,其中包含大量庫更新、新的 WASM 模式、更多source generators、持續的效能改進以及 iOS 上的 NativeAOT 支援等。
https://www.cnblogs.com/artech/p/17535283.html
C#具有一個預設開啟的程式碼分析規則:[CA1810]Initialize reference type static fields inline,推薦我們以內聯的方式初始化靜態欄位,而不是將初始化放在靜態建構函式中。
SWIG包裝器使用指南——(一)基本概念
SWIG包裝器使用指南——(二)C++程式碼的包裝
SWIG包裝器使用指南——(三)Typemap 型別對映
SWIG包裝器使用指南——(四)C#使用SWIG簡介與實踐
SWIG (Simplified Wrapper and Interface Generator)是一個exe小工具,主要用來包裝已有的 C/C++ 程式碼並生成目標語言(C#、Java、Lua、Python等)程式碼。可以極大簡化目標語言到C/C++的呼叫。上述文章對SWIG的使用做了基本介紹並結合C#呼叫到C++時的一些常見問題做了舉例說明。
https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-6/
.NET 8 預覽版 6 已釋出。
JsonStringEnumConverter<TEnum>
https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-in-dotnet-8-preview-6/
.NET 8 Preview 6 中對 .NET MAUI 的更新。
除了 Visual Studio Preview 之外,此版本還包含 Visual Studio Code 的擴充套件作為預覽版。它還可作為 Visual Studio for Mac 中的預覽功能使用。
Visual Studio Code 的 .NET MAUI 擴充套件預覽版。
此擴充套件提供 Windows、macOS 和 Linux 上的 .NET MAUI 開發,並支援在任何目標(例如不同的裝置或模擬器)上進行開發和偵錯。許可證是 Visual Studio 許可證,就像 C# Dev Kit 一樣。
https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-6/
.NET 8 Preview 6 中 ASP.NET Core 的更新。
https://devblogs.microsoft.com/dotnet/new-csharp-12-preview-features/
引入新的 C# 12 預覽功能。
https://devblogs.microsoft.com/dotnet/july-2023-updates/
.NET 7.0.9 和 6.0.20 釋出。
此版本包含多項安全修復和改進。
https://devblogs.microsoft.com/dotnet/dotnet-framework-july-2023-security-and-quality-rollup-updates/.NET Framework 2023 年 7 月累積安全和質量更新已釋出。
https://devblogs.microsoft.com/dotnet/systemweb-adapters-1_2/
System.Web Adaptor v1.2 已釋出。
此版本新增了對 IHttpModule 的支援和模擬,包括 ASP.NET Core 中的 HttpApplication、自定義對談金鑰序列化程式、IHtmlString 支援和其他 API。
本文還提供了增量遷移的指導。
https://blog.jetbrains.com/dotnet/2023/07/14/rsrp-rider-2023-2-eap9/
ReSharper 和 Rider 2023 EAP 9 釋出。
此版本帶來了一些改進,例如對主建構函式的更好的 C# 12 預覽支援、IAsyncDisposable 支援以及更好的丟棄「_」支援。
Microsoft Dev Box 現已全面上市。
https://blog.jetbrains.com/dotnet/2023/07/10/resharper-2023-2-eap-8/
引入 ReSharper 2023.2 EAP 8 中的新功能。
新增了在 ReSharper 和 dotPeek 中檢視程式集比較差異的功能。
https://dev.to/kashifsoofi/integration-test-postgres-with-testcontainers-dotnet-1gkn
如何使用 testcontainers-dotnet 與 PostgreSQL 進行整合測試。
https://visualstudiomagazine.com/articles/2023/07/13/xaml-blazor.aspx
Blazor 的 XAML 簡介,它允許您從 Userware 將 XAML 與 Blazor 結合使用。
https://dev.to/this-is-learning/how-to-prevent-the-screen-turn-off-after-a-while-in-blazor-4b29
如何使用 Blazor 中的螢幕喚醒鎖定 API 防止螢幕休眠。
https://blog.washi.dev/posts/tinysharp/
嘗試使顯示 Hello World 的 .NET 應用程式儘可能小。
本文使用各種技術將 4.6KB 的可執行檔案縮小到 834 位元組。
https://andrewlock.net/exploring-the-dotnet-8-preview-the-minimal-api-aot-template/
.NET 8 預覽版中最小 API 的 AOT 模板說明。
https://martinjt.me/2023/07/14/i-finally-found-a-use-for-logging-in-net/
在錯誤設定對 OpenTelemetry 的跟蹤時獲取錯誤紀錄檔的技術。
由於匯出器在後臺執行,即使發生錯誤,也不會出現在表中,因此事件由EventListener獲取。
https://dev.classmethod.jp/articles/devio2023-video-57-dotnet/
將 .NET 與 AWS Lambda 結合使用時,使用 NativeAOT 提高冷啟動效能。
https://jonhilton.net/blazor-ssr/
.NET 8 中 Blazor 的伺服器端渲染簡介
https://devblogs.microsoft.com/dotnet/azure-ad-microsoft-entra/
Azure Active Directory (Azure AD) 品牌重塑為 Entra Identity 對 .NET 開發人員有何影響。
對現有程式碼不會產生影響,因為庫和 URL 不會更改。
https://blog.jetbrains.com/dotnet/2023/07/13/debug-source-generators-in-jetbrains-rider/
Rider 中的源生成器偵錯簡介。
本文涵蓋了偵錯 Source Generator 生成的程式碼、偵錯 Source Generator 本身以及 Roslyn 模板。
https://inthehand.com/2023/07/11/titlebars-and-themes-a-winui-adventure/
有關調整 WinUI 標題列中的視窗按鈕和工作列預覽中的圖示以匹配 Windows 外觀的提示。
https://zenn.dev/jtechjapan/articles/d10e9e9c0d5bbe
如何在單元測試中通過Microsoft.Extensions.Logging的ILogger進行測試輸出。
本文展示瞭如何使用 MartinCostello.Logging.XUnit 包。
https://blog.jetbrains.com/dotnet/2023/07/11/dottrace-comes-to-benchmarkdotnet/
關於 BenchmarkDotNet 0.13.6 中引入的 dotTrace 整合。
DotTraceDiagnoser 允許在基準測試期間進行分析。開啟快照需要 dotTrace 許可證。
關於 .NET 8 中 ASP.NET Core 中引入的「WebApplication.CreateSlimBuilder」。
它詳細介紹了使用 AOT 受限設定啟動的構建器。
https://dev.to/mfkl/milestone-2-million-downloads-for-videolan-net-nuget-packages-k1e
VideoLAN .NET NuGet包賬戶總下載量突破200萬次下載及未來發展。
它涉及 LibVLC 4 支援、Unity、Uno 平臺和商業許可證。
https://qiita.com/mmake/items/946aea0d9a195aa5e3d4
Windows 和 Visual Studio、.NET 和 .NET Framework 支援日期以及支援的作業系統組合的摘要。
https://cakebuildnet.medium.com/cake-v3-1-0-released-c42728359d25
Cake v3.1.0 已釋出。
此版本包含多項改進。
https://blog.shibayan.jp/entry/20230710/1688920344
關於嘗試在 Windows 11 Insider Preview 中提供的開發卷 Dev Drive。
它還涉及使用 .NET 實際構建的結果以及如何利用寫入時複製。
https://www.youtube.com/watch?v=YbYwWaJsbwM
用於學習使用 Visual Studio Code 通過 HTML/CSS、ASP.NET Core Razor Pages 等進行 .NET 開發的視訊。
https://twitter.com/aspnet/status/1678569803554930689?s=12
https://marketplace.visualstudio.com/items?itemName=mhutch.MSBuildEditor
用於在 Visual Studio 中編輯 MSBuild 檔案的擴充套件。
https://twitter.com/mjhutchinson/status/1679272936195194885?s=12 網站、檔案等
https://twitter.com/davidfowl/status/1679223885256957952?s=12
https://twitter.com/ufcpp/status/1679133008882704384?s=12
https://twitter.com/davidfowl/status/1678738294933159937?s=12&t=ggvrrZ7oLogHyNoIGNgjbw
由於筆者沒有那麼多時間對國內的一些文章進行整理,歡迎大家為《.NET週刊-國內文章》板塊進行貢獻,需要推廣自己的文章或者框架、開源專案可以下方的專案地址提交Issue或者在我的微信公眾號私信。
格式如下:
https://github.com/InCerryGit/.NET-Weekly
相信大家在開發中經常會遇到一些效能問題,苦於沒有有效的工具去發現效能瓶頸,或者是發現瓶頸以後不知道該如何優化。之前一直有讀者朋友詢問有沒有技術交流群,但是由於各種原因一直都沒建立,現在很高興的在這裡宣佈,我建立了一個專門交流.NET效能優化經驗的群組,主題包括但不限於:
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET效能問題和寶貴的效能分析優化經驗。目前一群已滿,現在開放二群。
如果提示已經達到200人,可以加我微信,我拉你進群: lishi-wk
另外也建立了QQ群,群號: 687779078,歡迎大家加入。
感謝大家對我公眾號的支援與陪伴!為慶祝公眾號一週年,抽獎送出一些書籍,請大家關注公眾號後續推文!