日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018

發(fā)布時(shí)間:2023/12/4 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

微軟技術(shù)暨生態(tài)大會(huì)(Tech Summit),2018 年在上海世博中心召開(kāi)。這是最后一次的 Tech Summit 了;明年開(kāi)始,中國(guó)大陸地區(qū)就要和其他國(guó)家和地區(qū)一樣,進(jìn)行全球 Ignite Tour 了。

我也有幸成為分會(huì)場(chǎng)講師團(tuán)隊(duì)的一員,課程是《預(yù)編譯框架 - 開(kāi)發(fā)高性能應(yīng)用》。內(nèi)容就是我博客中與 MSBuild / Roslyn / dotnet / NuGet 相關(guān)的內(nèi)容;我們將利用這些知識(shí)打造一個(gè)高性能客戶端應(yīng)用。

進(jìn)入?微軟技術(shù)暨生態(tài)大會(huì)?官網(wǎng)可以了解更多內(nèi)容。如果你和我一樣對(duì)微軟技術(shù)富有熱情,那么也歡迎你?買(mǎi)票?一起去上海。

關(guān)于課程《預(yù)編譯框架 - 開(kāi)發(fā)高性能應(yīng)用》

時(shí)間:2018 年 10 月 27 日 11:00-11:45 代號(hào):DEV306 難度:L300

利用 Roslyn 在編譯期間提前完成收集和修改所需的各種信息,我們能將 .NET 的反射耗時(shí)降低到近乎為 0! 當(dāng)前大多數(shù)的框架都離不開(kāi)反射的支持,但是 .NET 的反射很傷性能,而不用反射又很難支撐大型應(yīng)用;基于 Roslyn 的預(yù)編譯框架旨在解決這些性能問(wèn)題。

本次講題能學(xué)到什么?

  • 體驗(yàn)預(yù)編譯框架的強(qiáng)大性能

  • 理解 dotnet build 的編譯過(guò)程

  • 使用 Roslyn 分析和修改項(xiàng)目源代碼

  • 如何開(kāi)發(fā)自己的預(yù)編譯框架

  • 制作源代碼引用 NuGet 包(而不是 dll 引用 NuGet 包)

  • 其實(shí)此課程的計(jì)劃課程內(nèi)容有 2.5 小時(shí),畢竟博客都有好幾十篇了呢。算上跟我一起研究這項(xiàng)技術(shù)的林德熙的與 Roslyn 相關(guān)的博客,那就更多了,而且還在持續(xù)增加中。不過(guò)實(shí)際分會(huì)場(chǎng)課程中內(nèi)容眾多,留給每個(gè)講師的時(shí)間只有 45 分鐘,必須減少和壓縮課程內(nèi)容。

    于是,實(shí)際課程會(huì)以入門(mén)為主,進(jìn)階內(nèi)容將作為資料線下學(xué)習(xí)。注意:即便是“入門(mén)”,難度也依然是 L300(難度范圍為 L100-L400),所以你必須擁有一定的 .NET 開(kāi)發(fā)知識(shí)和一些應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)才會(huì)理解課程內(nèi)容。如果你的經(jīng)驗(yàn)更偏客戶端應(yīng)用開(kāi)發(fā),那么更能體會(huì)本課程內(nèi)容的目的。

    額外的,彩排在 26 號(hào) 9:40-10:00。

    課程大綱

    課程大綱是為 2 小時(shí)的課程而設(shè)計(jì)的。所以實(shí)際上我只會(huì)講大部分內(nèi)容,以下所有動(dòng)手實(shí)驗(yàn)和演示的地方都會(huì)略過(guò),代之以提前運(yùn)行和編寫(xiě)的結(jié)果。

    實(shí)際課程中會(huì)略過(guò)的部分以斜體表示。

    • 引入

      • 收集:反射 VS 配置文件 VS 預(yù)編譯

      • 調(diào)用:直接調(diào)用 VS 最快反射 VS 預(yù)編譯

      • 程序集個(gè)數(shù):1 個(gè) VS ……

      • 一批性能數(shù)據(jù)

    • 概覽

      • 源碼包

      • 編譯期類(lèi)

      • 類(lèi)模板

      • 擴(kuò)展

      • 了解源碼包 SourceYard 和預(yù)編譯框架 SourceFusion

      • 學(xué)會(huì)編寫(xiě)編譯期代碼以提升應(yīng)用性能

      • 目錄

      • 預(yù)編譯框架的原理

      • 多個(gè) API 的展示

    • 教學(xué)

      • 理解 dotnet build 的編譯過(guò)程

      • 動(dòng)手實(shí)驗(yàn):SourceYard 源碼包簡(jiǎn)化版

      • 學(xué)習(xí)使用 Roslyn 分析源代碼

      • 動(dòng)手實(shí)驗(yàn):SourceFusion 預(yù)編譯框架簡(jiǎn)化版

      • 理解 csproj 文件格式

      • 理解編譯過(guò)程

      • 理解 NuGet 打包原理

      • 編譯期間執(zhí)行一個(gè) exe 程序

      • 在 exe 程序中接收參數(shù)并干預(yù)編譯結(jié)果

      • 語(yǔ)法可視化窗格

      • 分析 C# 語(yǔ)法樹(shù)

      • 在編譯期間執(zhí)行代碼

      • 在編譯期間收集程序集中具有特定標(biāo)記的所有類(lèi)型

      • 生成代碼以快速訪問(wèn)這些類(lèi)型的特定方法

      • 目標(biāo):學(xué)會(huì)使用編譯期代碼代替反射以提升應(yīng)用的執(zhí)行性能

      • 教學(xué)目錄

    • 回顧

      • 回顧 dotnet build 的編譯過(guò)程和 Roslyn 分析源碼

      • SourceYard 和 SourceFusion 的開(kāi)源倉(cāng)庫(kù),歡迎加入

    關(guān)于講師 —— 呂毅

    你可以進(jìn)入?微軟技術(shù)暨生態(tài)大會(huì) - 大會(huì)日程?頁(yè)面,然后點(diǎn)擊 “演講嘉賓”。

    在這里,你可以看到主題演講、分會(huì)場(chǎng)課程以及動(dòng)手實(shí)驗(yàn)室的各位講師,可以去了解每一位講師以及他們的課程。當(dāng)然,你也可以看到我。

    歡迎你的加入

    最后,歡迎你一起參加微軟技術(shù)暨生態(tài)大會(huì),我們一起去與微軟大咖,各位微軟 MVP,社區(qū)技術(shù)牛人交流技術(shù)。

    • 購(gòu)票

    • 微軟粉絲之夜報(bào)名(目前名額已滿)

    課程課件使用?希沃白板 5?制作,這是一款專(zhuān)門(mén)針對(duì)教學(xué)場(chǎng)景設(shè)計(jì)的互動(dòng)課件工具。

    相關(guān)鏈接

    SourceYard 源碼包

    • 將 .NET Core 項(xiàng)目打一個(gè)最簡(jiǎn)單的 NuGet 源碼包,安裝此包就像直接把源碼放進(jìn)項(xiàng)目一樣 - 呂毅

    • Roslyn 如何基于 Microsoft.NET.Sdk 制作源代碼包 - 林德熙

    SourceFusion 預(yù)編譯框架

    • 理解 C# 項(xiàng)目 csproj 文件格式的本質(zhì)和編譯流程 - 呂毅

    • 將 WPF、UWP 以及其他各種類(lèi)型的舊 csproj 遷移成基于 Microsoft.NET.Sdk 的新 csproj - 呂毅

    • 新 csproj 對(duì) WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras - 呂毅

    • 如何使用 MSBuild Target(Exec)中的控制臺(tái)輸出 - 呂毅

    • 如何在 MSBuild Target(Exec)中報(bào)告編譯錯(cuò)誤和編譯警告 - 呂毅

    • 在制作跨平臺(tái)的 NuGet 工具包時(shí),如何將工具(exe/dll)的所有依賴(lài)一并放入包中 - 呂毅

    • 如何編寫(xiě)基于 Microsoft.NET.Sdk 的跨平臺(tái)的 MSBuild Target(附各種自帶的 Task) - 呂毅

    • Roslyn 如何使用 MSBuild Copy 復(fù)制文件 - 林德熙

    • 每次都要重新編譯?太慢!讓跨平臺(tái)的 MSBuild/dotnet build 的 Target 支持差量編譯 - 呂毅

    • 解讀 Microsoft.NET.Sdk 的源碼,你能定制各種奇怪而富有創(chuàng)意的編譯過(guò)程 - 呂毅

    • 幫助官方 NuGet 解掉 Bug,制作絕對(duì)不會(huì)傳遞依賴(lài)的 NuGet 包 - 呂毅

    • 項(xiàng)目文件中的已知屬性(知道了這些,就不會(huì)隨便在 csproj 中寫(xiě)死常量啦) - 呂毅

    • 項(xiàng)目文件中的已知 NuGet 屬性(使用這些屬性,創(chuàng)建 NuGet 包就可以不需要 nuspec 文件啦) - 呂毅

    • 如何創(chuàng)建一個(gè)基于 MSBuild Task 的跨平臺(tái)的 NuGet 工具包 - 呂毅

    • 如何創(chuàng)建一個(gè)基于命令行工具的跨平臺(tái)的 NuGet 工具包 - 呂毅

    • Roslyn 通過(guò) Target 修改編譯的文件 - 林德熙

    • Roslyn 使用 WriteLinesToFile 解決參數(shù)過(guò)長(zhǎng)無(wú)法傳入 - 林德熙

    • Roslyn 如何在 Target 引用 xaml 防止文件沒(méi)有編譯 - 林德熙

    • Roslyn 通過(guò) nuget 統(tǒng)一管理信息 - 林德熙

    • Roslyn 使用 Target 替換占位符方式生成 nuget 打包 - 林德熙

    • MSBuild/Roslyn 和 NuGet 的 100 個(gè)坑 - 呂毅

    • Roslyn 通過(guò) Nuget 引用源代碼 在 VS 智能提示正常但是無(wú)法編譯 - 林德熙

    • 都是用 DllImport?有沒(méi)有考慮過(guò)自己寫(xiě)一個(gè) extern 方法? - 呂毅

    • .NET/C# 中你可以在代碼中寫(xiě)多個(gè) Main 函數(shù),然后按需要隨時(shí)切換 - 呂毅

    • Roslyn 入門(mén):使用 Visual Studio 的語(yǔ)法可視化(Syntax Visualizer)窗格查看和了解代碼的語(yǔ)法樹(shù) - 呂毅

    • Roslyn 靜態(tài)分析 - 林德熙

    • Roslyn 入門(mén):使用 Roslyn 靜態(tài)分析現(xiàn)有項(xiàng)目中的代碼 - 呂毅

    • Roslyn 入門(mén):使用 .NET Core 版本的 Roslyn 編譯并執(zhí)行跨平臺(tái)的靜態(tài)的源碼 - 呂毅

    • Roslyn 語(yǔ)法樹(shù)中的各種語(yǔ)法節(jié)點(diǎn)及每個(gè)節(jié)點(diǎn)的含義 - 呂毅

    • Roslyn 通過(guò) Nuget 管理公司配置 - 林德熙

    • Roslyn 在項(xiàng)目文件使用條件判斷 - 林德熙

    更多 MSBuild / Roslyn / dotnet / NuGet 相關(guān)的知識(shí)

    • 理解 Roslyn 中的紅綠樹(shù)(Red-Green Trees) - 呂毅

    • Roslyn 的確定性構(gòu)建 - 呂毅

    • Roslyn 節(jié)點(diǎn)的 Span 和 FullSpan 有什么區(qū)別 - 林德熙

    • Roslyn NameSyntax 的 ToString 和 ToFullString 的區(qū)別 - 林德熙

    • 自動(dòng)將 NuGet 包的引用方式從 packages.config 升級(jí)為 PackageReference - 呂毅

    • 如何最快速地將舊的 NuGet 包 (2.x, packages.config) 升級(jí)成新的 NuGet 包 (4.x, PackageReference) - 呂毅

    • 阻止某個(gè) NuGet 包意外升級(jí) - 呂毅

    • 語(yǔ)義版本號(hào)(Semantic Versioning) - 呂毅

    • 使用 MSBuild 響應(yīng)文件 (rsp) 來(lái)指定 dotnet build 命令行編譯時(shí)的大量參數(shù) - 呂毅

    • Roslyn 使用 Directory.Build.props 管理多個(gè)項(xiàng)目配置 - 林德熙

    • Roslyn 使用 Directory.Build.props 文件定義編譯 - 林德熙

    • 在 Visual Studio 的解決方案資源管理器中隱藏一些文件 - 呂毅

    • 使用鏈接共享 Visual Studio 中的代碼文件 - 呂毅

    • 為 Visual Studio 使用通配符批量添加項(xiàng)目文件 - 呂毅

    • (1/2) 為了理解 UWP 的啟動(dòng)流程,我從零開(kāi)始創(chuàng)建了一個(gè) UWP 程序 - 呂毅

    • dotnet core 通過(guò)修改文件頭的方式隱藏控制臺(tái)窗口 - 林德熙

    • 使用 GitVersion 在編譯或持續(xù)構(gòu)建時(shí)自動(dòng)使用語(yǔ)義版本號(hào)(Semantic Versioning) - 呂毅

    • Automatically increase the semantic version using GitVersion - 呂毅

    • Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling - 呂毅

    更多課程

    • Microsoft Tech Summit 2018 課程簡(jiǎn)述:利用 Windows 新特性開(kāi)發(fā)出更好的手繪視頻應(yīng)用 - shaomeng

      • 時(shí)間:2018 年 10 月 27 日 17:00-17:45

      • 講師:邵猛

      • 代號(hào):NUE204

    原文地址:https://walterlv.com/post/dotnet-build-and-roslyn-course-in-tech-summit-2018.html

    .NET社區(qū)新聞,深度好文,歡迎訪問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com

    總結(jié)

    以上是生活随笔為你收集整理的课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。