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


微软技术暨生态大会(Tech Summit),2018 年在上海世博中心召开。这是最后一次的 Tech Summit 了;明年开始,中国大陆地区就要和其他国家和地区一样,进行全球 Ignite Tour 了。

我也有幸成为分会场讲师团队的一员,课程是《预编译框架 - 开发高性能应用》。内容就是我博客中与 MSBuild / Roslyn / dotnet / NuGet 相关的内容;我们将利用这些知识打造一个高性能客户端应用。


微软技术暨生态大会

进入 微软技术暨生态大会 官网可以了解更多内容。如果你和我一样对微软技术富有热情,那么也欢迎你 买票 一起去上海。

林德熙的与 Roslyn 相关的博客,那就更多了,而且还在持续增加中。

不过实际分会场课程中内容众多,留给每个讲师的时间只有 20 分钟或者 45 分钟。我有幸获得了 45 分钟时长的课程,所以虽然已经算长的了,却也必须减少和压缩课程内容。

于是,实际课程会以入门为主,进阶内容将作为资料线下学习。注意:即便是“入门”,难度也依然是 300(难度范围为 0-400),所以你必须拥有一定的 .NET 开发知识和一些应用开发经验才会理解课程内容。如果你的经验更偏客户端应用开发,那么更能体会本课程内容的目的。

微软技术暨生态大会 - 大会日程 页面,然后点击 “演讲嘉宾”。

演讲嘉宾

在这里,你可以看到主题演讲、分会场课程以及动手实验室的各位讲师,可以去了解每一位讲师以及他们的课程。当然,你也可以看到我。

讲师页面

购票
  • 微软粉丝之夜报名(目前名额已满)
  • 课程课件使用 希沃白板 5 制作,这是一款专门针对教学场景设计的互动课件工具。

    希沃白板 5


    将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 - 吕毅
  • Roslyn 如何基于 Microsoft.NET.Sdk 制作源代码包 - 林德熙
  • 理解 C# 项目 csproj 文件格式的本质和编译流程 - 吕毅
  • 将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成基于 Microsoft.NET.Sdk 的新 csproj - 吕毅
  • 新 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras - 吕毅
  • 如何使用 MSBuild Target(Exec)中的控制台输出 - 吕毅
  • 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 - 吕毅
  • 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 - 吕毅
  • 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) - 吕毅
  • Roslyn 如何使用 MSBuild Copy 复制文件 - 林德熙
  • 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 - 吕毅
  • 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 - 吕毅
  • 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 - 吕毅
  • 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) - 吕毅
  • 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) - 吕毅
  • 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 - 吕毅
  • 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 - 吕毅
  • Roslyn 通过 Target 修改编译的文件 - 林德熙
  • Roslyn 使用 WriteLinesToFile 解决参数过长无法传入 - 林德熙
  • Roslyn 如何在 Target 引用 xaml 防止文件没有编译 - 林德熙
  • Roslyn 通过 nuget 统一管理信息 - 林德熙
  • Roslyn 使用 Target 替换占位符方式生成 nuget 打包 - 林德熙
  • MSBuild/Roslyn 和 NuGet 的 100 个坑 - 吕毅
  • Roslyn 通过 Nuget 引用源代码 在 VS 智能提示正常但是无法编译 - 林德熙
  • 都是用 DllImport?有没有考虑过自己写一个 extern 方法? - 吕毅
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 - 吕毅
  • Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 - 吕毅
  • Roslyn 静态分析 - 林德熙
  • Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码 - 吕毅
  • Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 - 吕毅
  • Roslyn 语法树中的各种语法节点及每个节点的含义 - 吕毅
  • Roslyn 通过 Nuget 管理公司配置 - 林德熙
  • Roslyn 在项目文件使用条件判断 - 林德熙
  • 理解 Roslyn 中的红绿树(Red-Green Trees) - 吕毅
  • Roslyn 的确定性构建 - 吕毅
  • Roslyn 节点的 Span 和 FullSpan 有什么区别 - 林德熙
  • Roslyn NameSyntax 的 ToString 和 ToFullString 的区别 - 林德熙
  • 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference - 吕毅
  • 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) - 吕毅
  • 阻止某个 NuGet 包意外升级 - 吕毅
  • 语义版本号(Semantic Versioning) - 吕毅
  • 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 - 吕毅
  • Roslyn 使用 Directory.Build.props 管理多个项目配置 - 林德熙
  • Roslyn 使用 Directory.Build.props 文件定义编译 - 林德熙
  • 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 - 吕毅
  • 使用链接共享 Visual Studio 中的代码文件 - 吕毅
  • 为 Visual Studio 使用通配符批量添加项目文件 - 吕毅
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 - 吕毅
  • dotnet core 通过修改文件头的方式隐藏控制台窗口 - 林德熙
  • 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) - 吕毅
  • Automatically increase the semantic version using GitVersion - 吕毅
  • Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling - 吕毅