預編譯框架,開發高性能應用 - 課程 - 微軟技術暨生態大會 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 相關的知識

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