https://www.cnblogs.com/huangxincheng/p/16917197.html
在B站,公眾號上發了一篇 AOT 的文章後,沒想到反響還是挺大的,都稱讚這個東西能抗反編譯,可以讓破解難度極大提高,可能有很多朋友對逆向不瞭解,以為用 ILSpy
,Reflector
,DnSpy
這些工具打不開就覺得很安全,其實不然,在 OllyDbg
,IDA
,WinDBG
這些逆向工具面前一樣是裸奔。
https://www.cnblogs.com/berkerdong/p/16920239.html
.NET 現在支援跨平臺這件事情已經是眾所周知的特點了,雖然平臺整體支援跨平臺了,但是我們的程式碼如果真的想要實現跨平臺執行其實還是有些小細節要注意的,今天想要記錄分享的就是關於 檔案I/O操作時路徑的拼接問題。
https://www.cnblogs.com/InCerry/p/dotnet-opt-per-use-hybrid-cache.html
經過一段時間的研究,筆者實現了一個基於微軟FasterKv封裝的程序內混合快取庫(記憶體+磁碟),它有著更加易用的API,接下來就和大家討論討論它。
https://www.cnblogs.com/JulianHuang/p/16907679.html
本文的知識點其實由golang知名的for迴圈陷阱發散而來,對應到我的主力語言C#, 其實牽涉到閉包、foreach。為了便於理解,我重新組織了語言,以倒敘結構行文。
https://mp.weixin.qq.com/s/94PKmYtcuKslTldrxXKiTg
.NET 7 已經發布了一段時間了,將幾個服務升級到了 .NET 7,升級還是比較順利的,也有遇到幾個問題,分享一下。
https://mp.weixin.qq.com/s/ZWlJN52WiXcWwxQ3lOQuBg
跨程序事件匯流排允許釋出和訂閱跨服務傳輸的訊息, 服務的釋出與訂閱不在同一個程序中,在MASA Framework中, 跨程序匯流排事件提供了一個可以被開箱即用的程式。
https://github.com/liuhll/silky
在.NET平臺下的微服務應用開發框架,支援微服務場景的諸多特性,如服務治理、RPC通訊、鏈路跟蹤、分散式事務等。
https://mp.weixin.qq.com/s/5VtFnzuA8sKMNsBS9HhgEQ
前段時間分析了一個dump,一頓操作之後,我希望用外力來阻止程式內部對某一個com元件的呼叫,對,就是想借助外力實現,如果用 windbg 的話,可以說非常輕鬆,但現實情況比較複雜,客戶機沒有windbg,也不想加入任何的手工設定,希望全自動化來處理,看看我是如何實現的。
https://mp.weixin.qq.com/s/DQMpsA9HyF4VfbiEl_M5tQ
協程的出現大大降低了非同步程式設計的複雜度,可以讓我們像寫同步程式碼一樣去寫非同步程式碼,如果沒有它,那麼很多非同步的程式碼都是需要靠回撥函數來一層層巢狀,這個在我之前的一篇有介紹 rxjava回撥地獄-kotlin協程來幫忙,本篇文章主要介紹:
https://mp.weixin.qq.com/s/df_GvlGWiPIRVrd1OmHfwA
我們知道,建立在HTTP2/3之上的gRPC具有四種基本的通訊模式或者訊息交換模式(MEP: Message Exchange Pattern),即Unary、Server Stream、Client Stream和Bidirectional Stream。本篇文章通過4個簡單的範例演示它們在.NET平臺上的實現原理,原始碼從這裡檢視。
https://mp.weixin.qq.com/s/6yVqPhj0V9P7g4XtwREpZg
早期在學習泛型的協變與逆變時,網上的文章講解、例子算是能看懂,但關於逆變的具體應用場景這方面的知識,我並沒有深刻的認識。
https://github.com/LesnyRumcajs/grpc_bench/discussions/310
2022年11月27日gcnyin大佬提交了grpc_bench的框架升級的PR(將各個語言的的版本都升級了),在預覽測試結果中dotnet_grpc以14w/s的成績取得了第一名。
https://blog.appharbor.com/2022/11/09/shutting-down-appharbor
.NET應用程式託管服務AppHabor宣佈,它將於12月5日關閉。 (11月9日)。
在該日期之後,所有的資料,包括網站、應用程式和資料庫,都將不再能夠被存取。
https://lp.jetbrains.com/csharp-for-babies/
JetBrains的一本電子書,幫助嬰兒瞭解C#。
一本有插圖的圖畫書,對A到Z的單詞進行簡單的解釋。
https://github.com/JamesNK/Newtonsoft.Json/releases/tag/13.0.2
Newtonsoft.Json(JSON.NET)13.0.2已經發布。
這個版本有幾個新功能和錯誤修正,包括支援DateOnly和TimeOnly,以及增加了UnixDateTimeConverter.AllowPreEpoch。
ComputeSharp 2.0已經發布。
2.0已經進行了大量的重寫,其特點是改變了原始碼生成器而不是執行時程式碼生成器,許多新的API,支援D2D1畫素著色器,並引入了XAML控制元件,以便與UWP和WinUI 3.1整合。
這篇文章介紹了ComputeSharp,它是如何工作的,以及它的部分內容,如XAML支援和D2D1畫素著色器。
https://devblogs.microsoft.com/visualstudio/net-maui-is-now-available-in-visual-studio-for-mac-17-4/
Visual Studio for Mac 17.4中的.NET MAUI支援已經發布。
類似於Windows上的Visual Studio的.NET MAUI開發,現在可以使用。
對XCode 14.1的支援將很快釋出,C#熱過載和XAML實時預覽等功能將在未來實現。
https://www.jetbrains.com/rider/nextversion/
https://twitter.com/jetbrainsrider/status/1596198425745391621?s=12
Rider 2022.3 EAP 9(早期存取預覽)已經發布。
支援.NET 7 SDK(包括更新的專案模板、中央包管理和C# 11),支援虛幻引擎5.1,後端遷移到.NET 7的效能改進,預設情況下的UI新的工具條 ,以及C#中的機器學習程式碼完成。
https://www.jetbrains.com/resharper/nextversion/
https://twitter.com/resharper/status/1596198977795657729?s=12
ReSharper 2022.3 EAP 9(早期存取預覽)已經發布。
該版本擴充套件了EAP 8對ARM64的支援,dotCover、dotTrace、dotMemory和ReSharper命令列工具現在支援ARM64。 其他錯誤也得到了修復,在為正式釋出做準備。
https://aloiskraus.wordpress.com/2022/11/23/net-serialization-roundup-2022/
文章比較了.NET中各種序列化器(二進位制和JSON)的序列化、反序列化和啟動的效能。
一篇關於Web Live Preview的介紹性文章,它在Visual Studio 2022中提供了ASP.NET Web表單的執行時預覽。
這篇文章展示瞭如何啟用和使用Web Live Preview,以及它如何與第三方元件(如Telerik元件)整合。
https://haacked.com/archive/2022/11/22/csharp-list-pattern/
一篇展示C#11列表模式的程式碼範例的文章。
https://www.infoq.com/news/2022/11/XmlSecureResolver/
關於XmlSecureResolver在.NET 7中被刪除的文章。
XmlSecureResolver被推薦用來避免參照外部資源引起的XXE,但它是基於程式碼存取安全(CAS)實現的,但由於.NET Core沒有CAS,不再受限制,所以在.NET 7中被刪除。 在.NET 7中,它被廢棄了。 雖然該型別仍然存在,但在構建時列印了一個警告,在執行時參照該型別時引發了一個異常。
建議限制外部資源的行動是使用XmlResolver.ThrowingResolver而不是XmlSecureResolver。
https://qiita.com/gushwell/items/bcf39aaf708b9a483cf5
關於如何在ASP.NET Core Razor Pages中實現頁面過濾的文章。
https://zenn.dev/okazuki/articles/auth-blazorwasm-aspnetcore-obo
文章介紹瞭如何從登入Azure AD的Blazor WebAssembly應用程式中用ASP.NET Core Web API呼叫微軟圖形API。
如何使用和構建一個流程(On-Behalf-Of flow),其中伺服器應用程式呼叫Graph API而不是直接從使用者端呼叫。
關於在使用OptionsBuilder構建設定時使用範圍服務的危險和陷阱的文章。
https://www.infoq.com/news/2022/11/GCCollectionMode-Aggressive/
關於.NET 7中引入的GCCollectionMode.Aggressive
的文章。
"Aggressive "是一種模式,在用 "GC.Collect "執行GC時,儘可能多地釋放記憶體。 這對於諸如容器上的工作者有很長的空閒時間,並且在等待時使用很少的記憶體的情況很有用,在這種情況下,你不想完全關閉,但想在等待時保持低的資源使用率。
https://blog.elmah.io/build-and-publish-visual-studio-extensions-with-github-actions/
關於如何使用GitHub Actions構建和釋出Visual Studio擴充套件(生成VSIX包)的文章。
https://qiita.com/karuakun/items/c8439d0aadb2e798cf08
關於在Android上使用Termux、執行Ubuntu、安裝.NET SDK和執行ASP.NET Core應用程式的文章。
https://zenn.dev/masakura/articles/b84642b5bd680f
關於如何使用開源靜態安全程式碼檢查工具Semgrep來檢查C#程式碼的文章。
https://qiita.com/mxProject/items/838ef3e5e2856c66a29c
關於如何使用MagicOnion的串流媒體傳送和接收大型資料物件的文章。
https://washi.dev/blog/posts/confusing-decompilers-with-callvirt/
關於不同的型別如果在虛擬函數表中具有相同的索引,就可以在IL的CallVirt中呼叫,而反編譯器不能很好地處理的文章。
文章比較了AWS Lambda中.NET 7 Native AOT和.NET 6執行時的冷啟動時間。
https://chnasarre.medium.com/parsing-the-nettrace-stream-of-not-only-events-8b95c7f82ec4
關於.NET診斷協定的 "nettrace "流格式以及如何解析它的文章。
https://github.com/dotnet-presentations/dotNETConf/tree/main/2022/MainEvent/Technical
.NET會議2022年的幻燈片集。
https://qiita.com/osamus/items/5093cefe20e8f817bbef
一篇文章總結了使用一個名為BASS的音訊處理庫實現類似Spearna的視覺化器的關鍵點。
https://spacekey.dev/memorypack-7
關於實現一個應用程式的文章,該程式使用MemoryPack在ASP.NET Core API伺服器和使用Nuxt的Web前端之間進行通訊處理。
https://steven-giesel.com/blogPost/34e0fd95-0b3f-40f2-ba2a-36d1d4eb5601
關於將在.NET 8中引入的FOH的集合類的文章。
它介紹了FOH的集合類與現有的IReadOnlyList<T>
和Immutable集合之間的區別,效能等。
描述從Visual Studio 2022 17.4安裝中移除不支援的元件的能力的文章。
新的安裝程式允許你一次性刪除Visual Studio安裝中不支援的元件,文章解釋瞭如何做到這一點。
如果安裝程式較新,這個刪除功能可以對Visual Studio 2022的所有版本進行,甚至Visual Studio 2019和2017環境也可以通過安裝2022安裝程式來支援。
https://github.com/MichalStrehovsky/PublishAotCompressed
https://twitter.com/MStrehovsky/status/1595941448326602752
MSBuild的一個擴充套件包,在用Native AOT釋出時,用UPX壓縮可執行檔案。
https://github.com/dhq-boiler/boilersE2E
一個用於Windows桌面應用程式的E2E測試的輔助程式庫,包括Windows應用程式驅動程式的啟動和關閉,帶有超時的元素搜尋等。
一個為開發者提供的命令列計算器,可以進行各種計算、轉換和硬體內聯的計算。
https://github.com/ForNeVeR/AvaloniaRider/
https://twitter.com/fvnever/status/1596592659581345793?s=12
用Rider支援Avalonia開發的外掛。 提供了預覽和模板。
https://github.com/lowleveldesign/windbg-ext-template
https://twitter.com/lowleveldesign/status/1596164757353922560?s=12
用WinDbg託管.NET在受控程式碼中實現擴充套件函數的模板。
一個組合各種框架和產品的壽命終止日期的網站。
https://twitter.com/dotnetfdn/status/1595427955076784133?s=12&t=EDTXeykhwoV--mTr9sPPxw
用於ESP32-C3的.NET nanoFramework韌體映象已經發布,它說.NET在RISC-V上執行。
https://mastodon.social/@xoofx/109423020409800983
.NET 7的NativeAOT的一個超級酷的功能是 "直接呼叫PInvoke",或者是連結靜態庫https://github.com/dotnet/runtime/blob/main/src/coreclr/nativeaot/docs/interop.md,直接呼叫函數的能力。
在NuGet中沒有內建的支援來分發這些東西(例如執行時資料夾),但可以很容易地釋出一個包,提供動態庫,但也可以提供對靜態連結庫的支援,並通過MSBuild目標自動注入它。我喜歡這個功能!