1. 程式人生 > >預編譯框架,開發高效能應用 - 課程 - 微軟技術暨生態大會 2018

預編譯框架,開發高效能應用 - 課程 - 微軟技術暨生態大會 2018

微軟技術暨生態大會(Tech Summit),2018 年在上海世博中心召開。這是最後一次的 Tech Summit 了;明年開始,中國大陸地區就要和其他國家和地區一樣,進行全球 Ignite Tour 了。

我也有幸成為分會場講師團隊的一員,課程是《預編譯框架 - 開發高效能應用》。內容就是我部落格中與 MSBuild / Roslyn / dotnet / NuGet 相關的內容;我們將利用這些知識打造一個高效能客戶端應用。


微軟技術暨生態大會

進入 微軟技術暨生態大會 官網可以瞭解更多內容。如果你和我一樣對微軟技術富有熱情,那麼也歡迎你 買票 一起去上海。

關於課程《預編譯框架 - 開發高效能應用》

利用 Roslyn 在編譯期間提前完成收集和修改所需的各種資訊,我們能將 .NET 的反射耗時降低到近乎為 0!
當前大多數的框架都離不開反射的支援,但是 .NET 的反射很傷效能,而不用反射又很難支撐大型應用;基於 Roslyn 的預編譯框架旨在解決這些效能問題。

本次講題能學到什麼?

  1. 體驗預編譯框架的強大效能
  2. 理解 dotnet build 的編譯過程
  3. 使用 Roslyn 分析和修改專案原始碼
  4. 如何開發自己的預編譯框架
  5. 製作原始碼引用 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 的編譯過程和 Roslyn 分析原始碼
    • SourceYard 和 SourceFusion 的開源倉庫,歡迎加入

關於講師 —— 呂毅

你可以進入 微軟技術暨生態大會 - 大會日程 頁面,然後點選 “演講嘉賓”。

演講嘉賓

在這裡,你可以看到主題演講、分會場課程以及動手實驗室的各位講師,可以去了解每一位講師以及他們的課程。當然,你也可以看到我。

講師頁面

歡迎你的加入

最後,歡迎你一起參加微軟技術暨生態大會,我們一起去與微軟大咖,各位微軟 MVP,社群技術牛人交流技術。

課程課件使用 希沃白板 5 製作,這是一款專門針對教學場景設計的互動課件工具。

希沃白板 5


相關連結

SourceYard 原始碼包

SourceFusion 預編譯框架

更多 MSBuild / Roslyn / dotnet / NuGet 相關的知識