預編譯框架,開發高效能應用 - 微軟技術暨生態大會 2018
微軟技術暨生態大會(Tech Summit),2018 年在上海世博中心召開。這是隨後一次的 Tech Summit 了;明年開始,中國大陸地區就要和其他國家和地區一樣,進行全球 Ignite Tour 了。
我也有幸加入成為分會場講師團隊的一員,課程是《預編譯框架 - 開發高效能應用》。內容就是我部落格中與 MSBuild / Roslyn / dotnet / NuGet 相關的內容;我們將利用這些知識打造一個高效能客戶端應用。
進入 ofollow,noindex" target="_blank">微軟技術暨生態大會 官網可以瞭解更多內容。如果你和我一樣對微軟技術富有熱情,那麼也歡迎你 買票 一起去上海。
關於課程《預編譯框架 - 開發高效能應用》
利用 Roslyn 在編譯期間提前完成收集和修改所需的各種資訊,我們能將 .NET 的反射耗時降低到近乎為 0! 當前大多數的框架都離不開反射的支援,但是 .NET 的反射很傷效能,而不用反射又很難支撐大型應用;基於 Roslyn 的預編譯框架旨在解決這些效能問題。
本次講題能學到什麼?
- 體驗預編譯框架的強大效能
- 理解 dotnet build 的編譯過程
- 使用 Roslyn 分析和修改專案原始碼
- 如何開發自己的預編譯框架
- 製作原始碼引用 NuGet 包(而不是 dll 引用 NuGet 包)
其實此課程的計劃課程內容有 2.5 小時,畢竟部落格都有好幾十篇了呢。算上跟我一起研究這項技術的 林德熙的與 Roslyn 相關的部落格 ,那就更多了,而且還在持續增加中。
不過實際分會場課程中內容眾多,留給每個講師的時間只有 20 分鐘或者 45 分鐘。我有幸獲得了 45 分鐘時長的課程,所以雖然已經算長的了,卻也必須減少和壓縮課程內容。
於是,實際課程會以入門為主,進階內容將作為資料線下學習。注意:即便是“入門”,難度也依然是 300(難度範圍為 0-400),所以你必須擁有一定的 .NET 開發知識和一些應用開發經驗才會理解課程內容。如果你的經驗更偏客戶端應用開發,那麼更能體會本地課程內容的目的。
課程大綱
課程大綱是為 2 小時的課程而設計的。所以實際上我只會講大部分內容,以下所有動手實驗和演示的地方都會略過,代之以提前執行和編寫的結果。
實際課程中會略過的部分以斜體表示 。
- 引入
- 一批效能資料
- 收集:反射 VS 配置檔案 VS 預編譯
- 呼叫:直接呼叫 VS 最快反射 VS 預編譯
- 程式集個數:1 個 VS ……
- 一批效能資料
- 概覽
- 目錄
- 瞭解原始碼包 SourceYard 和預編譯框架 SourceFusion
- 學會編寫編譯期程式碼以提升應用效能
- 預編譯框架的原理
- 多個 API 的展示
- 原始碼包
- 編譯期類
- 類模板
- 擴充套件
- 目錄
- 教學
- 目標:學會使用編譯期程式碼代替反射以提升應用的執行效能
- 教學目錄
- 理解 dotnet build 的編譯過程
- 理解 csproj 檔案格式
- 理解編譯過程
- 理解 NuGet 打包原理
- 動手實驗:SourceYard 原始碼包簡化版
- 編譯期間執行一個 exe 程式
- 在 exe 程式中接收引數並干預編譯結果
- 學習使用 Roslyn 分析原始碼
- 語法視覺化窗格
- 分析 C# 語法樹
- 在編譯期間執行程式碼
- 動手實驗:SourceFusion 預編譯框架簡化版
- 在編譯期間收集程式集中具有特定標記的所有型別
- 生成程式碼以快速訪問這些型別的特定方法
- 理解 dotnet build 的編譯過程
- 回顧
- 回顧 dotnet build 的編譯過程和 Roslyn 分析原始碼
- SourceYard 和 SourceFusion 的開源倉庫,歡迎加入
關於講師 —— 呂毅
你可以進入 微軟技術暨生態大會 - 大會日程 頁面,然後點選 “演講嘉賓”。
在這裡,你可以看到主題演講、分會場課程以及動手實驗室的各位講師,可以去了解每一位講師以及他們的課程。當然,你也可以看到我。
歡迎你的加入
最後,歡迎你一起參加微軟技術暨生態大會,我們一起去與微軟大咖,各位微軟 MVP,社群技術牛人交流技術。
課程課件使用 希沃白板 5 製作,這是一款專門針對教學場景設計的互動課件工具。