.NET週刊【10月第1期 2023-10-01】

國內文章

.NET應用如何防止被反編譯

https://www.cnblogs.com/Can-daydayup/p/17736700.html

本文主要講述瞭如何防止.NET應用被反編譯。雖然無法完全防止反編譯,但可以通過混淆代碼、加密敏感數據、動態生成代碼、使用代碼混合技術和代碼簽名等方法增加反編譯的難度。文章還介紹了ConfuserEx,這是一款.NET代碼混淆工具,支持多種混淆技術,包括控制流混淆、字符串加密、資源加密等。使用ConfuserEx工具可以對.NET Fx的.dll文件和.exe文件進行混淆,增加反編譯的難度,提高代碼的安全性。

.NET開發工作效率提升利器 - CodeGeeX AI編程助手

https://www.cnblogs.com/Can-daydayup/p/17724111.html

本文介紹了CodeGeeX,一款基於大模型的全能的智能編程助手。CodeGeeX可以實現代碼的生成與補全、自動添加註釋、代碼翻譯以及智能問答等功能,幫助開發者顯著提高工作效率。CodeGeeX2是其第二代模型,性能更優,支持多種主流編程語言和IDE。CodeGeeX的優勢包括無需特殊網絡即可使用,對個人用戶完全免費,對中文支持友好,有詳細的中文官方文檔。此外,CodeGeeX還有VS Code插件,免費且易於安裝。

模擬.NET應用場景,綜合應用反編譯、第三方庫調試、攔截、一庫多版本兼容方案

https://www.cnblogs.com/Dotnet9-com/p/17731551.html

本文首發於Dotnet9,作者是沙漠盡頭的狼。文章設計了一個案例,教讀者如何應用前兩篇文章中的技能,並介紹了一種支持多個版本的庫的兼容性解決方案。文章中,作者回答了讀者關於Lib.Harmony庫的疑問,並設計了一個小動畫遊戲,發佈到NuGet上,引導讀者一步步解決遊戲中的問題。文章的目的是通過實際操作,讓讀者理解這個工具的正經用途。

C#/.NET/.NET Core優秀項目和框架2023年9月簡報

https://www.cnblogs.com/Can-daydayup/p/17739048.html

本文介紹了公衆號“追逐時光者”定期推廣和分享的C#/.NET/.NET Core優秀項目和框架。其中包括DncZeus,一個基於.NET 7 + Vue.js的通用後臺管理系統框架;JIEJIE.NET和Obfuscar,兩個.NET程序集混淆工具,用於保護.NET應用程序的版權和知識產權;ConfuserEx,一個功能強大的.NET代碼混淆工具;以及Common.Utility,一個收集和整理了許多常用的C#幫助類和工具類庫的項目。這些項目和框架都是開源的,源碼地址在文章中有提供。

記一次 .NET某新能源MES系統 非託管泄露

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

本文主要講述了作者幫助朋友分析程序內存泄露問題的過程。首先,作者使用WinDbg工具對用戶態內存段進行分組處理,發現可能存在託管內存泄露。然後,通過觀察託管堆內存,發現託管堆的內存使用量並不大,推測可能存在非託管內存泄露。最後,作者提出可以通過監控VirtualAlloc,HeapAlloc分配來找出問題,但由於只有一個dump,所以作者建議可以查看clr的私有堆,也就是loader堆,以期找到新的線索。

使用 OpenTelemetry 構建 .NET 應用可觀測性(3):.NET SDK 概覽

https://www.cnblogs.com/eventhorizon/p/17729014.html

本文主要介紹了OpenTelemetry .NET SDK的設計和使用,包括其核心組件如Logging, Metrics, Tracing等,以及如何在ASP.NET Core應用程序中使用。文章還提到了三個與OpenTelemetry相關的GitHub倉庫:opentelemetry-dotnet(OTel SDK的核心庫),opentelemetry-dotnet-contrib(第三方貢獻的Instrumentation和Exporter),和opentelemetry-dotnet-instrumentation(無侵入的Instrumentation)。此外,文章還詳細介紹瞭如何使用OTel SDK,包括安裝依賴,使用Resource標識應用程序的元數據,以及通過ActivitySource實現的Tracing模塊。

《HelloGitHub》第 90 期

https://www.cnblogs.com/xueweihan/p/17733161.html

"HelloGitHub"是一個分享GitHub上有趣、入門級的開源項目的平臺。它提供了實戰項目、入門教程、黑科技、開源書籍、大廠開源項目等,涵蓋多種編程語言如Python、Java、Go、C/C++、Swift等。這裏有適用於macOS的虛擬音頻驅動BlackHole,用4個函數實現的C語言編譯器c4,超好用的Windows優化器optimizer,免費開源的屏幕實時翻譯工具Translumo,類似SQLite的分析型數據庫duckdb,神似Vim的代碼編輯器kakoune,簡單好用的Web應用防火牆SafeLine,自己動手製作的觸感智能旋鈕smartknob等多個項目。

EarthChat SignalR原理講解

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

SignalR是Microsoft開發的庫,用於ASP.NET開發人員實現實時web功能,如實時聊天、通知、實時數據更新等。SignalR提供了抽象層的連接、連接管理、組播、擴展性和跨平臺等特點。SignalR核心爲.NET Core重新設計和實現的SignalR版本,提供了更好的性能和跨平臺支持。MessagePack是一種快速而緊湊的二進制序列化格式,SignalR爲MessagePack格式提供內置支持。橫向擴展是一種增加系統容量的方法,通過在現有的硬件集羣中添加更多的機器或節點來實現。SignalR通過一種稱爲“後端”或“後臺”存儲的機制實現橫向擴展。

記一次 .NET 某拍攝監控軟件 卡死分析

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

本文主要講述瞭如何使用WinDbg分析監控軟件卡死的問題。首先,通過查看主線程的調用棧,發現程序在等待臨界區鎖。然後,通過提取RtlEnterCriticalSection方法中的參數,找到了持有鎖的線程。最後,通過查看持有線程的線程棧,分析出它在等待某個對象。這種分析方法可以幫助我們找出導致軟件卡死的原因,從而解決問題。

Abp vNext 依賴注入

https://www.cnblogs.com/WangJunZzz/p/17729743.html

本文介紹了ABP的依賴注入系統,基於Microsoft的依賴注入擴展庫開發,支持dotnet自帶的注入方式。每個模塊都定義自己的服務並在自己的模塊類中通過依賴注入進行註冊。同時,介紹了Autofac,一種常用的依賴注入框架,提供了動態代理和屬性注入等高級特性。還介紹瞭如何集成Autofac,以及如何使用依賴注入,包括構造函數注入、屬性注入和IServiceProvider。此外,還提到了一些特定類型會默認註冊到依賴注入,以及在需要使用自定義工廠方法或singleton實例時,如何向IServiceCollection手動註冊服務。

WPF中以MVVM方式,實現RTSP視頻播放

https://www.cnblogs.com/maoleigepu/p/17727894.html

本文主要討論了在上位機開發中如何使用視頻播放。作者首先提到了兩種常見的解決方案:使用廠家提供的sdk和前端控件,或者開啓相機onvif協議,通過rtsp視頻流進行播放。然後,作者詳細介紹瞭如何使用開源項目Flyleaf進行視頻播放。Flyleaf是一個基於FFmpeg/DirectX的媒體播放器.NET庫,適用於WinUI 3/ WPF/WinForms。作者詳細介紹瞭如何在App.xaml和App.xaml.cs中配置ffmpeg的dll文件地址,並提供了相關代碼示例。最後,作者提到了使用CommunityToolKit.MVVM作爲MVVM框架。

開源.NetCore通用工具庫Xmtool使用連載 - 擴展動態對象篇

https://www.cnblogs.com/bcbr/p/17731652.html

本文介紹了Xmtool工具庫中的擴展動態對象類庫,這是工具庫中最重要的設計之一。擴展動態對象允許開發人員像使用Javascript一樣,無需預定義就可以直接賦值使用數據對象,大大簡化了定義過程。此外,擴展動態對象還提供了豐富的方法,如TrySetValue、TryGetValue、GetValue、GetValueByPath等,用於對動態對象進行更多的判斷和控制,滿足各種應用場景的需求。

Abp vNext 模塊加載機制

https://www.cnblogs.com/WangJunZzz/p/17728392.html

本文主要介紹了應用程序的生命週期和加載流程。生命週期包括添加依賴注入或其他配置前、中、後,初始化所有模塊前、中、後,以及應用關閉執行等階段。加載流程包括進入Startup,查看AddApplication源碼,進入AbpApplicationWithExternalServiceProvider,查看AbpApplicationBase構造函數,以及查看加載模塊邏輯等步驟。在加載模塊邏輯中,會掃描模塊並按照模塊的依賴性重新排序。在ConfigureServicesAsync方法中,會依次執行每個模塊的PreConfigureServices,ConfigureServices,PostConfigureServices。

C#開源且免費的Windows桌面快速預覽神器 - QuickLook

https://www.cnblogs.com/Can-daydayup/p/17732473.html

本文推薦了一款由C#開源且免費的Windows桌面快速預覽工具:QuickLook。QuickLook提供了一種快速預覽文件內容的方式,用戶可以在不打開文件的情況下,直接在文件資源管理器中快速查看文件的內容。只需選中文件,在文件資源管理器中按下空格鍵即可快速預覽文件。它支持多種文件格式,包括文本文檔、圖片、音頻、視頻等。此外,QuickLook還有許多亮點特性,如支持大量文件類型、Fluent設計、觸摸屏友好、HiDPI支持、在打開和保存文件對話框中預覽、與第三方文件管理器兼容、易於通過插件擴展、嚴格的GPL許可證等。

【23種設計模式】外觀模式(十)

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

"外觀模式"是一種軟件設計模式,它通過提供一個統一的接口來隱藏系統的複雜性,使得子系統更易於使用。在軟件系統中,完成一個功能可能需要調用多個接口,這增加了開發難度和維護複雜度。外觀模式通過封裝這些接口,提供一個簡單的外觀,使得使用者只需調用一個接口就能完成任務。外觀模式包括外觀角色和子系統角色。外觀角色將所有請求委派給相應的子系統處理,而子系統角色處理由外觀角色傳來的請求。外觀模式的優點是簡化了接口,實現了子系統與客戶之間的松耦合關係。缺點是如果增加新的子系統可能需要修改外觀類或客戶端的源代碼,違背了"開閉原則"。

[WPF]淺析依賴屬性(DependencyProperty)

https://www.cnblogs.com/czwy/p/17734460.html

本文主要介紹了WPF中的依賴屬性,它可以節省內存開銷,支持多屬性值,並具有屬性變化通知、限制、驗證等功能。依賴屬性的使用需要繼承自DependecyObject,聲明一個靜態只讀的DependencyProperty類型變量,並使用依賴屬性的實例化包裝屬性讀寫依賴屬性。依賴屬性的存取值機制涉及到三個關鍵類型:DependencyProperty、DependencyObject、EffectiveValueEntry。其中,DependencyProperty是單例,存儲了依賴屬性的默認值和回調;DependencyObject是依賴屬性的宿主對象,用於存儲修改過值的依賴屬性;EffectiveValueEntry存儲依賴屬性真實數值的對象,可以實現多屬性值。

Blazor前後端框架Known-V1.2.16

https://www.cnblogs.com/known/p/17734850.html

"Known"是一個基於C#和Blazor開發的前後端分離快速開發框架,具有跨平臺、開箱即用的特點,一處代碼可以在多處運行。它包含模塊、字典、組織、角色、用戶、日誌、消息、工作流、定時任務等功能,代碼簡潔易擴展,使開發更簡單、更快捷。在2023年9月28日的更新中,Known增加了系統管理模塊列表查看鏈接、用戶管理更換部門功能,修復了多個問題,並優化了運維人員字段配置。此外,還添加了獲取用戶信息接口,支持Server端呈現模式部署,並對多個組件進行了增強和優化。

CAP項目集成帶身份和證書驗證的MongoDB

https://www.cnblogs.com/edisonchou/p/cap_with_authenticated_mongodb_practice.html

本文由Edison分享瞭如何在ASP.NET 6中使用帶身份驗證和SSL根證書驗證的MongoDB的CAP事件總線。CAP是一個開源的事件總線項目,提供了多種存儲方式,包括MongoDB。文章詳細介紹瞭如何安裝和集成CAP.MongoDB組件,並提供了相關代碼示例。同時,文章還提到了CAP的Options選項,以及如何準確構造Mongo連接字符串。最後,文章假設了一個針對MongoDB的配置項格式,並提供了相關代碼示例。

Biwen.QuickApi代碼生成器功能上線

https://www.cnblogs.com/vipwan/p/biwen-quickapi-gen.html

本文介紹了Biwen.QuickApi,這是一個使用REPR風格編寫的minimalApi。最近,作者實現了一個代碼生成器版本的Biwen.QuickApi,以解決代碼中反射和動態帶來的性能問題。Biwen.QuickApi的原理是反射查找所有標記[QuickApi]特徵的Api,然後批量註冊服務和批量映射路由。如果使用代碼生成器,那麼原來可能性能堪憂的代碼就都變成了強類型引用,從而提高了性能。最後,作者提供了代碼生成器的實現代碼,並歡迎大家交流。

主題

.NET 8 中的調試增強功能 - .NET 博客

https://devblogs.microsoft.com/dotnet/debugging-enhancements-in-dotnet-8/

Polly v8 正式發佈

https://www.thepollyproject.org/2023/09/28/polly-v8-officially-released/

CoreWCF v1.4 和 v1.5 預覽版 1 發佈 · 問題 #15 · CoreWCF/公告

https://github.com/CoreWCF/announcements/issues/15

發佈診斷版本 - v7.0.447801 · dotnet/diagnostics

https://github.com/dotnet/diagnostics/releases/tag/v7.0.447801

.NET Framework 2023 年 9 月累積更新預覽 - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-framework-september-2023-cumulative-update-preview/

先睹爲快:Visual Studio“茶與技術”迷你係列 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/visual-studio-tea-technology-miniseries/

文章、幻燈片等

CI/CD 釋放:使用 Jenkins 和 Docker 優化 .NET Web 應用程序交付

https://medium.com/@shubnimkar/ci-cd-unleashed-optimizing-net-web-application-delivery-with-jenkins-and-docker-ed67ca06aeba

關於EF和SQLDB的加密 - Qiita

https://qiita.com/gsrh/items/cd77acbc2af350b3ee03

導入GitLab CI/CD自動進行C#/WPFapurike的Tesuto和insutorara的構建部署

https://zenn.dev/hacarus_blog/articles/3-gitlab-ci-for-c-application

處理 .NET 序列化中的未知枚舉以進行 API 集成

https://gaevoy.com/2023/09/26/dotnet-serialization-unknown-enums-handling-api.html

服務器使用 .NET 7 發送事件

https://blog.devgenius.io/server-sent-events-with-net-7-4f06499a7762

[C#]控制DI容器的範圍 - Qiita

https://qiita.com/jun1s/items/a4ebf7e897dc3cb1fea9

ASP.NET Core SignalR× 用Redis冗餘Hub - Qiita

https://qiita.com/takasan/items/c9f245d0be24111e0cc1

防止 .NET 類庫中的重大更改

https://medium.com/workleap/preventing-writing-changes-in-net-class-libraries-e61ae93b1b46

.NET 的便利 - .NET 博客

https://devblogs.microsoft.com/dotnet/the-convenience-of-dotnet/

分析單元使分配消失 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/a-unit-of-profiling-makes-the-allocations-go-away/

Rider 啓動 2023.3 版本的搶先體驗計劃! | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/09/25/rider-2023-3-eap1/

【Windows/C#】更改akusesutokun的特權 - Qiita

https://qiita.com/mitsu_at3/items/8e5fa9cdbd61a315cb32

ReSharper 2023.3 搶先體驗計劃開始! | .NET 工具博客

https://blog.jetbrains.com/dotnet/2023/09/25/rsrp-2023-3-eap1/

如何修改 ASP.NET Core 中間件中的響應標頭

https://blog.elmah.io/how-to-modify-response-headers-in-asp-net-core-middleware/

在 C# 中訪問私有成員而不進行反射 - Gérald Barré

https://www.meziantou.net/accessing-private-members-without-reflection-in-csharp.htm

.NET 遷移戰壕的故事 - 我們的第一個控制器

https://www.jimmybogard.com/tales-from-the-net-migration-trenches-our-first-controller/

功能標誌 101:.NET 開發人員指南

https://www.code4it.dev/blog/feature-flags-dotnet/

通過 Nuke Build 上的代碼構建 .NET 解決方案

https://medium.com/@alex.ozr/building-net-solutions-through-code-on-nuke-build-de40be06b091

在 .NET 中使用 Coverlet 進行測試覆蓋率分析

https://victormagalhaes-dev.medium.com/test-coverage-analysis-with-coverlet-in-net-2e38df3c6ed7

.NET 遷移戰壕的故事 - 遷移初始業務邏輯

https://www.jimmybogard.com/tales-from-the-net-migration-trenches-migration-business-logic/

網站、文檔等

推文

https://x.com/mhmd_azeez/status/1706713404415549906?s=12

image-20231008212622262


https://x.com/egorbo/status/1706316706316996947?s=12

image-20231008212702686

版權聲明

由於筆者沒有那麼多時間對國內的一些文章進行整理,歡迎大家爲《.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

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