原创 WinRT: 可能是 Windows 上最好用的 Native ABI 和遠程調用方案

前言 Windows 自從很久以來就有一個叫做 COM 的 Native ABI。這是一套面向對象的 ABI,在此之上 Windows 基於 COM ABI 暴露了各種各樣的 API,例如 Management API、Shell API

原创 .NET NativeAOT 指南

.NET NativeAOT 指南 隨着 .NET 8 的發佈,一種新的“時尚”應用模型 NativeAOT 開始在各種真實世界的應用中廣泛使用。 除了對 NativeAOT 工具鏈的基本使用外,“NativeAOT”一詞還帶有原生世界的所

原创 .NET 零開銷抽象指南

背景 2008 年前後的 Midori 項目試圖構建一個以 .NET 爲用戶態基礎的操作系統,在這個項目中有很多讓 CLR 以及 C# 的類型系統向着適合系統編程的方向改進的探索,雖然項目最終沒有面世,但是積累了很多的成果。近些年由於 .N

原创 C# 11 的新特性和改進前瞻

前言 .NET 7 的開發還剩下一個多月就要進入 RC,C# 11 的新特性和改進也即將敲定。在這個時間點上,不少新特性都已經實現完畢併合併入主分支 C# 11 包含的新特性和改進非常多,類型系統相比之前也有了很大的增強,在確保靜態類型安全

原创 重新認識 MSBuild - 1

前言 很多人一談到 MSBuild,腦子裏就會出現 “XML”、“只能用 VS 的屬性框圖形界面操作”、“可定製性和擴展性差” 和 “性能低” 等印象,但實際上這些除了 “XML” 之外完全都是刻板印象:這些人用着 Visual Studi

原创 C# 11 對 ref 和 struct 的改進

前言 C# 11 中即將到來一個可以讓重視性能的開發者狂喜的重量級特性,這個特性主要是圍繞着一個重要底層性能設施 ref 和 struct 的一系列改進。 但是這部分的改進涉及的內容較多,不一定能在 .NET 7(C# 11)做完,因此部分

原创 C# 模式匹配完全指南

前言 自從 2017 年 C# 7.0 版本開始引入聲明模式和常數模式匹配開始,到 2022 年的 C# 11 爲止,最後一個板塊列表模式和切片模式匹配也已經補齊,當初計劃的模式匹配內容已經基本全部完成。 C# 在模式匹配方面下一步計劃則是

原创 C# 10 完整特性介紹

前言 開頭防槓:.NET 的基礎庫、語言、運行時團隊從來都是相互獨立各自更新的,.NET 6 在基礎庫、運行時上同樣做了非常多的改進,不過本文僅僅介紹語言部分。 距離上次介紹 C# 10 的特性已經有一段時間了,伴隨着 .NET 6 的開發

原创 利用 PGO 提升 .NET 程序性能

引子 .NET 6 開始初步引入 PGO。PGO 即 Profile Guided Optimization,通過收集運行時信息來指導 JIT 如何優化代碼,相比以前沒有 PGO 時可以做更多以前難以完成的優化。 下面我們用 .NET 6

原创 一探即將到來的 C# 10

前言 本來因爲懶不想寫這篇文章,但是不少人表示有興趣,於是最後決定還是寫一下。 .NET 6 最近幾個預覽版一直都在開發體驗(如 hot reload、linker 等)、平臺支持(如 Android、iOS 等)、工具鏈(如 crossg

原创 .NET 6 Preview 3 發佈

前言 2021/4/8 .NET 6 Preview 3 發佈,這個版本的改進大多來自於底層,一起來看看都有什麼新特性和改進吧。 庫改進 新增值類型作爲字典值時更快的處理方法 .NET 6 Preview 3 引入了新的 unsafe AP

原创 通過 .NET NativeAOT 實現用戶體驗升級

前言 TypedocConverter 是我先前因幫助維護 monaco-editor-uwp 但苦於 monaco editor 的 API 實在太多,手寫 C# 的類型綁定十分不划算而發起的一個項目。 這個工具可以將 typedoc 根

原创 .NET 6 Preview 2 發佈

前言 在 2021 年 3 月 11 日, .NET 6 Preview 2 發佈,這次的改進主要涉及到 MAUI、新的基礎庫和運行時、JIT 改進。 .NET 6 正式版將會在 2021 年 11 月發佈,支持 Windows、macOS

原创 .NET 6 Preview 1 發佈

前言 2021 年 2 月 17 日微軟發佈了 .NET 6 的 Preview 1 版本,那麼來看看都有什麼新特性和改進吧,由於內容太多了因此只介紹一些較爲重點的項目。ASP.NET Core 6 Preview 1 和 EF Core

原创 .NET 5 中的隱藏特性

前言 雙十一當天 .NET 5 正式發佈帶來了很多的新特性和改進,個人覺得非常香,並且花了 10 分鐘時間就把自己的 4 個 .NET Core 3.1 的項目升級到了 .NET 5,堪稱無痛。 但是,.NET 5 中還有一些沒有正式公開的