.NET週刊【9月第3期 2023-09-17】

國內文章

在.NET 8 RC1 版本中 MAUI、ASP.NET Core 和 EF8 的新特性

https://www.cnblogs.com/shanyou/p/17698428.html

從年初2 月份發佈第一個預覽版,經歷7個預覽版後,Microsoft 西雅圖時間9月13日發佈了 .NET 8 RC 1: https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-rc1, 這是該框架在 11 月初正式發佈之前的兩個版本中的第一個。 .NET 8 RC1 是在生產中受支持,隨着開發團隊修復和完善內容,該框架基本上已經準備好了新的和令人興奮的功能,以便在 11 月 14 日開始的 .NET Conf 2023 期間正式發佈RTM。

.NET 8 Release Candidate 1 (RC1)現已發佈,包括許多針對ASP.NET Core的重要改進!

https://www.cnblogs.com/hejiale010426/p/17698366.html

這是我們計劃在今年晚些時候發佈的最終.NET 8版本之前的兩個候選版本中的第一個。大部分計劃中的功能和變更都包含在這個候選版本中,可以供您嘗試使用。您可以在文檔中找到完整的ASP.NET Core在.NET 8中的新功能列表。一些領域(尤其是Blazor)仍然有一些重大的變更待完成,我們預計將在下一個.NET 8候選版本中完成這些變更。

.NET中測量多線程基準性能

https://www.cnblogs.com/baibaomen-org/p/17695662.html

多線程基準性能是用來衡量計算機系統或應用程序在多線程環境下的執行能力和性能的度量指標。它通常用來評估系統在並行處理任務時的效率和性能。測量中通常創建多個線程並在這些線程上執行併發任務,以模擬實際應用程序的並行處理需求。

升訊威在線客服系統的併發高性能數據處理技術:PLINQ並行查詢技術

https://www.cnblogs.com/sheng_chao/p/17701792.html

我在業餘時間開發維護了一款免費開源的升訊威在線客服系統,也收穫了許多用戶。對我來說,只要能獲得用戶的認可,就是我最大的動力。

最近客服系統成功經受住了客戶現場組織的壓力測試,獲得了客戶的認可。
客戶組織多名客服上線後,所有員工同一時間打開訪客頁面瘋狂不停的給在線客服發消息,系統穩定無異常無掉線,客服回覆消息正常。消息實時到達無任何延遲。

https://kf.shengxunwei.com/

我會通過一系列的文章詳細分析升訊威在線客服系統的併發高性能技術是如何實現的,使用了哪些方案以及具體的做法。

本篇介紹 PLINQ 並行查詢技術。

並行 LINQ (PLINQ) 是語言集成查詢 (LINQ) 模式的並行實現。 PLINQ 將整套 LINQ 標準查詢運算符實現爲 System.Linq 命名空間的擴展方法,並提供適用於並行操作的其他運算符。 PLINQ 將 LINQ 語法的簡潔和可靠性與並行編程的強大功能結合在一起。

.NET Core 實現Excel的導入導出

https://www.cnblogs.com/lucasDC/p/17707810.html

我們在日常開發中對Excel的操作可能會比較頻繁,好多功能都會涉及到Excel的操作。在.Net Core中大家可能使用Npoi比較多,這款軟件功能也十分強大,而且接近原始編程。但是直接使用Npoi大部分時候我們可能都會自己封裝一下,畢竟根據二八原則,我們百分之八十的場景可能都是進行簡單的導入導出操作,這裏就引出我們的主角Npoi。

Avalonia開發(一)環境搭建

https://www.cnblogs.com/sesametech-dotnet/p/17705388.html

如題,介紹瞭如何使用跨平臺的UI框架Avalonia開發.NET應用程序。

  1. 開源 GitHub:https://github.com/AvaloniaUI/Avalonia/
  2. 多平臺支持,包括Windowsmac OSLinuxiOSAndroidSamsung Tizen(很快支持)、WebAssembly
  3. IDE支持,Visual Studio擴展支持,JetBrains Rider & Resharper支持
  4. 依託.NET平臺
  5. 社區支持
  6. MIT 協議

C#反射實現插件式開發

https://www.cnblogs.com/wml-it/p/17706182.html

插件式架構,一種全新的、開放性的、高擴展性的架構體系。插件式架構設計好處很多,把擴展功能從框架中剝離出來,降低了框架的複雜度,讓框架更容易實現。擴展功能與框架以一種很鬆的方式耦合,兩者在保持接口不變的情況下,可以獨立變化和發佈。基於插件設計並不神祕,相反它比起一團泥的設計更簡單,更容易理解。

WPF動畫入門教程

https://www.cnblogs.com/baibaomen-org/p/17696049.html

Windows Presentation Foundation (WPF)是一種用於創建Windows客戶端應用程序的UI框架。它讓我們能夠創建豐富的圖形界面,包括各種各樣的動畫效果。接下來,我們將介紹如何在WPF中創建簡單的動畫。文章最後將給出源碼,源碼包括文章中的動畫和一個水印按鈕,一個簡單的時鐘動畫,一個複雜的時鐘動畫。

【算法】湖心島上的數學夢-用C#實現一元多次方程的展開式

https://www.cnblogs.com/lan80/p/17691306.html

如題所示,本文介紹瞭如何使用C#實現一元多次方程的展開式。

Unity 遊戲開發、03 基礎篇 | C#初級編程

https://www.cnblogs.com/linxiaoxu/p/17703722.html

如題,使用C#進行Unity遊戲開發的教程。

樹莓派4b裝系統到運行 Blazor Linux 本地程序全記錄

https://www.cnblogs.com/densen2014/p/17706168.html

如題,樹莓派4b裝系統到運行 Blazor Linux 本地程序全記錄。

.NET使用quartz+topshelf實現定時執行任務調度服務

https://www.cnblogs.com/jack-yan/p/17700312.html

如題,使用quartz+topshelf實現.NET定時執行任務調度服務。

主題

【英文】發佈 .NET 8 RC1 - .NET 博客

https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-rc1/

.NET 8 RC1 已發佈。

此版本包括對 System.Text.Json 的改進、Android 和 WASM 上的後 AOT IL 剝離、對配置綁定生成器的重大更改、切換到容器的非預覽標籤以及對非 Windows 上具有 Win32 資源的 Windows 應用程序的支持.它包括諸如建築之類的支持。

【英文】EF Core 8 RC1:作爲值對象的複雜類型 - .NET 博客

https://devblogs.microsoft.com/dotnet/announcing-ef8-rc1/

Entity Framework Core 8 RC1 已發佈。

本文介紹了 Entity Framework Core 8 中的一系列新功能以及對複雜類型的支持。

【英文】.NET 8 候選版本 1 中的 ASP.NET Core 更新 - .NET 博客

https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-rc-1/

關於更新 .NET 8 RC1 中的 ASP.NET Core。

  • 服務器和中間件
    • HTTP/3 默認禁用
  • API 編寫
    • 支持 Minimal API、MVC、SignalR 中的密鑰服務
  • Blazor
    • Blazor Web 應用程序模板更新
    • 從靜態服務器渲染中的附加程序集中發現組件
    • 路由改進
    • 觸發頁面刷新
    • 將任意屬性傳遞給 QuickGrid
    • 判斷表單域是否有效
    • 配置.NET WebAssembly運行時
    • (AOT) 後修剪 .NET IL
  • 身份
    • 刪除用戶名屬性
  • 單頁應用程序(SPA)
    • 標準.NET 模板選項
  • 性能指標

【英文】在 .NET 8 候選版本 1 中宣佈 .NET MAUI:質量更新 - .NET 博客

https://devblogs.microsoft.com/dotnet/announcing-dotnet-maui-in-dotnet-8-rc-1/

關於更新 .NET 8 RC1 中的 .NET MAUI。

此版本包括各種質量改進和對 Xcode 15 的支持。

【英文】.NET 8 中的性能改進 - .NET 博客

https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-8/

詳細瞭解 .NET 8 中的性能改進。

它提供了廣泛領域的改進的詳細說明,包括 JIT、VM 和 GC,以及基元、字符串、集合、文件 I/O 和網絡以及基準。

【英文】Visual Studio 2022 17.8 預覽版 2 已發佈!- Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visual-studio-2022-17-8-preview-2-has-arrived/

Visual Studio 2022 17.8 預覽版 2 已發佈。

此版本包括與 Git 和 GitHub 相關的改進、與 C++ 相關的改進、與 F# 相關的改進、跨平臺編輯和繼續/熱重載支持、將 Linux 附加到應用服務以及 .NET 包括對帶有 Meters API 的計數器的支持、測試分析、企業管理等等。

【英文】.NET 2023 年 9 月更新 – .NET 7.0.11、.NET 6.0.22 - .NET 博客

https://devblogs.microsoft.com/dotnet/september-2023-updates/

.NET 7.0.11 和 6.0.22 發佈。

此版本包括五個安全修復,以及多項改進和錯誤修復。

【英文】.NET Framework 2023 年 9 月安全和質量彙總更新 - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-framework-september-2023-security-and-quality-rollup-updates/

.NET Framework 2023 年 9 月安全和質量累積更新已發佈。

此版本包括五個安全修復和多個錯誤修復。

文章、幻燈片等

【英文】LOH 與 POH:瞭解 .NET 堆的兩個特殊堆

https://medium.com/@ramin.h/loh-vs-poh-understanding-the-two-special-segments-of-the-net-heap-60badb4842f0

關於.NET 5中引入的LOH(大型對象堆)和POH(固定對象堆)之間的區別。

【日文】ref 只讀參數 - 通過引用傳遞

https://ufcpp.net/study/csharp/sp_ref.html#ref-readonly-param

C# 12 中“ref readonly”參數的解釋。

【英文】構建最小的 ASP.NET Core 克隆

https://steven-giesel.com/blogPost/e84dec43-51f1-4c70-8b3b-dcdb1c3164ce

嘗試通過實現控制器、DI、中間件和路由來重新創建最小的 ASP.NET Core。

【日文】[發行].NET 8 RC1! C# 東京活動 - connpass

https://csharp-tokyo.connpass.com/event/296696/

9月19日(週二)將在C#東京舉辦分發活動。

【英文】在 .NET Core 中創建自定義運行狀況檢查

https://dev.to/me_janki/creating-custom-health-checks-in-net-core-e5n

瞭解如何實施自定義健康檢查。文章實現了一個檢查數據庫連接的例子。

【英文】構建 Ambie 4.0

https://kidjenius.medium.com/architecting-ambie-4-0-c0a69da915db

關於在 UWP 中實現的名爲 Ambie 的環境聲音播放器的架構。

【英文】設計 Ambie 4.0

https://kidjenius.medium.com/designing-ambie-4-0-9615fdc7a752

關於在UWP中實現的名爲Ambie的環境聲音播放器的UI設計。

【英文】使用 JetBrains Annotations 對 ASP.NET Core 進行一流升級 | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/09/14/first-class-upgrades-for-aspnet-core-with-jetbrains-annotations/

瞭解如何使用 JetBrains.Annotations 來改善 Rider 和 ReSharper 的 ASP.NET Core 應用程序開發體驗。

【英文】Teams Toolkit for Visual Studio 2022 中有哪些新增功能? - .NET 博客

https://devblogs.microsoft.com/dotnet/teams-toolkit-vs177-update/

引入 Teams Toolkit for Visual Studio 2022 中的新功能。

瞭解應用程序生命週期自動化、使用隧道進行調試等。

【日文】使用 Power Automate Desktop .NET 腳本操作數據表

https://zenn.dev/pfirsich/articles/3db3f81dc6436d

關於 Power Automate Desktop 中腳本操作支持的 .NET 腳本。

但是,可以使用的C#版本是5。

【英文】對本機編譯的 .NET 應用程序進行逆向工程

https://migeel.sk/blog/2023/09/15/reverse-engineering-natively-compiled-dotnet-apps/

如何對 NativeAOT 反編譯的 .NET 應用程序進行逆向工程。

【英文】不要在 Akka.NET 之上構建您自己的定製公司框架

https://petabridge.com/blog/akkadotnet-application-management-best-practices/

一篇文章推薦使用面向模式的方法,而不是在 Akka.NET 之上構建公司特定的框架。

【英文】平衡用戶更新與安全最佳實踐 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/standard-user-update/

介紹標準用戶現在​​可以更新和安全功能。

【英文】使用自定義 YamlDotNet 類型轉換器將複雜的 YAML 轉換爲 .NET 類型

https://dev.to/asimmon/convert-complex-yaml-to-net-types-with-custom-yamldotnet-type-converters-4l9

如何實現類型轉換器以將複雜的 YAML 轉換爲 YamlDotNet 中的 .NET 類型。

【英文】.NET 遷移的故事 - 共享庫

https://www.jimmybogard.com/tales-from-the-net-migration-trenches-shared-library/

介紹 .NET Framework 到 .NET 遷移方法中的共享庫。

【日文】.NET 8 的 Azure Functions 更新已發佈 - Shibayan Miscellaneous

https://blog.shibayan.jp/entry/20230912/1694509574

關於 Azure Functions 中的 .NET 8 更新。

除了Isolated和In-Process之間的對應關係之外,還涉及到ASP.NET Core集成方面對冷啓動的一些改進。

【英文】使用 nx Standalone Angular 和 ASP.NET Core 服務器實現安全的 Web 應用程序

https://damienbod.com/2023/09/11/implement-a-secure-web-application-using-nx-standalone-angular-and-an-asp-net-core-server/

瞭解如何使用 Angular 和 ASP.NET Core 實現安全應用程序。

【日文】使用 Windows App SDK 創建具有現代標題欄的應用程序 - Shibayan Miscellaneous

https://blog.shibayan.jp/entry/20230911/1694400481

瞭解如何使用 Windows App SDK 的標題欄自定義爲計算器和商店等現代 Windows 應用程序創建標題欄。

庫、存儲庫、工具等。

jonathanpeppers/dotnes:用於 NES 遊戲控制檯的 .NET

https://github.com/jonathanpeppers/dotnes

使用 .NET 爲 NES (Famicom) 生成可執行二進制文件的工具。

它是通過將 MSIL 轉譯爲 6502 程序集生成的。

leonardochaia/dotnet-affected:.NET 工具,用於確定哪些項目受到一組更改的影響。對於大型項目或單一存儲庫很有用。

https://github.com/leonardochaia/dotnet-affected

用於找出哪些項目受變更集影響的工具。

異常可視化工具 - Visual Studio Marketplace

https://marketplace.visualstudio.com/items?itemName=elmahio.exceptioninspector

Visual Studio 的異常可視化工具擴展。

https://x.com/thomasardal/status/1701220984320049643?s=12

網站、文檔等

推文

在一個示例中,空集合的 GetEnumerator 全部返回相同的枚舉器。
(如果你跟着代碼走,似乎返回的是同一個具有單例的實例)。
如果應用這個方法和 PGO 的 guarded devirtualisation,foreach (var x in list ? [])類型循環可能會消失。

https://x.com/ufcpp/status/1703065887627231314?s=12

image-20230923155107334


爲了參加 #MicrosoftHackathon,我在 #VisualStudio 中爲 C# 字符串添加了 SQL 語法高亮。

https://x.com/bricelambs/status/1702777696932266417?s=12

image-20230923155222700


在閱讀 Stephen Toub 關於 .NET 8 性能的文章時,我注意到 .NET 8 中引入了一個非常有趣的功能,但我從未聽說過: [UnsafeAccessor]。
它允許您在忽略可見性檢查的情況下獲取目標類型的私有字段或方法的引用。因爲它返回的是對字段的引用,所以你可以用它來讀取和寫入一個值。

例如,這對 Datadog 跟蹤器非常有用,因爲我們經常需要訪問第三方庫中的私有字段,以對其進行檢測。爲此,我們需要在運行時發射 IL,這對啓動時間有很大影響。這項新功能爲我們提供了零開銷的替代方案。https://github.com/dotnet/runtime/issues/81741

https://x.com/kookiz/status/1702050892587954242?s=12

image-20230923155345411

image-20230923155357329


今天,我們回顧了 .NET 8 中的 C# 12 功能。集合字面量是我最喜歡的功能之一。代碼生成也得到了大程度的優化,並將在未來的版本中變得更好!

https://x.com/davidfowl/status/1701449085784592888?s=12

image-20230923155530514

版權聲明

由於筆者沒有那麼多時間對國內的一些文章進行整理,歡迎大家爲《.NET週刊-國內文章》板塊進行貢獻,需要推廣自己的文章或者框架、開源項目可以下方的項目地址提交Issue或者在我的微信公衆號私信。

格式如下:

  • 10~50字左右的標題
  • 對應文章或項目網址訪問鏈接
  • 200字以內的簡介,如果太長會影響閱讀體驗

https://github.com/InCerryGit/.NET-Weekly

.NET性能優化交流羣

相信大家在開發中經常會遇到一些性能問題,苦於沒有有效的工具去發現性能瓶頸,或者是發現瓶頸以後不知道該如何優化。之前一直有讀者朋友詢問有沒有技術交流羣,但是由於各種原因一直都沒創建,現在很高興的在這裏宣佈,我創建了一個專門交流.NET性能優化經驗的羣組,主題包括但不限於:

  • 如何找到.NET性能瓶頸,如使用APM、dotnet tools等工具
  • .NET框架底層原理的實現,如垃圾回收器、JIT等等
  • 如何編寫高性能的.NET代碼,哪些地方存在性能陷阱

希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能問題和寶貴的性能分析優化經驗。目前一羣已滿,現在開放二羣。

如果提示已經達到200人,可以加我微信,我拉你進羣: ls1075

另外也創建了QQ羣,羣號: 687779078,歡迎大家加入。

抽獎送書活動預熱!!!

感謝大家對我公衆號的支持與陪伴!爲慶祝公衆號一週年,抽獎送出一些書籍,請大家關注公衆號後續推文!

image-20230703203249615

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章