https://www.cnblogs.com/shanyou/p/17858385.html
本文介紹了openEuler作業系統,它支援多處理器架構,包括X86、ARM等,並計劃支援更多晶片架構。openEuler社群正通過場景化的特別興趣小組(SIG)擴充套件應用範圍,覆蓋伺服器、雲端計算、邊緣計算到嵌入式等多個場景。作者曾推廣尤拉執行.NET Core,因其對ARM的優秀支援獲得華為雲MVP。同時,文章提到微軟.NET Framework的開源歷程,.NET Core遵循ECMA標準,現已成為全場景開發平臺。中國.NET社群的發展需要優質開源社群支援,openEuler為合作伙伴提供了機會。2023中國.NET開發者峰會將展示科技進步,openEuler作為贊助商參與,邀請更多贊助者加入。
https://www.cnblogs.com/Yu-Core/p/17855661.html
本文提出了在MAUI Blazor應用中顯示本地媒體檔案的新方法。文章首先指出了之前方案的不足,如不同平臺URL不統一、音視訊檔無法播放、Windows上大檔案顯示限制和iOS/Mac的跨域問題。隨後,文章介紹瞭如何通過修改專案檔案和新增處理ContentType的靜態類來完善方案。具體包括在.csproj檔案中設定基於檔名的多目標,以及建立StaticContentProvider.cs來獲取檔案ContentType。這樣,可以在前端統一使用特定格式的URL來顯示或播放原生的圖片和視訊檔。
https://www.cnblogs.com/MeteorSeed/p/17851304.html
Visual Studio 2022 17.8版本帶來了效能提升,包括非同步檔案開啟、改進Razor/Blazor響應性、加速F5、優化C++虛幻引擎智慧感知和加快非SDK風格.NET專案構建。這些更新提高了編碼效率,特別是在處理大檔案和複雜專案時。使用者可通過設定特定屬性來啟用非SDK專案的構建加速。微軟鼓勵使用者反饋,以進一步優化Visual Studio體驗。
https://www.cnblogs.com/czwy/p/17862702.html
本文介紹了.NET中的六種定時器,分為UI定時器和UI無關定時器。UI定時器包括WinForm、WPF和WebForm的定時器,它們在UI執行緒上執行,簡化了執行緒安全問題。WinForm定時器簡單易用,但精度不高;WPF定時器基於Dispatcher,精度不準確,可能延遲;WebForm定時器通過Javascript和伺服器端回撥實現,保證單一非同步回撥。UI無關定時器適用於後臺任務,不涉及UI操作,從.NET 6開始有三種。每種定時器根據應用場景選擇,以滿足不同的精度和執行緒安全需求。
https://www.cnblogs.com/hanbing81868164/p/17856515.html
本文介紹了HtmlAgilityPack,這是一個.NET平臺的HTML解析庫,能將HTML轉換為DOM物件,支援XPath查詢並提供API進行HTML操作。安裝HtmlAgilityPack需通過Visual Studio的NuGet包管理器。使用時,先載入HTML到HtmlDocument物件,再通過XPath獲取DOM節點,可進行節點修改,如改屬性或內容。還能將DOM物件轉換回HTML文字。文中舉例說明了如何獲取頁面標題、所有圖片和連結。
https://www.cnblogs.com/Can-daydayup/p/17860547.html
本文講述了在ASP.NET Core Web API中設定Json響應格式的方法。介紹了兩種JSON序列化庫:內建的System.Text.Json和功能強大的Newtonsoft.Json。文章指出,可以全域性設定Json屬性名稱序列化方式和日期格式,以滿足前端需求。通過範例展示了未設定前的API輸出Json資料,並介紹瞭如何使用System.Text.Json進行全域性設定,以自定義時間輸出格式。
https://www.cnblogs.com/goodtimeggb/p/17862867.html
本文介紹了Cron表示式,這是一種在Unix系統中用於定時任務的字串格式,包含六個欄位,用空格分隔。通過數位和特殊字元定義執行時間,如"*"代表所有值,"-"定義範圍。文中提供了Cron表示式的範例,並介紹了在.NET中使用NCrontab和Quartz庫來解析和執行Cron表示式的方法。NCrontab不支援秒級,而Quartz支援,適合需要精確控制的任務。
https://www.cnblogs.com/pandefu/p/17860440.html
本文講述了在VS2022中偵錯.Net原始碼的方法。首先,需要在"工具"-"選項"-"文字編輯器"-"C#"-"高階"-"轉到定義"中勾選所有選項以檢視原始碼。其次,要啟用原始碼單步執行,包括取消選擇"啟用僅我的程式碼",選擇"啟用源連結支援",並在"符號"下選擇"Microsoft 符號伺服器"。設定後,首次啟動應用時會有符號載入時間。通過這些設定,可以在"呼叫堆疊"視窗中下載和載入符號進行原始碼偵錯。文章還建議通過實踐提升偵錯技巧,以便更好地理解框架工作原理和提高解決BUG的效率。
https://www.cnblogs.com/broadm/p/17862169.html
本文講述了C#中結構體的唯讀屬性對程式碼行為的影響。通過範例展示了將結構體成員設為唯讀後,嘗試修改其欄位值時,編譯器不報錯但修改不成功,因為唯讀機制會導致欄位值在堆疊上拷貝。這種隱蔽的行為可能引發BUG,如自旋鎖範例中的計數錯誤。文章建議在結構體或欄位需要唯讀時,使用readonly關鍵字直接修飾,以避免潛在問題。
https://www.cnblogs.com/tansm/p/CSharp-Generic-Performance.html
本文探討了C#中泛型的編譯行為,特別是結構和類作為泛型引數時對效能的不同影響。結構作為值型別,儲存在棧上,泛型引數為結構時編譯器生成特定實現,提升效能,減少裝箱拆箱。類作為參照型別,儲存在堆上,泛型引數為類時編譯器生成通用實現,可能導致效能下降。效能測試顯示結構型別泛型引數效能較高,類型別泛型引數效能略低。
https://www.cnblogs.com/tianqing/p/17864122.html
本文介紹了中介軟體IIS的監控指標和設定最佳實踐。關鍵效能計數器包括Web服務的當前連線數、每秒請求數等,ASP.NET的請求執行時間、請求排隊數等,以及CPU和記憶體的使用情況。最佳實踐建議定期回收應用程式池,合理設定工作程序數,啟用輸出和靜態內容快取,以及壓縮以提升效能。監控和紀錄檔記錄需適度,安全設定要定期更新。IIS請求佇列是處理前臨時存放請求的地方,監控請求佇列的效能計數器有助於優化佇列設定,如增加工作程序數、優化程式碼和調整佇列長度,以減少等待時間,確保請求快速處理。通過這些措施,可以優化IIS伺服器效能。
https://www.cnblogs.com/WinterSir/p/17506255.html
本文介紹了直譯器模式,這是一種用於構建語言直譯器的設計模式,包含抽象表示式、終結符表示式、非終結符表示式和環境類四個角色。通過這些角色,可以解釋和執行使用者根據特定文法編寫的程式碼。文中以X公司開發的字元介面格式化指令為例,展示瞭如何使用直譯器模式處理指令並輸出格式化內容。環境類儲存指令,抽象節點類負責解釋語句和執行命令。
https://www.cnblogs.com/mingupupu/p/17860491.html
本文介紹了使用C#編寫網頁爬蟲來獲取網站上的氣象資訊。網站共有67頁氣象資料,手動複製貼上效率低下。通過構建每一頁的URL並行送GET請求,成功抓取並儲存了4萬多條資料到資料庫。
https://qiita.com/advent-calendar/2023/csharplang
2023 年 C# 降臨節日曆目前正在進行中。
https://docs.nunit.org/articles/nunit/release-notes/framework.html
NUnit 4.0.0/4.0.1 已釋出。
它包括許多改進和修復,例如對 TestCaseSource 的非同步支援、對 .NET 6 目標的支援和測試取消 (CancelAfter),以及刪除 .NET Framework 3.5、4.0、4.5 和 .NET Core 2.1 等目標.ing.
https://devblogs.microsoft.com/dotnet/announcing-ml-net-3-0/
ML.NET 3.0已釋出。
此版本包括物件檢測 API、問答 (QA) 和命名實體提取 (NER)、Intel oneDAL 硬體訓練加速、AutoML 改進、DataFrame 更新、Tensor 原語整合等。
https://github.com/MessagePack-CSharp/MessagePack-CSharp/releases/tag/v2.5.140
MessagePack v2.5.140 已釋出。
此版本修復了 Mono 執行時中的錯誤。
https://blog.jetbrains.com/dotnet/2023/11/30/the-developer-ecosystem-in-2023-key-trends-for-csharp/
JetBrains 的 C# 開發者生態系統趨勢研究。
ASP.NET Core使用的功能、C#版本、開發目標、IDE/編輯器、外掛的使用等
https://blog.jetbrains.com/dotnet/2023/11/29/the-resharper-2023-3-rc/
ReSharper 2023.3 候選版本已釋出。
AI 助手增強功能、C# 12 支援、實體框架探索和圖表繪製、UI 改進、改進的 Razor 格式化引擎、用於單元測試的 AI 生成、新語法和拼寫檢查器等等。
https://blog.jetbrains.com/dotnet/2023/11/29/the-rider-2023-3-rc/
Rider 2023.3 候選版本已釋出。
包括各種新功能,例如 AI Assistant 增強功能、對 .NET 8 SDK(包括 C# 12 和 F# 8)的支援、改進的多專案啟動、型別依賴關係圖、預測偵錯、單元測試的 AI 生成等等。
https://sixlabors.com/posts/announcing-imagesharp-310/
ImageSharp 3.1.0 已釋出。
此版本包括對動畫 WebP 和 PNG 的支援、對 Quite Ok (Qoi) 的支援、改進的解碼器可靠性以及各種效能改進。
https://zenn.dev/tetr4lab/articles/1946ec08aec508
瞭解如何在 .NET 8 中的 Blazor Web App 中實現 Google OAuth 身份驗證。
https://zenn.dev/nuits_jp/articles/2023-12-03-convert-bitmapsource-to-bitmap
介紹一個在WPF中從BitmapSource轉換為Bitmap的好方法。
https://qiita.com/kami_teru/items/b2a6bd77f7c836ae3d1e
如何在實際裝置(例如 iPhone)上從僅在 Windows 上的 Visual Studio 偵錯和執行 .NET MAUI iOS 應用程式。
https://zenn.dev/vigilanteyu/articles/d7a47dff63e8e2
如何在 .NET 8 中實現與 Blazor WebAssembly 的 ASP.NET Core Hosted 等效的設定,該設定一直存在於 .NET 7 中。
https://qiita.com/yaju/items/97c7d6ae94a303bdbb5b
今年 Visual Basic 主題的綜述,包括 Visual Basic .NET。
瞭解如何使用 IndexedDB 在 .NET MAUI Blazor 混合應用中儲存本地資料。
https://zenn.dev/nuits_jp/articles/2023-12-01-imagemagic-imagesharp-benchmarks
影象處理庫 Magick.NET (ImageMagick)、ImageSharp 和 System.Drawing 的效能比較。
本文比較了 .NET Framework 和 .NET 8 之間的解碼、裁剪和二值化處理。
https://endjin.com/blog/2023/11/how-dotnet-8-boosted-ais-dotnet-performance-by-27-percent-for-free
瞭解在 .NET 8 中執行 AIS.NET(一個用於分析 AIS 解碼器(AIS 是船舶無線電訊息)的庫)時的顯著效能改進。
https://devblogs.microsoft.com/visualstudio/my-favorite-features-in-visual-studio-17-8/
介紹 Mads Kristensen 推薦的 Visual Studio 2022 版本 17.8 的新功能。
本文重點介紹了保留大小寫的搜尋和替換以及豐富的拉取請求體驗等功能。
https://andrewlock.net/behind-logproperties-and-the-new-telemetry-logging-source-generator/
.NET 8 提供的 Microsoft.Extensions.Telemetry.Abstractions 中包含的「LogProperties」屬性的說明,該屬性將屬性值保留在紀錄檔中。
https://qiita.com/RyotaMurohoshi/items/bf45f4e7d52e6aad8ef7
C# 降臨節日曆 2023 年第 1 天文章。解釋極端情況,例如在空陣列上執行 LINQ All 的結果以及存在繫結元素時 OrderBy 的結果。
https://aquasoftware.net/blog/?p=1975
C# 2023 年降臨節日曆第 2 天文章。如何在 C# 程式碼格式設定中設定大括號之前和之後的開口。
https://platform.uno/blog/the-rise-of-c-markup-for-cross-platform-development/
C#標記介紹,是Uno Platform的UI描述方法在C#中。
https://www.poppastring.com/blog/hot-reload-for-c-dev-kit
如何在 Visual Studio Code 的擴充套件 C# 開發工具包中啟用實驗性功能熱過載。
https://qiita.com/lx-sasabo/items/4ceb7be5e2721e4e52f8
如何使用 OmniSharp-Vim 顯示來自分析器等的程式碼分析結果。
https://zenn.dev/microsoft/articles/aspnetcore-blazor-dotnet8-jsinterop
瞭解如何在 .NET 8 中將靜態伺服器渲染 (SSR) 與 Blazor 結合使用時實現和執行自定義 JavaScript。
https://devadjust.exblog.jp/29756261/
解釋可以在 HttpClient 上設定的超時實際上如何工作。
如何在桌面應用程式中包含最小的 ASP.NET Core 伺服器。
https://aneuf.hatenablog.com/entry/2023/11/27/210000
引入「FakeTimeProvider」,它是 .NET 8 中引入的「ITimeProvider」的偽造實現,以及「FakeLogger」,它是新引入的「ILogger」的偽造實現。
https://aneuf.hatenablog.com/entry/2023/11/24/210000
關於「CollectionBuilderAttribute」,它用自己的型別實現 C# 12 集合表示式,以及如何使用它來實現它。
https://annulusgames.com/blog/dependency-injection/
關於依賴注入的說明。服務定位器及其問題、使用 Microsoft.Extensions.DependencyInjection 作為 DI 容器的各種範例、除 M.E.DI 之外的 .NET/Unity DI 容器的介紹等。
https://github.com/thomhurst/ModularPipelines
一個框架,它組合模組來建立用於某種處理/工作的管道。
https://github.com/nenoNaninu/AspNetCore.SignalR.OpenTelemetry
用於將 SignalR 指標流式傳輸到 OpenTelemtry 的庫。
https://x.com/nenomake/status/1730229080455303389?s=12
https://marketplace.visualstudio.com/items?itemName=GrantDavies.NiahTextFilter2022
Visual Studio 擴充套件允許您歷史記錄和過濾偵錯輸出。
故事是我能夠使用 Avalonia XPF(Avalonia 的跨平臺 WPF 相容性套件)在瀏覽器中執行 PerfView。
https://twitter.com/AvaloniaUI/status/1729403695392059887
定義空類或介面時,使用「;」宣告它而不使用主體會很方便。
https://x.com/sergiopedri/status/1730233715345826173?s=12
關於在分析時啟動應用程式時暫停分析的功能。
https://x.com/vs_debugger/status/1730647909279166974?s=12
一個關於使用 Ghidra 指令碼使本機 AOT 字串搜尋成為可能的故事。
https://x.com/washi_dev/status/1725270583011688726?s=12
PolySharp 現已提供適用於 C# 12 的新 polyfill。
https://x.com/sergiopedri/status/1729878697824698514?s=12
[InlineArray]
的最大值為 1MB
https://x.com/hypeartistmusic/status/1728123597968011688?s=12&t=ggvrrZ7oLogHyNoIGNgjbw
https://github.com/dotnet/extensions/issues/4766
提議引入一種名為 RCache 的新型記憶體高效記憶體快取。
由於筆者沒有那麼多時間對國內的一些文章進行整理,歡迎大家為《.NET週刊-國內文章》板塊進行貢獻,需要推廣自己的文章或者框架、開源專案可以下方的專案地址提交Issue或者在我的微信公眾號私信。
格式如下:
https://github.com/InCerryGit/.NET-Weekly
相信大家在開發中經常會遇到一些效能問題,苦於沒有有效的工具去發現效能瓶頸,或者是發現瓶頸以後不知道該如何優化。之前一直有讀者朋友詢問有沒有技術交流群,但是由於各種原因一直都沒建立,現在很高興的在這裡宣佈,我建立了一個專門交流.NET效能優化經驗的群組,主題包括但不限於:
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET效能問題和寶貴的效能分析優化經驗。目前一群已滿,現在開放二群。
如果提示已經達到200人,可以加我微信,我拉你進群: ls1075
另外也建立了QQ群,群號: 687779078,歡迎大家加入。