.NET週報 【5月第4期 2023-05-27】

2023-05-31 12:03:04

國內文章

C#使用詞嵌入向量與向量資料庫為大語言模型(LLM)賦能長期記憶實現私域問答機器人落地之openai介面平替

https://www.cnblogs.com/gmmy/p/17430613.html

在上一篇文章中我們大致講述了一下如何通過詞嵌入向量的方式為大語言模型增加長期記憶,用於落地在私域場景的問題。其中涉及到使用openai的介面進行詞嵌入向量的生成以及chat模型的呼叫。

使用ML.Net輕鬆接入AI模型!

https://www.cnblogs.com/Big-Head/p/17429185.html

這是一篇介紹如何使用 ML.Net 輕鬆接入 AI 模型的部落格文章,文章分為四個部分,分別介紹了:

  • 使用 Visual Studio 的 Model Builder 訓練和使用模型,包括選擇模型型別、訓練環境、資料來源、評估結果和生成程式碼的步驟。
  • 使用 ONNX 模型進行分類預測,包括下載現有的 ONNX 模型,理解輸入輸出和預處理後處理的流程,以及使用 ML.Net 接入 ONNX 模型的方法。
  • 使用 ONNX 模型進行識別分割,包括下載現有的 ONNX 模型,理解輸入輸出和預處理後處理的流程,以及使用 ML.Net 接入 ONNX 模型的方法。
  • 其他相關內容,包括 ML.Net 的優勢、適用場景、版本要求等。

文章中還提供了一些程式碼範例和圖片展示,以及 GitHub 連結和參考資料。

[MAUI]模仿Chrome下拉分頁的互動實現

https://www.cnblogs.com/jevonsflash/p/17438596.html

今天來說說怎樣在.NET MAUI 中製作一個靈動的類分頁控制元件,這類控制元件常用於頁面中多個子頁面的導航功能。

比如在手機版的Chrome中,當用戶在網頁中下拉時將出現「新建分頁」,「重新整理」,「關閉分頁」三個選項,通過不間斷的橫向手勢滑動,可以在這三個選項之間切換。選項指示器是一個帶有粘滯效果的圓。

【C#/.NET】使用ASP.NET Core物件池

https://www.cnblogs.com/xuyd/p/17438313.html

使用物件池的好處主要是減少初始化/資源分配,提高效能。這一條與執行緒池同理,有些物件的初始化或資源分配耗時長,複用這些物件減少初始化和資源分配。比如:我有一個執行耗時約500毫秒,記憶體空間 2KB的任務為此建立一個新執行緒非同步執行,而建立執行緒耗時1秒,記憶體空間佔用1MB則得不償失。

基於Expression Lambda表示式樹的通用複雜動態查詢構建器

https://www.cnblogs.com/ls0001/p/17395510.html

如題所示:基於Expression Lambda表示式樹的通用複雜動態查詢構建器,一共是5篇文章的合集,這是第一篇文章。

CSharp初體驗

https://www.cnblogs.com/tsecer/p/17435695.html

這篇文章介紹了 CSharp 語言的一些語法特點和結構,例如原始檔的整體結構,lambda 表示式,local function,namespace 等。文章通過分析官方檔案,開源專案和語言規範,來展示 CSharp 語言的特點和優勢。

記一次 .NET 某汽貿店 CPU 爆高分析

https://www.cnblogs.com/huangxincheng/p/17420753.html

上週有位朋友在 github 上向我求助,說執行緒都被卡住了,讓我幫忙看下,時隔兩年 終於有人在上面提 Issue 了,看樣子這塊以後可以作為求助專區來使用,既然來求助,必須得免費幫忙解決,從朋友這邊拿到 dump 之後,接下來就可以分析了。

Blazor HyBrid在香橙派(Ubuntu Arm)執行的效果

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

本文介紹瞭如何在 ARM 裝置上使用 Blazor HyBrid 和 .NET 7 建立桌面應用。首先,需要安裝一些依賴庫和下載 .NET SDK 的壓縮包。然後,可以使用 dotnet 命令建立一個 Blazor HyBrid 的專案模板,並修改一些組態檔。最後,可以執行 dotnet publish 命令將專案發布到 ARM 裝置上,並在裝置上執行應用。

C# 物件導向教學合集

https://www.cnblogs.com/BoiledYakult/p/17422301.html

作者本人編寫的C#物件導向的教學,現在更新了三個章節。作者很用心,內容很豐富,非常適合初學者進行學習。

如何使用 Blazor 框架在前端瀏覽器中匯入和匯出 Excel

https://www.cnblogs.com/powertoolsteam/p/17422415.html

Blazor 是一個相對較新的框架,用於構建具有 .NET 強大功能的互動式使用者端 Web UI。一個常見的用例是將現有的 Excel 檔案匯入 Blazor 應用程式,將電子試算表資料呈現給使用者,並且能夠允許進行任何更改,最後將該資料匯出回 Excel 檔案或將其儲存到資料庫。

以下是在 Blazor 中匯入/匯出電子試算表檔案的步驟:

  1. 建立 SpreadJS Blazor 元件
  2. 建立 Blazor 應用程式
  3. 在 Blazor 應用程式中匯入 Excel
  4. Blazor 應用程式中的 Excel 匯出

基於.NetCore開源的Windows的GIF錄屏工具

https://www.cnblogs.com/chingho/p/17414352.html

這是基於.Net Core + WPF 開發的、開源專案,可將螢幕截圖轉為 GIF 動畫。它的核心功能是能夠簡單、快速地擷取整個螢幕或者選定區域,並將其轉為 GIF動畫,還支援自定義 GIF 動畫效果、字幕、背景音樂。

基於Quartz的視覺化UI操作元件GZY.Quartz.MUI更新說明(附:在ABP中整合GZY.Quartz.MUI視覺化操作元件)

https://www.cnblogs.com/GuZhenYin/p/17434965.html

總而言之,這個元件主要想做的就是:像swaggerUI一樣,專案入侵量小,僅需要在Startup中注入的UI元件,時隔2年,(PS:其實陸陸續續在優化,不過沒發部落格).本元件又迎來了新的更新。

Simple Factory Pattern 簡單工廠模式簡介與 C# 範例【建立型】【設計模式來了】

https://www.cnblogs.com/czzj/p/SJMSLL_SimpleFactory.html

簡單工廠模式(Simple Factory Pattern)是日常開發中常用的設計模式。其是一種簡單的建立型模式,它通過一個工廠類來建立物件,使用者端只需要知道如何使用工廠類,而不需要知道物件的實現細節。工廠類負責建立物件的整個生命週期,並且負責處理與具體實現有關的邏輯。

【C#】外掛程式設計框架 MAF 開發總結

https://www.cnblogs.com/mrf2233/p/17434368.html

MEF和MEF微軟官方介紹:https://learn.microsoft.com/zh-cn/dotnet/framework/mef/

MEF是輕量化的外掛框架,MAF是複雜的外掛框架。

因為MAF有程序隔離和程式域隔離可選。我需要外掛程序隔離同時快速傳遞資料,最後選擇了MAF。

如果不需要真正的物理隔離還是建議使用簡單一點的MEF框架。

主題

【英文】微軟 Build 2023

在 Microsoft Build 2023 上錄製 .NET 相關會議。

【英文】釋出 ILSpy 8.0 icsharpcode/ILSpy

https://github.com/icsharpcode/ILSpy/releases/tag/v8.0

ILSpy 8.0 已經發布。

它支援 C# 10 和 11 等新語言功能,幷包含各種改進和修復。

此版本還從 .NET Framework 遷移到 .NET 6,並且需要 .NET 6 執行時才能執行

【英文】將 AI 的力量帶入 Windows 11 – 通過 Windows Copilot 和 Dev Home 為客戶和開發人員開啟生產力新紀元

https://blogs.windows.com/windowsdeveloper/2023/05/23/bringing-the-power-of-ai-to-windows-11-unlocking-a-new-era-of-productivity-for-customers-and-developers-with-windows-copilot-and-dev-home/

在 Microsoft Build 2023 上宣佈 Windows 11 的消費者和開發人員更新。

  • Windows Copilot
  • 必應聊天外掛支援
  • 用於跨平臺人工智慧開發和新晶片支援的混合人工智慧迴圈
  • 開發主頁
    • 儀表板
    • 開發驅動
  • 新的 WinGet 設定
  • 適用於 Windows 終端的 GitHub Copilot X 整合
  • Windows 改進
    • 工作列改進:取消分組、隱藏日期、結束任務
    • 支援資源管理器中的tar、7-Zip、RAR、gz等
    • 單獨的 Windows 終端索引標籤
  • 手臂上的窗戶
    • Visual Studio 中的 .NET MAUI,Linux C++ 開發支援
    • 支援 LLVM v12、Node.js、WiX
    • 支援Qt、CMake、Bazel、OpenSSL、OpenBLAS、Python等中介軟體
    • 統一播放器支援
    • GCC、Flutter、PyTorch、GIMP 支援即將推出
    • 介紹其他支援的應用程式
  • 微軟商店更新
    • Microsoft Store 人工智慧中心
    • Microsoft Store AI 生成關鍵詞
    • 人工智慧生成的評論摘要
    • 微軟商店廣告的區域擴張
    • 應用程式備份和恢復

【英文】Dev Drive 和 Copy-on-Write 以提高開發人員效能 - Engineering@Microsoft

https://devblogs.microsoft.com/engineering-at-microsoft/dev-drive-and-copy-on-write-for-developer-performance/

使用 Dev Drive 和 Copy-on-Write 討論開發效能。

Dev Drive 是一個旨在為開發人員處理檔案和提高效能的驅動器。 Dev Drive 隨 Windows 11 23H2 一起提供,現在已經在 Windows Insider Builds 中可用。

通過採用 ReFS 作為檔案系統,Dev Drive 可以受益於 Copy-on-Write 等功能。在文章中,內測中的效果、CoW 解釋、NuGet 包介紹和移動包目錄中都解釋瞭如何操作。

【英文】Windows Dev Drive 提高 Visual Studio 和 Dev Box 的效能! - Visual Studio 部落格

https://devblogs.microsoft.com/visualstudio/devdrive/

討論即將推出的 Windows Dev Drive 如何提高 Visual Studio 和 Dev Box 的效能。

使用 Dev Drive 可將效能平均提高 25%。

【英文】Rider 2023.2 EAP 2:MAUI 的熱過載、重新設計的構建工具視窗、源生成器的改進等 | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/05/22/rider-2023-2-eap-2/

Rider 2023.2 EAP 2 已經發布。

  • C# 更新
  • 改進的構建工具視窗
  • 適用於 MAUI 的 XAML 熱過載
  • 新 UI 中的視窗著色
  • 改進的原始碼生成器
  • 騎手的特徵訓練器
  • 設定同步外掛
  • 其他改進和錯誤修復

【英文】Visual Studio 2022 版本 17.6.2 - Visual Studio 2022 發行說明

https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes

Visual Studio 2022 版本 17.6.2 已經發布。

該版本修復了一些錯誤。

【英文】釋出 v1.4-experimental1 microsoft/WindowsAppSDK

https://github.com/microsoft/WindowsAppSDK/releases/tag/v1.4-exp1

Windows App SDK v1.4-experimental1 釋出。

此版本包含一些錯誤修復和實驗性 API 新增和更改## 文章、幻燈片等

【英文】API 驗證器:ReSharper 外掛的新時代 | .NET 工具部落格

https://blog.jetbrains.com/dotnet/2023/05/26/the-api-verifier/

ReSharper 的內建機制用於在安裝期間驗證外掛 API 和檢查相容性。

【英文】[C#] C# 中的 async/await 是如何工作的? - 尼諾的花園。

https://blog.neno.dev/entry/2023/05/27/152855

它詳細解釋了 C# 中的 async/await 是如何實際部署和執行的。

【英文】為 .NET 引入 Auth0 模板

https://auth0.com/blog/introducing-auth0-templates-for-dotnet/

使用 Auth0 for .NET 的模板已經發布。

提供了將 Auth0 與 ASP.NET Core 和 Blazor 結合使用的模板。

【英文】使用 Microsoft Dev Box 增強您的 Visual Studio 體驗 - Visual Studio 部落格

https://devblogs.microsoft.com/visualstudio/turbocharge-your-visual-studio-experience-with-microsoft-dev-box/

改善 Dev Box 中的 Visual Studio 體驗。

使用登入 Dev Box 的帳戶自動登入 Visual Studio,即將對 Git Credentials Manager 進行改進,對 Azure Marketplace Images 進行改進等。

【英文】使用 ASP.NET Core Identity 進行經過身份驗證的跨域請求

https://andrewlock.net/making-authenticated-cross-origin-requests-with-aspnetcore-identity/

使用 ASP.NET Core Identity 啟用跨源身份驗證請求的實現。

【英文】好的(Blazor)元件是...?

https://jonhilton.net/good-blazor-components/

關於製作好的 Blazor 元件。

它引入了諸如保持事物儘可能小、使它們可重用以及將業務邏輯保持在單獨的元件中之類的東西。

【英文】使 URL 相對路徑的 Visual Studio 程式碼片段

https://blog.ploeh.dk/2023/05/23/visual-studio-code-snippet-to-make-urls-relative/

介紹如何使用 Visual Studio Code 中的程式碼片段將範圍選擇的 URL 重寫為相對路徑。

【英文】如何在建立 HttpContent 時改進記憶體分配

https://hashnode.devindran.com/how-to-improve-memory-allocation-when-creating-httpcontent

引入一種在建立 HttpContent 時減少記憶體分配的方法。

文章介紹了一種使用CommunityToolkit.HighPerformance的ArrayPoolBufferWriter和ReadOnlyMemoryContent的方法和一種使用RecyclableMemoryStream的方法。

【英文】將 .NET HTTP 使用者端重構為型別化 HTTP 使用者端

https://timdeschryver.dev/blog/refactor-your-net-http-clients-to-typed-http-clients

關於使用 HttpClient 重構 HTTP 使用者端以建立型別化使用者端。

【日文】3 天的 .NET - 3 個社群聯合活動

Fukuoka.NET (Fukuten)、.NET Lab 和 C# Tokyo 的聯合 .NET 活動。

【英文】微軟軟體供應鏈安全之旅 - Engineering@Microsoft

https://devblogs.microsoft.com/engineering-at-microsoft/the-journey-to-secure-the-software-supply-chain-at-microsoft/

介紹 Microsoft 對軟體供應鏈安全的承諾。

【英文】EF Core 8.0 中的可查詢 PostgreSQL 陣列

https://www.roji.org/queryable-pg-arrays-in-ef8

PostgreSQL 對 Entity Framework Core 8.0 中引入的可查詢集合原語的支援介紹## 站點、檔案等

推文

據說有一種技術可以通過包含一個空 System.Linq 類的程式碼來禁止 LINQ。

https://twitter.com/ufcpp/status/1661186143776325632?s=12


.NET 8 將為 Microsoft.Extensions 新增 Resilience、Compliance 和 Telemetry。

https://twitter.com/davidpine7/status/1661084920553283590?s=12

版權宣告

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

格式如下:

  • 10~50字左右的標題
  • 對應文章或專案網址存取連結
  • 200字以內的簡介,如果太長會影響閱讀體驗

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

.NET效能優化交流群

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

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

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

如果提示已經達到200人,可以加我微信,我拉你進群: lishi-wk

另外也建立了QQ群,群號: 264167610,歡迎大家加入。