系统之家提供 Windows 系统、Ghost 系统、驱动与常用软件的安全下载及安装教程。 后台管理
📢 欢迎访问系统之家!所有资源均经过安全检测。

Archives

发布时间:2026-10-12 | 浏览:1
首页 朋友和收藏 胡思乱想 归档 关于 朋友和收藏 胡思乱想 归档 关于 05 1月 在 Windows 系统上降低 UAC 权限运行程序(从管理员权限降权到普通用户权限) 03 8月 如何在控制台程序中监听 Windows 前台窗口的变化 03 8月 .NET/C# 程序如何在控制台/终端中以字符表格的形式输出数据 01 8月 在 Windows 上如何在启动程序时单独为这个程序指定环境变量,而不需要编写任何代码或脚本 19 7月 如何正确调教 Visual Studio 自带的拼写检查功能 25 5月 WPF 像素着色器进阶:使用 HLSL 编写一个高性能的实时变化的 HSL/HSV/HSB 调色盘 22 5月 WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 19 5月 Windows 10 自带那么多图标,去哪里找呢? 18 4月 如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀) 01 3月 如何利用 Win32 API 设置两个窗口的所有者(Owner)关系 28 2月 WPF 的 Dispatcher 为什么要创建一个隐藏窗口? 03 8月 .NET/C# 程序如何在控制台/终端中以字符表格的形式输出数据 01 8月 在 Windows 上如何在启动程序时单独为这个程序指定环境变量,而不需要编写任何代码或脚本 19 7月 如何正确调教 Visual Studio 自带的拼写检查功能 25 5月 WPF 像素着色器进阶:使用 HLSL 编写一个高性能的实时变化的 HSL/HSV/HSB 调色盘 22 5月 WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 19 5月 Windows 10 自带那么多图标,去哪里找呢? 18 4月 如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀) 01 3月 如何利用 Win32 API 设置两个窗口的所有者(Owner)关系 28 2月 WPF 的 Dispatcher 为什么要创建一个隐藏窗口? 01 8月 在 Windows 上如何在启动程序时单独为这个程序指定环境变量,而不需要编写任何代码或脚本 19 7月 如何正确调教 Visual Studio 自带的拼写检查功能 25 5月 WPF 像素着色器进阶:使用 HLSL 编写一个高性能的实时变化的 HSL/HSV/HSB 调色盘 22 5月 WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 19 5月 Windows 10 自带那么多图标,去哪里找呢? 18 4月 如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀) 01 3月 如何利用 Win32 API 设置两个窗口的所有者(Owner)关系 28 2月 WPF 的 Dispatcher 为什么要创建一个隐藏窗口? 19 7月 如何正确调教 Visual Studio 自带的拼写检查功能 25 5月 WPF 像素着色器进阶:使用 HLSL 编写一个高性能的实时变化的 HSL/HSV/HSB 调色盘 22 5月 WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 19 5月 Windows 10 自带那么多图标,去哪里找呢? 18 4月 如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀) 01 3月 如何利用 Win32 API 设置两个窗口的所有者(Owner)关系 28 2月 WPF 的 Dispatcher 为什么要创建一个隐藏窗口? 25 5月 WPF 像素着色器进阶:使用 HLSL 编写一个高性能的实时变化的 HSL/HSV/HSB 调色盘 22 5月 WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 19 5月 Windows 10 自带那么多图标,去哪里找呢? 18 4月 如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀) 01 3月 如何利用 Win32 API 设置两个窗口的所有者(Owner)关系 28 2月 WPF 的 Dispatcher 为什么要创建一个隐藏窗口? 22 5月 WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 19 5月 Windows 10 自带那么多图标,去哪里找呢? 18 4月 如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀) 01 3月 如何利用 Win32 API 设置两个窗口的所有者(Owner)关系 28 2月 WPF 的 Dispatcher 为什么要创建一个隐藏窗口? 19 5月 Windows 10 自带那么多图标,去哪里找呢? 18 4月 如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀) 01 3月 如何利用 Win32 API 设置两个窗口的所有者(Owner)关系 28 2月 WPF 的 Dispatcher 为什么要创建一个隐藏窗口? 18 4月 如何更精准地设置 C# / .NET Core 项目的输出路径?(包括添加和删除各种前后缀) 01 3月 如何利用 Win32 API 设置两个窗口的所有者(Owner)关系 28 2月 WPF 的 Dispatcher 为什么要创建一个隐藏窗口? 01 3月 如何利用 Win32 API 设置两个窗口的所有者(Owner)关系 28 2月 WPF 的 Dispatcher 为什么要创建一个隐藏窗口? 28 2月 WPF 的 Dispatcher 为什么要创建一个隐藏窗口? 08 11月 Directory.GetFiles 中传入搜索字符串(Search Pattern)的神奇规则 28 9月 CS8350:不允许使用“Foo(ref x, ref y)”的这种参数组合,因为它可能会在其声明范围之外公开由参数 x 引用的变量 20 9月 使用 AutoMapper 自动映射模型时,处理不同模型属性缺失的问题 20 9月 使用 AutoMapper 自动在多个数据模型间进行转换 20 9月 解决 WPF 分组的 ItemsControl 内部控件无法被 UI 自动化识别的问题 12 7月 如何让 WPF 程序更好地适配 UI 自动化 11 7月 最简单的代码,让 WPF 支持响应式布局 11 7月 MSBuild/Roslyn 和 NuGet 的 100 个坑 11 7月 git subtree 不断增加的推送时间,解不玩的冲突!这篇文章应该能救你 30 5月 git fetch 失败,因为 unable to resolve reference 'refs/remotes/origin/xxx': reference broken 17 5月 使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪 17 5月 基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider 17 5月 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码(语法分析) 05 3月 WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 28 9月 CS8350:不允许使用“Foo(ref x, ref y)”的这种参数组合,因为它可能会在其声明范围之外公开由参数 x 引用的变量 20 9月 使用 AutoMapper 自动映射模型时,处理不同模型属性缺失的问题 20 9月 使用 AutoMapper 自动在多个数据模型间进行转换 20 9月 解决 WPF 分组的 ItemsControl 内部控件无法被 UI 自动化识别的问题 12 7月 如何让 WPF 程序更好地适配 UI 自动化 11 7月 最简单的代码,让 WPF 支持响应式布局 11 7月 MSBuild/Roslyn 和 NuGet 的 100 个坑 11 7月 git subtree 不断增加的推送时间,解不玩的冲突!这篇文章应该能救你 30 5月 git fetch 失败,因为 unable to resolve reference 'refs/remotes/origin/xxx': reference broken 17 5月 使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪 17 5月 基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider 17 5月 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码(语法分析) 05 3月 WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 20 9月 使用 AutoMapper 自动映射模型时,处理不同模型属性缺失的问题 20 9月 使用 AutoMapper 自动在多个数据模型间进行转换 20 9月 解决 WPF 分组的 ItemsControl 内部控件无法被 UI 自动化识别的问题 12 7月 如何让 WPF 程序更好地适配 UI 自动化 11 7月 最简单的代码,让 WPF 支持响应式布局 11 7月 MSBuild/Roslyn 和 NuGet 的 100 个坑 11 7月 git subtree 不断增加的推送时间,解不玩的冲突!这篇文章应该能救你 30 5月 git fetch 失败,因为 unable to resolve reference 'refs/remotes/origin/xxx': reference broken 17 5月 使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪 17 5月 基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider 17 5月 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码(语法分析) 05 3月 WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 20 9月 使用 AutoMapper 自动在多个数据模型间进行转换 20 9月 解决 WPF 分组的 ItemsControl 内部控件无法被 UI 自动化识别的问题 12 7月 如何让 WPF 程序更好地适配 UI 自动化 11 7月 最简单的代码,让 WPF 支持响应式布局 11 7月 MSBuild/Roslyn 和 NuGet 的 100 个坑 11 7月 git subtree 不断增加的推送时间,解不玩的冲突!这篇文章应该能救你 30 5月 git fetch 失败,因为 unable to resolve reference 'refs/remotes/origin/xxx': reference broken 17 5月 使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪 17 5月 基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider 17 5月 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码(语法分析) 05 3月 WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 20 9月 解决 WPF 分组的 ItemsControl 内部控件无法被 UI 自动化识别的问题 12 7月 如何让 WPF 程序更好地适配 UI 自动化 11 7月 最简单的代码,让 WPF 支持响应式布局 11 7月 MSBuild/Roslyn 和 NuGet 的 100 个坑 11 7月 git subtree 不断增加的推送时间,解不玩的冲突!这篇文章应该能救你 30 5月 git fetch 失败,因为 unable to resolve reference 'refs/remotes/origin/xxx': reference broken 17 5月 使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪 17 5月 基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider 17 5月 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码(语法分析) 05 3月 WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 12 7月 如何让 WPF 程序更好地适配 UI 自动化 11 7月 最简单的代码,让 WPF 支持响应式布局 11 7月 MSBuild/Roslyn 和 NuGet 的 100 个坑 11 7月 git subtree 不断增加的推送时间,解不玩的冲突!这篇文章应该能救你 30 5月 git fetch 失败,因为 unable to resolve reference 'refs/remotes/origin/xxx': reference broken 17 5月 使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪 17 5月 基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider 17 5月 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码(语法分析) 05 3月 WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 11 7月 最简单的代码,让 WPF 支持响应式布局 11 7月 MSBuild/Roslyn 和 NuGet 的 100 个坑 11 7月 git subtree 不断增加的推送时间,解不玩的冲突!这篇文章应该能救你 30 5月 git fetch 失败,因为 unable to resolve reference 'refs/remotes/origin/xxx': reference broken 17 5月 使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪 17 5月 基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider 17 5月 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码(语法分析) 05 3月 WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 11 7月 MSBuild/Roslyn 和 NuGet 的 100 个坑 11 7月 git subtree 不断增加的推送时间,解不玩的冲突!这篇文章应该能救你 30 5月 git fetch 失败,因为 unable to resolve reference 'refs/remotes/origin/xxx': reference broken 17 5月 使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪 17 5月 基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider 17 5月 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码(语法分析) 05 3月 WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 11 7月 git subtree 不断增加的推送时间,解不玩的冲突!这篇文章应该能救你 30 5月 git fetch 失败,因为 unable to resolve reference 'refs/remotes/origin/xxx': reference broken 17 5月 使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪 17 5月 基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider 17 5月 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码(语法分析) 05 3月 WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 30 5月 git fetch 失败,因为 unable to resolve reference 'refs/remotes/origin/xxx': reference broken 17 5月 使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪 17 5月 基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider 17 5月 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码(语法分析) 05 3月 WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 17 5月 使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪 17 5月 基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider 17 5月 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码(语法分析) 05 3月 WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 17 5月 基于 Roslyn 同时为 Visual Studio 插件和 NuGet 包开发 .NET/C# 源代码分析器 Analyzer 和修改器 CodeFixProvider 17 5月 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码(语法分析) 05 3月 WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 17 5月 Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码(语法分析) 05 3月 WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 05 3月 WPF 窗口在 Visual Studio 调试的时候会被一个莫名其妙的调试层覆盖住 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 16 2月 使用 ImageMagick 轻松制作带有多种尺寸的 ico 图标文件 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 16 2月 在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 28 1月 如何检测当前操作系统是否支持运行 .NET Core 3 / .NET 5 / .NET 6 应用? 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 27 1月 如何让 .NET 程序脱离系统安装的 .NET 运行时独立运行?除了 Self-Contained 之外还有更好方法!谈 dotnetCampus.AppHost 的工作原理 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 27 1月 如何编译、修改和调试 dotnet runtime 仓库中的 apphost nethost comhost ijwhost 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 27 1月 修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 27 1月 一文看懂 .NET 的异常处理机制、原则以及最佳实践 29 12月 使用 Source Generator 在编译你的 .NET 项目时自动生成代码 29 12月 使用 Roslyn 对 C# 代码进行语义分析 22 12月 将 Windows Terminal 作为外部工具集成到其他工具/程序/代码中 21 12月 WHAT DID DELL DO? All WPF apps are rendered in a mess! 21 12月 所有 WPF 程序的界面渲染完全糊掉,竟是戴尔电脑惹的锅? 21 12月 删删删!快速将旧版 .NET Framework 的 WPF / Windows Forms 项目格式(csproj) 迁移成新版 SDK 风格的项目格式 20 12月 .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly) 13 12月 为 .NET Core / Framework 程序开启大内存感知(LargeAddressAware),使 32 位程序支持最多 4GB 的用户空间内存 13 12月 C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包 22 11月 将美化进行到底,使用 Oh My Posh 把 PowerShell 做成 oh-my-zsh 的样子 15 11月 无需安装 VS2019,在 Visual Studio 2022 中编译 .NET Framework 4.5/4/3.5 这样的古老框架 12 11月 WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 11 11月 Visual Studio 2022 升级不再附带 .NET Framework 4.5 这种古老的目标包了,本文帮你装回来 08 11月 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 29 12月 使用 Roslyn 对 C# 代码进行语义分析 22 12月 将 Windows Terminal 作为外部工具集成到其他工具/程序/代码中 21 12月 WHAT DID DELL DO? All WPF apps are rendered in a mess! 21 12月 所有 WPF 程序的界面渲染完全糊掉,竟是戴尔电脑惹的锅? 21 12月 删删删!快速将旧版 .NET Framework 的 WPF / Windows Forms 项目格式(csproj) 迁移成新版 SDK 风格的项目格式 20 12月 .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly) 13 12月 为 .NET Core / Framework 程序开启大内存感知(LargeAddressAware),使 32 位程序支持最多 4GB 的用户空间内存 13 12月 C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包 22 11月 将美化进行到底,使用 Oh My Posh 把 PowerShell 做成 oh-my-zsh 的样子 15 11月 无需安装 VS2019,在 Visual Studio 2022 中编译 .NET Framework 4.5/4/3.5 这样的古老框架 12 11月 WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 11 11月 Visual Studio 2022 升级不再附带 .NET Framework 4.5 这种古老的目标包了,本文帮你装回来 08 11月 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 22 12月 将 Windows Terminal 作为外部工具集成到其他工具/程序/代码中 21 12月 WHAT DID DELL DO? All WPF apps are rendered in a mess! 21 12月 所有 WPF 程序的界面渲染完全糊掉,竟是戴尔电脑惹的锅? 21 12月 删删删!快速将旧版 .NET Framework 的 WPF / Windows Forms 项目格式(csproj) 迁移成新版 SDK 风格的项目格式 20 12月 .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly) 13 12月 为 .NET Core / Framework 程序开启大内存感知(LargeAddressAware),使 32 位程序支持最多 4GB 的用户空间内存 13 12月 C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包 22 11月 将美化进行到底,使用 Oh My Posh 把 PowerShell 做成 oh-my-zsh 的样子 15 11月 无需安装 VS2019,在 Visual Studio 2022 中编译 .NET Framework 4.5/4/3.5 这样的古老框架 12 11月 WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 11 11月 Visual Studio 2022 升级不再附带 .NET Framework 4.5 这种古老的目标包了,本文帮你装回来 08 11月 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 21 12月 WHAT DID DELL DO? All WPF apps are rendered in a mess! 21 12月 所有 WPF 程序的界面渲染完全糊掉,竟是戴尔电脑惹的锅? 21 12月 删删删!快速将旧版 .NET Framework 的 WPF / Windows Forms 项目格式(csproj) 迁移成新版 SDK 风格的项目格式 20 12月 .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly) 13 12月 为 .NET Core / Framework 程序开启大内存感知(LargeAddressAware),使 32 位程序支持最多 4GB 的用户空间内存 13 12月 C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包 22 11月 将美化进行到底,使用 Oh My Posh 把 PowerShell 做成 oh-my-zsh 的样子 15 11月 无需安装 VS2019,在 Visual Studio 2022 中编译 .NET Framework 4.5/4/3.5 这样的古老框架 12 11月 WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 11 11月 Visual Studio 2022 升级不再附带 .NET Framework 4.5 这种古老的目标包了,本文帮你装回来 08 11月 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 21 12月 所有 WPF 程序的界面渲染完全糊掉,竟是戴尔电脑惹的锅? 21 12月 删删删!快速将旧版 .NET Framework 的 WPF / Windows Forms 项目格式(csproj) 迁移成新版 SDK 风格的项目格式 20 12月 .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly) 13 12月 为 .NET Core / Framework 程序开启大内存感知(LargeAddressAware),使 32 位程序支持最多 4GB 的用户空间内存 13 12月 C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包 22 11月 将美化进行到底,使用 Oh My Posh 把 PowerShell 做成 oh-my-zsh 的样子 15 11月 无需安装 VS2019,在 Visual Studio 2022 中编译 .NET Framework 4.5/4/3.5 这样的古老框架 12 11月 WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 11 11月 Visual Studio 2022 升级不再附带 .NET Framework 4.5 这种古老的目标包了,本文帮你装回来 08 11月 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 21 12月 删删删!快速将旧版 .NET Framework 的 WPF / Windows Forms 项目格式(csproj) 迁移成新版 SDK 风格的项目格式 20 12月 .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly) 13 12月 为 .NET Core / Framework 程序开启大内存感知(LargeAddressAware),使 32 位程序支持最多 4GB 的用户空间内存 13 12月 C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包 22 11月 将美化进行到底,使用 Oh My Posh 把 PowerShell 做成 oh-my-zsh 的样子 15 11月 无需安装 VS2019,在 Visual Studio 2022 中编译 .NET Framework 4.5/4/3.5 这样的古老框架 12 11月 WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 11 11月 Visual Studio 2022 升级不再附带 .NET Framework 4.5 这种古老的目标包了,本文帮你装回来 08 11月 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 20 12月 .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly) 13 12月 为 .NET Core / Framework 程序开启大内存感知(LargeAddressAware),使 32 位程序支持最多 4GB 的用户空间内存 13 12月 C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包 22 11月 将美化进行到底,使用 Oh My Posh 把 PowerShell 做成 oh-my-zsh 的样子 15 11月 无需安装 VS2019,在 Visual Studio 2022 中编译 .NET Framework 4.5/4/3.5 这样的古老框架 12 11月 WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 11 11月 Visual Studio 2022 升级不再附带 .NET Framework 4.5 这种古老的目标包了,本文帮你装回来 08 11月 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 13 12月 为 .NET Core / Framework 程序开启大内存感知(LargeAddressAware),使 32 位程序支持最多 4GB 的用户空间内存 13 12月 C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包 22 11月 将美化进行到底,使用 Oh My Posh 把 PowerShell 做成 oh-my-zsh 的样子 15 11月 无需安装 VS2019,在 Visual Studio 2022 中编译 .NET Framework 4.5/4/3.5 这样的古老框架 12 11月 WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 11 11月 Visual Studio 2022 升级不再附带 .NET Framework 4.5 这种古老的目标包了,本文帮你装回来 08 11月 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 13 12月 C#/.NET 如何创建带有本机依赖的多框架多系统 NuGet 包 22 11月 将美化进行到底,使用 Oh My Posh 把 PowerShell 做成 oh-my-zsh 的样子 15 11月 无需安装 VS2019,在 Visual Studio 2022 中编译 .NET Framework 4.5/4/3.5 这样的古老框架 12 11月 WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 11 11月 Visual Studio 2022 升级不再附带 .NET Framework 4.5 这种古老的目标包了,本文帮你装回来 08 11月 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 22 11月 将美化进行到底,使用 Oh My Posh 把 PowerShell 做成 oh-my-zsh 的样子 15 11月 无需安装 VS2019,在 Visual Studio 2022 中编译 .NET Framework 4.5/4/3.5 这样的古老框架 12 11月 WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 11 11月 Visual Studio 2022 升级不再附带 .NET Framework 4.5 这种古老的目标包了,本文帮你装回来 08 11月 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 15 11月 无需安装 VS2019,在 Visual Studio 2022 中编译 .NET Framework 4.5/4/3.5 这样的古老框架 12 11月 WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 11 11月 Visual Studio 2022 升级不再附带 .NET Framework 4.5 这种古老的目标包了,本文帮你装回来 08 11月 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 12 11月 WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 11 11月 Visual Studio 2022 升级不再附带 .NET Framework 4.5 这种古老的目标包了,本文帮你装回来 08 11月 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 11 11月 Visual Studio 2022 升级不再附带 .NET Framework 4.5 这种古老的目标包了,本文帮你装回来 08 11月 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 08 11月 各个版本 Windows 11 / Windows 10 的名称、完整版本号、开发代号和系统自带的 .NET Framework 版本 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 30 8月 了解 Windows/Linux 下命令行/Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 30 8月 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 05 8月 使用 WPF 做一个可以逼真地照亮你桌面的高性能阳光 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 30 7月 路径标记语法(Path Markup Syntax)完全教程 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 20 7月 用 WiX 制作安装包:创建一个简单的 exe 安装包 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 16 7月 0x800b0109 - 已处理证书链,但是在不受信任提供程序信任的根证书中终止。 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 16 7月 WiX Toolset 安装包制作入门教程(目录篇) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 16 7月 如何调试 WiX Burn 制作的自定义托管引导程序的 exe 安装包 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 16 7月 用 WiX Burn 制作托管安装包:出现 0x80131508 错误 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 16 7月 用 WiX 制作安装包:设置的 .NET Framework 前置会始终安装,即使目标电脑已经自带或装好 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 16 7月 使用 WiX 创建最简单的安装包过程中可能出现的问题和解决方案汇总 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 16 7月 用 WiX Burn 制作托管安装包:出现 0x80070002 错误 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 15 7月 如何查看用 WiX 制作的安装包的日志 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 15 7月 用 WiX 制作安装包:制作 WPF 安装包界面(入门篇) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 15 7月 用 WiX 制作安装包:为 WiX 制作的 msi 安装包添加 .NET Framework 环境检查 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 15 7月 用 WiX 制作安装包:创建一个简单的 msi 安装包 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 15 7月 用 WiX 制作安装包:为 WiX 制作的 exe 安装包添加 .NET Framework 前置的安装步骤 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 14 7月 用 WiX 制作安装包:安装 WiX Toolset 系列 Visual Studio 插件 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 14 7月 用 WiX 制作安装包:安装 WiX Toolset 工具集 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 14 7月 用 WiX 制作安装包:准备一个用于学习 WiX 安装包制作的 Visual Studio 解决方案 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 14 7月 WiX 安装包制作最佳实践:Id、UpgradeCode 应该怎么设置? 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 30 6月 WPF 窗口和控件的 Unloaded 事件什么情况下不会触发 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 25 6月 编译并体验 .NET MAUI 官方示例代码 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 25 6月 Visual Studio 2022 出来啦!教你如何将 VS2019 的 VSIX 扩展/插件项目迁移到 VS2022 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 21 6月 两个方法,让 WPF 绘制的笔迹更加平滑 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 18 6月 C# 的事件,一般你不需要担心它的线程安全问题! 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 16 6月 Windows 中的 HRESULT 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 11 6月 无法加载为扩展“Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior”注册的类型 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 11 6月 .NET 单个异步任务如何同时监听多个取消请求(CancellationToken) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 07 6月 从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 07 6月 在项目文件 / MSBuild / NuGet 包中编写扩展编译的时候,正确使用 props 文件和 targets 文件 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 07 6月 Windows 系统上如何揪出阻止你屏幕关闭的程序 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 07 6月 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序…… 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 01 6月 编写你的专属 MSBuild C# 代码生成器:在保存文件时自动实时生成你的代码 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 17 5月 Unity OpenVR 虚拟现实入门六:通过摇杆控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 16 5月 Unity OpenVR 虚拟现实入门四:通过脚本控制手与控制器 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 16 5月 Unity OpenVR 虚拟现实入门五:通过传送控制玩家移动 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 16 5月 Unity OpenVR 虚拟现实入门二:一个最简单的虚拟现实游戏/程序 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 16 5月 Unity OpenVR 虚拟现实入门三:最简单的五指交互 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 16 5月 Unity OpenVR 虚拟现实入门一:安装配置 Unity + OpenVR 环境 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 16 1月 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 04 1月 Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) 03 12月 适合 .NET 开发者用的 GitHub Actions(时不时更新) 31 10月 使用 Xamarin 在 iOS 真机上部署应用进行调试 04 8月 设置进程的 RedirectStandardOutput 重定向输出后,如果不将输出读出来,会卡死此进程 24 6月 三种方法设置 .NET/C# 项目的编译顺序,而不影响项目之间的引用 24 6月 通过设置 sln 解决方案依赖,确保不引用的两个项目之间有明确的编译顺序 24 6月 通过 ReferenceOutputAssembly=False 在引用项目时,不额外引入依赖文件 19 6月 .NET 程序集/项目/包的版本号设置有最大范围,最大不能超过 65534 18 6月 Visual Studio 在编译 A 项目时,确保 B 项目已编译 18 6月 理解 Visual Studio 解决方案文件格式(.sln) 16 6月 从 “x is null 和 x == null” 的区别看 C# 7 模式匹配中常量和 null 的匹配 15 6月 如何根据一个绝对文件路径生成一个相对文件路径 13 6月 .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑 11 6月 WPF / Windows Forms 检测窗口在哪个屏幕 11 6月 准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 31 10月 使用 Xamarin 在 iOS 真机上部署应用进行调试 04 8月 设置进程的 RedirectStandardOutput 重定向输出后,如果不将输出读出来,会卡死此进程 24 6月 三种方法设置 .NET/C# 项目的编译顺序,而不影响项目之间的引用 24 6月 通过设置 sln 解决方案依赖,确保不引用的两个项目之间有明确的编译顺序 24 6月 通过 ReferenceOutputAssembly=False 在引用项目时,不额外引入依赖文件 19 6月 .NET 程序集/项目/包的版本号设置有最大范围,最大不能超过 65534 18 6月 Visual Studio 在编译 A 项目时,确保 B 项目已编译 18 6月 理解 Visual Studio 解决方案文件格式(.sln) 16 6月 从 “x is null 和 x == null” 的区别看 C# 7 模式匹配中常量和 null 的匹配 15 6月 如何根据一个绝对文件路径生成一个相对文件路径 13 6月 .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑 11 6月 WPF / Windows Forms 检测窗口在哪个屏幕 11 6月 准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 04 8月 设置进程的 RedirectStandardOutput 重定向输出后,如果不将输出读出来,会卡死此进程 24 6月 三种方法设置 .NET/C# 项目的编译顺序,而不影响项目之间的引用 24 6月 通过设置 sln 解决方案依赖,确保不引用的两个项目之间有明确的编译顺序 24 6月 通过 ReferenceOutputAssembly=False 在引用项目时,不额外引入依赖文件 19 6月 .NET 程序集/项目/包的版本号设置有最大范围,最大不能超过 65534 18 6月 Visual Studio 在编译 A 项目时,确保 B 项目已编译 18 6月 理解 Visual Studio 解决方案文件格式(.sln) 16 6月 从 “x is null 和 x == null” 的区别看 C# 7 模式匹配中常量和 null 的匹配 15 6月 如何根据一个绝对文件路径生成一个相对文件路径 13 6月 .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑 11 6月 WPF / Windows Forms 检测窗口在哪个屏幕 11 6月 准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 24 6月 三种方法设置 .NET/C# 项目的编译顺序,而不影响项目之间的引用 24 6月 通过设置 sln 解决方案依赖,确保不引用的两个项目之间有明确的编译顺序 24 6月 通过 ReferenceOutputAssembly=False 在引用项目时,不额外引入依赖文件 19 6月 .NET 程序集/项目/包的版本号设置有最大范围,最大不能超过 65534 18 6月 Visual Studio 在编译 A 项目时,确保 B 项目已编译 18 6月 理解 Visual Studio 解决方案文件格式(.sln) 16 6月 从 “x is null 和 x == null” 的区别看 C# 7 模式匹配中常量和 null 的匹配 15 6月 如何根据一个绝对文件路径生成一个相对文件路径 13 6月 .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑 11 6月 WPF / Windows Forms 检测窗口在哪个屏幕 11 6月 准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 24 6月 通过设置 sln 解决方案依赖,确保不引用的两个项目之间有明确的编译顺序 24 6月 通过 ReferenceOutputAssembly=False 在引用项目时,不额外引入依赖文件 19 6月 .NET 程序集/项目/包的版本号设置有最大范围,最大不能超过 65534 18 6月 Visual Studio 在编译 A 项目时,确保 B 项目已编译 18 6月 理解 Visual Studio 解决方案文件格式(.sln) 16 6月 从 “x is null 和 x == null” 的区别看 C# 7 模式匹配中常量和 null 的匹配 15 6月 如何根据一个绝对文件路径生成一个相对文件路径 13 6月 .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑 11 6月 WPF / Windows Forms 检测窗口在哪个屏幕 11 6月 准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 24 6月 通过 ReferenceOutputAssembly=False 在引用项目时,不额外引入依赖文件 19 6月 .NET 程序集/项目/包的版本号设置有最大范围,最大不能超过 65534 18 6月 Visual Studio 在编译 A 项目时,确保 B 项目已编译 18 6月 理解 Visual Studio 解决方案文件格式(.sln) 16 6月 从 “x is null 和 x == null” 的区别看 C# 7 模式匹配中常量和 null 的匹配 15 6月 如何根据一个绝对文件路径生成一个相对文件路径 13 6月 .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑 11 6月 WPF / Windows Forms 检测窗口在哪个屏幕 11 6月 准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 19 6月 .NET 程序集/项目/包的版本号设置有最大范围,最大不能超过 65534 18 6月 Visual Studio 在编译 A 项目时,确保 B 项目已编译 18 6月 理解 Visual Studio 解决方案文件格式(.sln) 16 6月 从 “x is null 和 x == null” 的区别看 C# 7 模式匹配中常量和 null 的匹配 15 6月 如何根据一个绝对文件路径生成一个相对文件路径 13 6月 .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑 11 6月 WPF / Windows Forms 检测窗口在哪个屏幕 11 6月 准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 18 6月 Visual Studio 在编译 A 项目时,确保 B 项目已编译 18 6月 理解 Visual Studio 解决方案文件格式(.sln) 16 6月 从 “x is null 和 x == null” 的区别看 C# 7 模式匹配中常量和 null 的匹配 15 6月 如何根据一个绝对文件路径生成一个相对文件路径 13 6月 .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑 11 6月 WPF / Windows Forms 检测窗口在哪个屏幕 11 6月 准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 18 6月 理解 Visual Studio 解决方案文件格式(.sln) 16 6月 从 “x is null 和 x == null” 的区别看 C# 7 模式匹配中常量和 null 的匹配 15 6月 如何根据一个绝对文件路径生成一个相对文件路径 13 6月 .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑 11 6月 WPF / Windows Forms 检测窗口在哪个屏幕 11 6月 准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 16 6月 从 “x is null 和 x == null” 的区别看 C# 7 模式匹配中常量和 null 的匹配 15 6月 如何根据一个绝对文件路径生成一个相对文件路径 13 6月 .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑 11 6月 WPF / Windows Forms 检测窗口在哪个屏幕 11 6月 准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 15 6月 如何根据一个绝对文件路径生成一个相对文件路径 13 6月 .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑 11 6月 WPF / Windows Forms 检测窗口在哪个屏幕 11 6月 准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 13 6月 .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑 11 6月 WPF / Windows Forms 检测窗口在哪个屏幕 11 6月 准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 11 6月 WPF / Windows Forms 检测窗口在哪个屏幕 11 6月 准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 11 6月 准确判断一个 WPF 控件 / UI 元素当前是否显示在屏幕内 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 11 6月 Compare four different file (folder) links on Windows (NTFS hard links, junction points, symbolic links, and well-known shortcuts) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 11 6月 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 10 6月 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 10 6月 VMware Workstation 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VMware Workstation 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 09 6月 Visual Studio 智能感知提示里的奇妙行为一览 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 08 6月 Chrome 窗口全黑了,不怕,有招 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 03 6月 拿别人的 Program Files 文件夹?别忘了考虑 x86/x64 路径 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 03 6月 在 .NET 对象和 JSON 互相序列化的时候,枚举类型如何设置成字符串序列化,而不是整型? 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 03 6月 如何在保留原本所有样式/绑定和用户设置值的情况下,设置和还原 WPF 依赖项属性的值 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 01 6月 Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 01 6月 Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 26 5月 解决包含 GitHub Actions Workflow 的分支无法推送的问题 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 25 5月 杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus / .NET Core / Mono / Win32 / Linux / ……) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 24 5月 微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的? 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 24 5月 Unity3D (Mono/IL2CPP) 中 P/Invoke 平台调用代码应该如何传委托 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 5月 Windows/Linux 系统中获取端口被哪个应用程序占用 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 5月 如何在 Unity3D 场景中显示帧率(FPS) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 5月 Unity3D 入门:如何为游戏添加 UI 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 5月 Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 5月 Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 5月 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 5月 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 5月 提高使用 Visual Studio 开发效率的键盘快捷键 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 22 5月 Unity3D 入门:如何制作天空效果?天空盒的使用 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 19 5月 专业团队:推荐一个网站,生成巨幅文字注释 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 15 5月 .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 15 5月 .NET/Windows:删除文件夹后立即判断,有可能依然存在 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 15 5月 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting/TargetFrameworks) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 13 5月 为 .NET 各种开发工具设置网络代理,提升在大陆的网络性能 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 10 5月 Unity3D 入门:如何在脚本中找到游戏对象的父子级/祖孙级对象和它们的组件 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 06 5月 WPF 中使用附加属性,将任意 UI 元素或控件裁剪成圆形(椭圆) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 06 5月 快速在 Windows 上搭建 Jekyll 开发环境 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 05 5月 Unity3D 入门:Unity Editor 编辑器常用快捷键 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 05 5月 Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 05 5月 Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 05 5月 Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 30 4月 .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 30 4月 在 CMD 里根据进程名杀掉进程 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 30 4月 在 PowerShell 里根据进程名杀掉进程 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 30 4月 Linux Shell 中需要转义的字符 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 30 4月 git 乱改你的换行符?一句话设置让 git 不再碰你某个文件的换行符 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 30 4月 .NET 将混合了多个不同平台(Windows / Mac / Linux)的文件/目录的路径格式化成同一个平台下的路径 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 28 4月 如何在 Windows 10 中安装 WSL2 的 Linux 子系统 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 27 4月 Unity3D 入门:在 Visual Studio 里使用 Visual Studio Tools for Unity 全套工具 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 27 4月 Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 25 4月 让你的程序置顶到比系统界面都更上层,就像任务管理器/放大镜一样绝对置顶 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 4月 C# 可空引用类型 Nullable 更强制的约束:将警告改为错误 WarningsAsErrors 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 4月 C# 8.0 如何在项目中开启可空引用类型的支持 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 4月 C# 8.0 可空引用类型中的各项警告/错误的含义和示例代码 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 17 4月 git subtree 的使用 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 14 4月 通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 11 4月 当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 11 4月 Windows 系统的默认字体是什么?应用的默认字体是什么? 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 10 4月 如何给 GitHub Pages 配置多个域名? 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 07 4月 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup? 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 07 4月 VSCode:当匹配到结果时,如何一次性全部选中操作(复制/删除)? 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 03 4月 WPF:无法对元素“XXX”设置 Name 特性值“YYY”。“XXX”在元素“ZZZ”的范围内,在另一范围内定义它时,已注册了名称。 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 02 4月 在 Visual Studio 2019 (16.5) 中查看托管线程正在等待的锁被哪个线程占用 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 01 4月 WPF 中如何绑定附加属性?XAML 中记得加括号,C# 中记得不能用字符串 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 3月 设置用户无需密码自动登录到 Windows 系统 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 3月 修复 Windows 10 设置界面里面混乱的语言翻译 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 3月 使用 SoftEther VPN 在 VPS 和个人电脑之间搭建 VPN 网络 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 23 3月 推荐 .NET/C# 开发者安装的几款代码分析插件或对应的代码分析 NuGet 包 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 11 3月 用命令行执行 .NET 单元测试时,如何仅执行符合某些条件的单元测试 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 11 3月 .NET WebClient 类下载部分文件会错误?可能是解压缩的锅 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 11 3月 如何在终端和 PowerShell 中将一个命令自动重复执行多次 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 30 1月 Linux 系统根目录下的文件夹 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 29 1月 收集的 Linux VPS 在线重装系统脚本 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 28 1月 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性? 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 13 1月 全民 https!使用 FreeSSL 申请免费的 https 证书 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 13 1月 如何设置 ASP.NET Core 程序监听的 IP 和端口 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 13 1月 使用 Frp 为你的 Web 服务添加 https 支持 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 12 1月 为 ASP.NET Core 程序制作 URL 的 301/302 跳转 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 11 1月 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 11 1月 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 10 1月 .NET 将多个程序集合并成单一程序集的 4+3 种方法 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 08 1月 .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 08 1月 Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 08 1月 WPF 中如何创建忽略 DPI 属性的图片 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 07 1月 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象? 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 03 1月 如何在旧版本的 .NET Core / Framework 中使用 C# 8 的异步流(IAsyncDisposable / IAsyncEnumerable / IAsyncEnumerator) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 03 1月 .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 02 1月 Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件) 27 12月 如何在 MSBuild 中正确使用 % 来引用每一个项(Item)中的元数据 27 12月 在 MSBuild 编译过程中操作文件和文件夹(检查存在/创建文件夹/读写文件/移动文件/复制文件/删除文件夹) 26 12月 如何在 .NET/C# 代码中安全地结束掉一个控制台应用程序?通过发送 Ctrl+C 信号来结束 23 12月 如何将一个 .NET 对象序列化为 HTTP GET 的请求字符串 23 12月 屏幕边缘上有趣的 1 个像素,看不见、摸不到 17 12月 使用 MSBuild Target 复制文件的时候如何保持文件夹结构不变 09 12月 使用正则表达式尽可能准确匹配域名/网址 08 12月 C# 8.0 的可空引用类型,不止是加个问号哦!你还有很多种不同的可空玩法 08 12月 一个简单的方法:截取子类名称中不包含基类后缀的部分 08 12月 可集成到文件管理器,一句 PowerShell 脚本发布某个版本的所有 NuGet 包 28 11月 配置 legacyUnhandledExceptionPolicy 防止后台线程抛出的异常让程序崩溃退出 27 11月 WPF 程序如何跨窗口/跨进程设置控件焦点 20 11月 PowerShell 的命令行启动参数(可用于执行命令、传参或进行环境配置) 05 11月 清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 12月 在 MSBuild 编译过程中操作文件和文件夹(检查存在/创建文件夹/读写文件/移动文件/复制文件/删除文件夹) 26 12月 如何在 .NET/C# 代码中安全地结束掉一个控制台应用程序?通过发送 Ctrl+C 信号来结束 23 12月 如何将一个 .NET 对象序列化为 HTTP GET 的请求字符串 23 12月 屏幕边缘上有趣的 1 个像素,看不见、摸不到 17 12月 使用 MSBuild Target 复制文件的时候如何保持文件夹结构不变 09 12月 使用正则表达式尽可能准确匹配域名/网址 08 12月 C# 8.0 的可空引用类型,不止是加个问号哦!你还有很多种不同的可空玩法 08 12月 一个简单的方法:截取子类名称中不包含基类后缀的部分 08 12月 可集成到文件管理器,一句 PowerShell 脚本发布某个版本的所有 NuGet 包 28 11月 配置 legacyUnhandledExceptionPolicy 防止后台线程抛出的异常让程序崩溃退出 27 11月 WPF 程序如何跨窗口/跨进程设置控件焦点 20 11月 PowerShell 的命令行启动参数(可用于执行命令、传参或进行环境配置) 05 11月 清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 26 12月 如何在 .NET/C# 代码中安全地结束掉一个控制台应用程序?通过发送 Ctrl+C 信号来结束 23 12月 如何将一个 .NET 对象序列化为 HTTP GET 的请求字符串 23 12月 屏幕边缘上有趣的 1 个像素,看不见、摸不到 17 12月 使用 MSBuild Target 复制文件的时候如何保持文件夹结构不变 09 12月 使用正则表达式尽可能准确匹配域名/网址 08 12月 C# 8.0 的可空引用类型,不止是加个问号哦!你还有很多种不同的可空玩法 08 12月 一个简单的方法:截取子类名称中不包含基类后缀的部分 08 12月 可集成到文件管理器,一句 PowerShell 脚本发布某个版本的所有 NuGet 包 28 11月 配置 legacyUnhandledExceptionPolicy 防止后台线程抛出的异常让程序崩溃退出 27 11月 WPF 程序如何跨窗口/跨进程设置控件焦点 20 11月 PowerShell 的命令行启动参数(可用于执行命令、传参或进行环境配置) 05 11月 清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 23 12月 如何将一个 .NET 对象序列化为 HTTP GET 的请求字符串 23 12月 屏幕边缘上有趣的 1 个像素,看不见、摸不到 17 12月 使用 MSBuild Target 复制文件的时候如何保持文件夹结构不变 09 12月 使用正则表达式尽可能准确匹配域名/网址 08 12月 C# 8.0 的可空引用类型,不止是加个问号哦!你还有很多种不同的可空玩法 08 12月 一个简单的方法:截取子类名称中不包含基类后缀的部分 08 12月 可集成到文件管理器,一句 PowerShell 脚本发布某个版本的所有 NuGet 包 28 11月 配置 legacyUnhandledExceptionPolicy 防止后台线程抛出的异常让程序崩溃退出 27 11月 WPF 程序如何跨窗口/跨进程设置控件焦点 20 11月 PowerShell 的命令行启动参数(可用于执行命令、传参或进行环境配置) 05 11月 清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 23 12月 屏幕边缘上有趣的 1 个像素,看不见、摸不到 17 12月 使用 MSBuild Target 复制文件的时候如何保持文件夹结构不变 09 12月 使用正则表达式尽可能准确匹配域名/网址 08 12月 C# 8.0 的可空引用类型,不止是加个问号哦!你还有很多种不同的可空玩法 08 12月 一个简单的方法:截取子类名称中不包含基类后缀的部分 08 12月 可集成到文件管理器,一句 PowerShell 脚本发布某个版本的所有 NuGet 包 28 11月 配置 legacyUnhandledExceptionPolicy 防止后台线程抛出的异常让程序崩溃退出 27 11月 WPF 程序如何跨窗口/跨进程设置控件焦点 20 11月 PowerShell 的命令行启动参数(可用于执行命令、传参或进行环境配置) 05 11月 清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 17 12月 使用 MSBuild Target 复制文件的时候如何保持文件夹结构不变 09 12月 使用正则表达式尽可能准确匹配域名/网址 08 12月 C# 8.0 的可空引用类型,不止是加个问号哦!你还有很多种不同的可空玩法 08 12月 一个简单的方法:截取子类名称中不包含基类后缀的部分 08 12月 可集成到文件管理器,一句 PowerShell 脚本发布某个版本的所有 NuGet 包 28 11月 配置 legacyUnhandledExceptionPolicy 防止后台线程抛出的异常让程序崩溃退出 27 11月 WPF 程序如何跨窗口/跨进程设置控件焦点 20 11月 PowerShell 的命令行启动参数(可用于执行命令、传参或进行环境配置) 05 11月 清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 12月 使用正则表达式尽可能准确匹配域名/网址 08 12月 C# 8.0 的可空引用类型,不止是加个问号哦!你还有很多种不同的可空玩法 08 12月 一个简单的方法:截取子类名称中不包含基类后缀的部分 08 12月 可集成到文件管理器,一句 PowerShell 脚本发布某个版本的所有 NuGet 包 28 11月 配置 legacyUnhandledExceptionPolicy 防止后台线程抛出的异常让程序崩溃退出 27 11月 WPF 程序如何跨窗口/跨进程设置控件焦点 20 11月 PowerShell 的命令行启动参数(可用于执行命令、传参或进行环境配置) 05 11月 清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 08 12月 C# 8.0 的可空引用类型,不止是加个问号哦!你还有很多种不同的可空玩法 08 12月 一个简单的方法:截取子类名称中不包含基类后缀的部分 08 12月 可集成到文件管理器,一句 PowerShell 脚本发布某个版本的所有 NuGet 包 28 11月 配置 legacyUnhandledExceptionPolicy 防止后台线程抛出的异常让程序崩溃退出 27 11月 WPF 程序如何跨窗口/跨进程设置控件焦点 20 11月 PowerShell 的命令行启动参数(可用于执行命令、传参或进行环境配置) 05 11月 清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 08 12月 一个简单的方法:截取子类名称中不包含基类后缀的部分 08 12月 可集成到文件管理器,一句 PowerShell 脚本发布某个版本的所有 NuGet 包 28 11月 配置 legacyUnhandledExceptionPolicy 防止后台线程抛出的异常让程序崩溃退出 27 11月 WPF 程序如何跨窗口/跨进程设置控件焦点 20 11月 PowerShell 的命令行启动参数(可用于执行命令、传参或进行环境配置) 05 11月 清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 08 12月 可集成到文件管理器,一句 PowerShell 脚本发布某个版本的所有 NuGet 包 28 11月 配置 legacyUnhandledExceptionPolicy 防止后台线程抛出的异常让程序崩溃退出 27 11月 WPF 程序如何跨窗口/跨进程设置控件焦点 20 11月 PowerShell 的命令行启动参数(可用于执行命令、传参或进行环境配置) 05 11月 清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 28 11月 配置 legacyUnhandledExceptionPolicy 防止后台线程抛出的异常让程序崩溃退出 27 11月 WPF 程序如何跨窗口/跨进程设置控件焦点 20 11月 PowerShell 的命令行启动参数(可用于执行命令、传参或进行环境配置) 05 11月 清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 11月 WPF 程序如何跨窗口/跨进程设置控件焦点 20 11月 PowerShell 的命令行启动参数(可用于执行命令、传参或进行环境配置) 05 11月 清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 20 11月 PowerShell 的命令行启动参数(可用于执行命令、传参或进行环境配置) 05 11月 清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 05 11月 清理 git 仓库太繁琐?试试 bfg!删除敏感信息删除大文件一句命令搞定(比官方文档还详细的使用说明) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 05 11月 解决关闭模态窗口后,父窗口居然失去焦点跑到了其他窗口的后面的问题 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 29 10月 C#/.NET 当我们在写事件 += 和 -= 的时候,方法是如何转换成事件处理器的 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 29 10月 如何在 .NET 项目中开启不安全代码(以便启用 unsafe fixed 等关键字) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 29 10月 不要在 C# 代码中写部分命名空间(要么不写,要么写全),否则会有源码兼容性问题 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 22 10月 .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 22 10月 解决 WPF 嵌套的子窗口在改变窗口大小的时候闪烁的问题 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 22 10月 System.ComponentModel.Win32Exception (0x80004005): 无效的窗口句柄。 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 22 10月 使用 Direct3D11 的 OpenSharedResource 方法渲染来自其他进程/设备的共享资源(SharedHandle) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 22 10月 将 Direct3D11 在 GPU 中的纹理(Texture2D)导出到内存(Map)或导出成图片文件 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 22 10月 .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 22 10月 WPF 高性能位图渲染 WriteableBitmap 及其高性能用法示例 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 16 10月 .NET Framework 4.x 程序到底运行在哪个 CLR 版本之上 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 10月 使用 .editorconfig 配置 .NET/C# 项目的代码分析规则的严重程度 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 10 10月 什么是模态窗口?本文带你了解模态窗口的本质 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 10 10月 直击本质:WPF 框架是如何实现模态窗口的 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 10 10月 .NET/C# 检测电脑上安装的 .NET Framework 的版本 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 10 10月 Windows 系统上用 .NET/C# 查找所有窗口,并获得窗口的标题、位置、尺寸、最小化、可见性等各种状态 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 10 10月 在 WPF 程序中应用 Windows 10 真•亚克力效果 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 10 10月 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 07 10月 使用傲梅分区助手无损合并分区,无损调整分区大小 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 07 10月 EFI 分区/恢复分区不可删除?你需要使用命令行了(全命令行操作) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 9月 推荐几款连字字体,在代码编辑器中启用连字字体(Visual Studio Code) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 24 9月 如何在 Visual Studio 2019 中设置使用 .NET Core SDK 的预览版(全局生效) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 19 9月 WPF 程序如何移动焦点到其他控件 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 19 9月 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 18 9月 .NET 设计一套高性能的弱事件机制 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 18 9月 .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 17 9月 C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 9月 .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 9月 如何在 WPF 中获取所有已经显式赋过值的依赖项属性 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 9月 在 WPF 中获取一个依赖对象的所有依赖项属性 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 07 9月 临时编写和调试 C++ 代码?用 VSCode 就够了!一分钟搭好 C++ 调试环境 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 05 9月 在使用 .NET Remoting 技术开发跨进程通信时可能遇到的各种异常 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 05 9月 .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 02 9月 WPF 不要给 Window 类设置变换矩阵(分析篇):System.InvalidOperationException: 转换不可逆。 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 02 9月 WPF 不要给 Window 类设置变换矩阵(应用篇) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 29 8月 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 29 8月 C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 8月 WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 8月 WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 8月 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 19 8月 程序员可能会使用的各种命名规则 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 14 8月 System.InvalidOperationException:“BuildWindowCore 无法返回寄宿的子窗口句柄。” 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 14 8月 System.InvalidOperationException:“寄宿 HWND 必须是子窗口。” 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 14 8月 System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。” 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 07 8月 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 07 8月 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 05 8月 好的框架需要好的 API 设计 —— API 设计的六个原则 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 8月 通过 mklink 收集本地文件系统的所有 NuGet 包输出目录来快速调试公共组件代码 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 8月 使用 C# 中的 dynamic 关键字调用类型方法时可能遇到的各种问题 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 8月 设计一个 .NET 可用的弱引用集合(可用来做缓存池使用) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 03 8月 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 01 8月 通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 29 7月 Visual Studio 2019 中使用 .NET Core 预览版 SDK 的全局配置文件在哪里? 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 7月 The partial same C# namespace may cause source code compatibility issue 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 7月 使用基于 Roslyn 的 Microsoft.CodeAnalysis.PublicApiAnalyzers 来追踪项目的 API 改动,帮助保持库的 API 兼容性 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 7月 找出 .NET Core SDK 是否使用预览版的全局配置文件在哪里(探索篇) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 25 7月 nuget.exe 还原解决方案 NuGet 包的时候出现错误:调用的目标发生了异常。Error parsing the nested project section in solution file. 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 25 7月 为 NuGet 指定检测的 MSBuild 路径或版本,解决 MSBuild auto-detection: using msbuild version 自动查找路径不合适的问题 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 24 7月 解决方案文件 sln 中的项目类型 GUID 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 20 7月 .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 20 7月 如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 13 7月 软件界面中一些易混淆/易用错的界面文案,以及一些约定俗成的文案约定 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 7月 The VisualBrush of WPF only refresh the visual but not the layout 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 7月 WPF 的 VisualBrush 只刷新显示的视觉效果,不刷新布局范围 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 11 7月 WPF 很少人知道的科技 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 10 7月 如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢? 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 07 7月 Roslyn 入门:使用 Visual Studio 的语法可视化(Syntax Visualizer)窗格查看和了解代码的语法树 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 07 7月 如何安装和准备 Visual Studio 扩展/插件开发环境 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 05 7月 如何快速创建 Visual Studio 代码片段? 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 7月 .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 7月 在 Visual Studio 中设置当发生某个特定异常或所有异常时中断 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 7月 .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢? 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 03 7月 如何给 Windows Terminal 增加一个新的终端(以 Bash 为例) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 02 7月 Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 02 7月 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 02 7月 App will crash when using the when keyword in a catch expression 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 01 7月 .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets? 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 30 6月 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 29 6月 C#/.NET 移动或重命名一个文件夹(如果存在,则合并而不是出现异常报错) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 29 6月 如何追踪 WPF 程序中当前获得键盘焦点的元素并显示出来 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 28 6月 如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 28 6月 .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 23 6月 从 git 的历史记录中彻底删除文件或文件夹 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 21 6月 .NET 中让 Task 支持带超时的异步等待 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 17 6月 .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 17 6月 .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 16 6月 Windows 10 解决无法完整下载安装语言包(日语输入法无法下载使用) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 13 6月 .NET 的程序集加载上下文 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 11 6月 WPF 程序的编译过程 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 11 6月 制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 6月 MSBuild 在编写编译任务的时候判断当前是否在 Visual Studio 中编译 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 6月 git 配置错误导致无法推送远端仓库?本文介绍各种修复方式 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 01 6月 使用 ProcessMonitor 找到进程所操作的文件的路径 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 31 5月 如何为 Win32 的打开和保存对话框编写文件过滤器(Filter) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 31 5月 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 28 5月 .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 28 5月 .NET/C# 的字符串暂存池 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 28 5月 .NET/C# 避免调试器不小心提前计算本应延迟计算的值 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 25 5月 cmd.exe 的命令行启动参数(可用于执行命令、传参或进行环境配置) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 23 5月 在 Visual Studio 中重新将高级保存功能放出来,便于强制指定文件编码格式 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 23 5月 WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 23 5月 在整个 Git 仓库的历史(包括所有分支和标签)中修改提交作者的信息(姓名和邮箱) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 23 5月 .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 22 5月 WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 16 5月 通过修改环境变量修改当前进程使用的系统 Temp 文件夹的路径 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 5月 Markdown 如何在内联代码或者代码块中使用代码开始符号反引号(`) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 5月 在编译期间使用 Roslyn/MSBuild 自带的方法/函数判断、计算和修改属性 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 5月 Roslyn/MSBuild 在编译期间从当前文件开始查找父级文件夹,直到找到包含特定文件的文件夹 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 5月 Directory Opus 使用命令编辑器添加 PowerShell / CMD / Bash 等多种终端到自定义菜单 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 5月 C# 8.0 中开启默认接口实现 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 5月 Directory Opus 使用命令编辑器集成 TortoiseGit 的各种功能 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 5月 在 Directory Opus 中添加自定义的工具栏按钮提升效率 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 14 5月 让 Directory Opus 支持 Windows 10 的暗色主题 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 13 5月 通过分析 WPF 的渲染脏区优化渲染性能 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 5月 Roslyn/MSBuild 在编译期间处理路径中的斜杠与反斜杠 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 11 5月 在 Roslyn/MSBuild 中进行基本的数学运算 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 10 5月 使用 DISM 工具检查并修复 Windows 系统文件 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 5月 使用 System File Check (SFC) 工具检查并修复 Windows 系统文件 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 05 5月 Visual Studio 使用 Parallel Builds Monitor 插件迅速找出编译速度慢的瓶颈,优化编译速度 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 30 4月 使用 EnumWindows 找到满足你要求的窗口 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 30 4月 安装和运行 .NET Core 版本的 PowerShell 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 30 4月 XAML 很少人知道的科技 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 30 4月 WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里? 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 30 4月 如何修改 Visual Studio 新建项目时的默认路径 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 29 4月 使用 dotnet 命令行配合 vscode 完成一个完整 .NET 解决方案的编写和调试 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 26 4月 Visual Studio 通过修改项目的调试配置文件做到临时调试的时候不要编译(解决大项目编译缓慢问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 26 4月 Visual Studio 如何能够不进行编译就调试 .NET/C# 项目(用于解决大项目编译缓慢的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 25 4月 WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 24 4月 MSBuild 中的特殊字符($ @ % 等):含义、用法以及转义 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 24 4月 在项目文件 csproj 中或者 MSBuild 的 Target 中使用 % 引用集合中每一项的属性 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 24 4月 使用 7-Zip 的命令行版本来压缩和解压文件 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 23 4月 ClearType 的原理:Windows 上文本的亚像素控制 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 21 4月 C#/.NET 使用 git 命令行来操作 git 仓库 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 21 4月 如何快速自定义 Visual Studio 中部分功能的快捷键 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 16 4月 如何在 MSBuild 的项目文件 csproj 中获取绝对路径 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 16 4月 MSBuild 如何编写带条件的属性、集合和任务 Condition? 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 16 4月 NullReferenceException,就不应该存在! 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 16 4月 C# 跨设备前后端开发探索 12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题)
12 4月 从零开始学习 dotnet 编译过程和 Roslyn 源码分析 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 .NET/C# 项目如何优雅地设置条件编译符号? 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 在 Visual Studio 新旧不同的 csproj 项目格式中启用混合模式调试程序(开启本机代码调试) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 Visual Studio 2017 以前的旧格式的 csproj Import 进来的 targets 文件有时不能正确计算属性(PropertyGroup)和集合(ItemGroup) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 csproj 文件中那个空的 NuGetPackageImportStamp 是干什么的? 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 阻止某个 NuGet 包意外升级 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 Sdk 风格的 csproj 对 WPF/UWP 支持不太好?有第三方 SDK 可以用!MSBuild.Sdk.Extras 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 理解 C# 项目 csproj 文件格式的本质和编译流程 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 语义版本号(Semantic Versioning) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 4月 让一个 csproj 项目指定多个开发框架 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 4月 .NET Core/Framework 创建委托以大幅度提高反射调用的性能 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 30 3月 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 29 3月 解决 Git 重命名时遇到的大小写不敏感的问题 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 29 3月 WPF 的命令的自动刷新时机——当你 CanExecute 会返回 true 但命令依旧不可用时可能是这些原因 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 29 3月 When WPF Commands update their CanExecute states? 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 3月 程序员与英语:即时聊天中的英语缩写 lol / lmao / idk 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 26 3月 C#/.NET 如何获取一个异常(Exception)的关键特征,用来判断两个异常是否表示同一个异常 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 24 3月 在 CVTE 和广州 .NET 微软技术俱乐部共同举办的 12月8日 广州微软技术沙龙活动 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 24 3月 C#/.NET 如何在第一次机会异常 FirstChanceException 中获取比较完整的异常堆栈 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 23 3月 流畅设计 Fluent Design System 中的光照效果 RevealBrush,WPF 也能模拟实现啦! 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 23 3月 使用 Microsoft.Net.Compilers 在旧版本的 Visual Studio 2013/2015/2017 中开启新的 C# 7.x 和 C# 8 语法 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 22 3月 制作一个极简的 .NET 客户端应用自安装或自更新程序 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 21 3月 WPF 同一窗口内的多线程/多进程 UI(使用 SetParent 嵌入另一个窗口) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 20 3月 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 19 3月 Windows 系统上使用任务管理器查看进程的各项属性(命令行、DPI、管理员权限等) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 19 3月 如何创建一个基于 .NET Core 3 的 WPF 项目 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 19 3月 Windows 的 UAC 设置中的通知等级实际上只有两个档而已 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 19 3月 Windows 中的 UAC 用户账户控制 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 19 3月 Windows 下使用 runas 命令以指定的权限启动一个进程(非管理员、管理员) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 17 3月 启用 Windows 审核模式(Audit Mode),以 Administrator 账户来设置电脑的开箱体验 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 17 3月 如何创建应用程序清单文件 App.Manifest,如何创建不带清单的应用程序 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 3月 在有 UI 线程参与的同步锁(如 AutoResetEvent)内部使用 await 可能导致死锁 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 3月 .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 3月 在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 3月 将 async/await 异步代码转换为安全的不会死锁的同步代码(使用 PushFrame) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 3月 使用 Task.Wait()?立刻死锁(deadlock) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 3月 不要使用 Dispatcher.Invoke,因为它可能在你的延迟初始化 Lazy 中导致死锁 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 14 3月 C#/.NET 如何结束掉一个进程 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 14 3月 让你的 VSCode 具备调试 C# 语言 .NET Core 程序的能力 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 14 3月 手工编辑 tasks.json 和 launch.json,让你的 VSCode 具备调试 .NET Core 程序的能力 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 14 3月 自然码的形码 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 14 3月 在 Visual Studio Code 中添加自定义的代码片段 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 14 3月 解决 mklink 使用中的各种坑(硬链接,软链接/符号链接,目录链接) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 14 3月 .NET 中的轻量级线程安全 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 14 3月 UI 设计中的视觉无障碍设计(色盲眼中的世界以及 UI 使用体验) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 14 3月 C#/.NET 中的契约式编程,以及 ReSharper 为我们提供的契约特性 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 3月 我收集的各种公有 NuGet 源 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 12 3月 在 csproj 文件中使用系统环境变量的值(示例将 dll 生成到 AppData 目录下) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 10 3月 为 WPF 程序添加 Windows 跳转列表的支持 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 10 3月 Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 10 3月 .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 10 3月 详解 .NET 反射中的 BindingFlags 以及常用的 BindingFlags 使用方式 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 10 3月 如何使用 MyGet 这个激进的 NuGet 源体验日构建版本的 .NET Standard / .NET Core 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/手心/微软拼音) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 使用一句 git 命令将仓库的改动推送到所有的远端 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 .NET/C# 获取一个正在运行的进程的命令行参数 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 WPF 让普通 CLR 属性支持 XAML 绑定(非依赖属性),这样 MarkupExtension 中定义的属性也能使用绑定了 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 在 Snoop 中使用 PowerShell 脚本进行更高级的 UI 调试 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 在 Visual Studio Code 中为代码片段(Code Snippets)添加快捷键 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 .NET 中创建支持集合初始化器的类型 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 WPF 多线程 UI:设计一个异步加载 UI 的容器 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(概念篇) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 使用 Postman 调试 ASP.NET Core 开发的 API 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 09 3月 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 05 3月 为什么 C# 的 string.Empty 是一个静态只读字段,而不是一个常量呢? 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 05 3月 C#/.NET 调试的时候显示自定义的调试信息(DebuggerDisplay 和 DebuggerTypeProxy) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 05 3月 透明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 3月 使用 Xamarin 开发 iOS 键盘扩展(含网络访问) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 3月 如何为你的 Windows 应用程序关联一种或多种文件类型 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 3月 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 3月 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 3月 如何在命令行中监听用户输入文本的改变? 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 3月 仅反射加载(ReflectionOnlyLoadFrom)的 .NET 程序集,如何反射获取它的 Attribute 元数据呢? 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 04 3月 使用 Visual Studio 自定义外部命令 (External Tools) 快速打开 git bash 等各种工具 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 02 3月 让你的 Windows 应用程序在任意路径也能够直接通过文件名执行 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 01 3月 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 01 3月 如何在 csproj 中用 C# 代码写一个内联的编译任务 Task 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 2月 在 MSBuild 编译项目时阻止输出所有的警告信息 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 2月 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 2月 电脑总是意外从睡眠状态唤醒,可以找出原因然后解决 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 2月 将友盟(cnzz)站点的访问数据报告分享给其他人 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 27 2月 全局或为单独的项目添加自定义的 NuGet 源 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 21 2月 使用 Visual Studio 调试多进程的程序 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 20 2月 将 svn 仓库迁移到 git 仓库 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 19 2月 .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 2月 git 合并策略 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 14 2月 git 的合并原理(递归三路合并算法) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 30 1月 将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 30 1月 ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 29 1月 WPF's multi-threaded UI is not thread safe 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 29 1月 WPF 支持的多线程 UI 并不是线程安全的 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 25 1月 .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 22 1月 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 20 1月 C# 永远不会返回的方法真的不会返回 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 20 1月 CentOS 的终端中如何搜索文件 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 17 1月 不使用 U 盘等任何工具全新安装 Windows 操作系统 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 16 1月 C#/.NET 如何确认一个路径是否是合法的文件路径 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 16 1月 让 MSBuild Target 支持 Clean 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 15 1月 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系? 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 10 1月 .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 08 1月 int? 竟然真的可以是 null!.NET/C# 确定可空值类型 Nullable 实例的真实类型 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 08 1月 签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 08 1月 C# 中委托实例的命名规则 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 06 1月 三值 bool? 进行与或运算后的结果 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 06 1月 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具? 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 06 1月 Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 03 1月 WPF 中那些可跨线程访问的 DispatcherObject(WPF Free Threaded Dispatcher Object) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 01 1月 .NET 使用 XPath 来读写 XML 文件(顺带解决 XML 命名空间的问题) 30 12月 基于 task 为 VSCode 添加自定义的外部命令 30 12月 .NET 中使用 Mutex 进行跨越进程边界的同步 30 12月 谨慎使用 FileInfo.Exists 实例方法,而是使用 File.Exists 静态方法替代 30 12月 C#/.NET 使用 CommandLineParser 来标准化地解析命令行 26 12月 只需 5 秒钟,你就能取到 WPF 程序的超高分辨率超高清截图 25 12月 Write a MSBuild Target to detect whether the project is rebuilding or not 25 12月 编写 Target 检测 MSBuild / dotnet build 此次编译是否是差量编译 24 12月 在 Roslyn 分析语法树时添加条件编译符号的支持 23 12月 .NET 中什么样的类是可使用 await 异步等待的? 23 12月 .NET 除了用 Task 之外,如何自己写一个可以 await 的对象? 23 12月 定义一组抽象的 Awaiter 的实现接口,你下次写自己的 await 可等待对象时将更加方便 23 12月 了解 .NET 的默认 TaskScheduler 和线程池(ThreadPool)设置,避免让 Task.Run 的性能急剧降低 23 12月 Turn on Mobile Hotspot (Wi-Fi) in Windows 10 23 12月 在 Windows 10 中开启移动 WLAN 热点 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 30 12月 .NET 中使用 Mutex 进行跨越进程边界的同步 30 12月 谨慎使用 FileInfo.Exists 实例方法,而是使用 File.Exists 静态方法替代 30 12月 C#/.NET 使用 CommandLineParser 来标准化地解析命令行 26 12月 只需 5 秒钟,你就能取到 WPF 程序的超高分辨率超高清截图 25 12月 Write a MSBuild Target to detect whether the project is rebuilding or not 25 12月 编写 Target 检测 MSBuild / dotnet build 此次编译是否是差量编译 24 12月 在 Roslyn 分析语法树时添加条件编译符号的支持 23 12月 .NET 中什么样的类是可使用 await 异步等待的? 23 12月 .NET 除了用 Task 之外,如何自己写一个可以 await 的对象? 23 12月 定义一组抽象的 Awaiter 的实现接口,你下次写自己的 await 可等待对象时将更加方便 23 12月 了解 .NET 的默认 TaskScheduler 和线程池(ThreadPool)设置,避免让 Task.Run 的性能急剧降低 23 12月 Turn on Mobile Hotspot (Wi-Fi) in Windows 10 23 12月 在 Windows 10 中开启移动 WLAN 热点 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 30 12月 谨慎使用 FileInfo.Exists 实例方法,而是使用 File.Exists 静态方法替代 30 12月 C#/.NET 使用 CommandLineParser 来标准化地解析命令行 26 12月 只需 5 秒钟,你就能取到 WPF 程序的超高分辨率超高清截图 25 12月 Write a MSBuild Target to detect whether the project is rebuilding or not 25 12月 编写 Target 检测 MSBuild / dotnet build 此次编译是否是差量编译 24 12月 在 Roslyn 分析语法树时添加条件编译符号的支持 23 12月 .NET 中什么样的类是可使用 await 异步等待的? 23 12月 .NET 除了用 Task 之外,如何自己写一个可以 await 的对象? 23 12月 定义一组抽象的 Awaiter 的实现接口,你下次写自己的 await 可等待对象时将更加方便 23 12月 了解 .NET 的默认 TaskScheduler 和线程池(ThreadPool)设置,避免让 Task.Run 的性能急剧降低 23 12月 Turn on Mobile Hotspot (Wi-Fi) in Windows 10 23 12月 在 Windows 10 中开启移动 WLAN 热点 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 30 12月 C#/.NET 使用 CommandLineParser 来标准化地解析命令行 26 12月 只需 5 秒钟,你就能取到 WPF 程序的超高分辨率超高清截图 25 12月 Write a MSBuild Target to detect whether the project is rebuilding or not 25 12月 编写 Target 检测 MSBuild / dotnet build 此次编译是否是差量编译 24 12月 在 Roslyn 分析语法树时添加条件编译符号的支持 23 12月 .NET 中什么样的类是可使用 await 异步等待的? 23 12月 .NET 除了用 Task 之外,如何自己写一个可以 await 的对象? 23 12月 定义一组抽象的 Awaiter 的实现接口,你下次写自己的 await 可等待对象时将更加方便 23 12月 了解 .NET 的默认 TaskScheduler 和线程池(ThreadPool)设置,避免让 Task.Run 的性能急剧降低 23 12月 Turn on Mobile Hotspot (Wi-Fi) in Windows 10 23 12月 在 Windows 10 中开启移动 WLAN 热点 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 26 12月 只需 5 秒钟,你就能取到 WPF 程序的超高分辨率超高清截图 25 12月 Write a MSBuild Target to detect whether the project is rebuilding or not 25 12月 编写 Target 检测 MSBuild / dotnet build 此次编译是否是差量编译 24 12月 在 Roslyn 分析语法树时添加条件编译符号的支持 23 12月 .NET 中什么样的类是可使用 await 异步等待的? 23 12月 .NET 除了用 Task 之外,如何自己写一个可以 await 的对象? 23 12月 定义一组抽象的 Awaiter 的实现接口,你下次写自己的 await 可等待对象时将更加方便 23 12月 了解 .NET 的默认 TaskScheduler 和线程池(ThreadPool)设置,避免让 Task.Run 的性能急剧降低 23 12月 Turn on Mobile Hotspot (Wi-Fi) in Windows 10 23 12月 在 Windows 10 中开启移动 WLAN 热点 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 25 12月 Write a MSBuild Target to detect whether the project is rebuilding or not 25 12月 编写 Target 检测 MSBuild / dotnet build 此次编译是否是差量编译 24 12月 在 Roslyn 分析语法树时添加条件编译符号的支持 23 12月 .NET 中什么样的类是可使用 await 异步等待的? 23 12月 .NET 除了用 Task 之外,如何自己写一个可以 await 的对象? 23 12月 定义一组抽象的 Awaiter 的实现接口,你下次写自己的 await 可等待对象时将更加方便 23 12月 了解 .NET 的默认 TaskScheduler 和线程池(ThreadPool)设置,避免让 Task.Run 的性能急剧降低 23 12月 Turn on Mobile Hotspot (Wi-Fi) in Windows 10 23 12月 在 Windows 10 中开启移动 WLAN 热点 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 25 12月 编写 Target 检测 MSBuild / dotnet build 此次编译是否是差量编译 24 12月 在 Roslyn 分析语法树时添加条件编译符号的支持 23 12月 .NET 中什么样的类是可使用 await 异步等待的? 23 12月 .NET 除了用 Task 之外,如何自己写一个可以 await 的对象? 23 12月 定义一组抽象的 Awaiter 的实现接口,你下次写自己的 await 可等待对象时将更加方便 23 12月 了解 .NET 的默认 TaskScheduler 和线程池(ThreadPool)设置,避免让 Task.Run 的性能急剧降低 23 12月 Turn on Mobile Hotspot (Wi-Fi) in Windows 10 23 12月 在 Windows 10 中开启移动 WLAN 热点 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 24 12月 在 Roslyn 分析语法树时添加条件编译符号的支持 23 12月 .NET 中什么样的类是可使用 await 异步等待的? 23 12月 .NET 除了用 Task 之外,如何自己写一个可以 await 的对象? 23 12月 定义一组抽象的 Awaiter 的实现接口,你下次写自己的 await 可等待对象时将更加方便 23 12月 了解 .NET 的默认 TaskScheduler 和线程池(ThreadPool)设置,避免让 Task.Run 的性能急剧降低 23 12月 Turn on Mobile Hotspot (Wi-Fi) in Windows 10 23 12月 在 Windows 10 中开启移动 WLAN 热点 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 23 12月 .NET 中什么样的类是可使用 await 异步等待的? 23 12月 .NET 除了用 Task 之外,如何自己写一个可以 await 的对象? 23 12月 定义一组抽象的 Awaiter 的实现接口,你下次写自己的 await 可等待对象时将更加方便 23 12月 了解 .NET 的默认 TaskScheduler 和线程池(ThreadPool)设置,避免让 Task.Run 的性能急剧降低 23 12月 Turn on Mobile Hotspot (Wi-Fi) in Windows 10 23 12月 在 Windows 10 中开启移动 WLAN 热点 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 23 12月 .NET 除了用 Task 之外,如何自己写一个可以 await 的对象? 23 12月 定义一组抽象的 Awaiter 的实现接口,你下次写自己的 await 可等待对象时将更加方便 23 12月 了解 .NET 的默认 TaskScheduler 和线程池(ThreadPool)设置,避免让 Task.Run 的性能急剧降低 23 12月 Turn on Mobile Hotspot (Wi-Fi) in Windows 10 23 12月 在 Windows 10 中开启移动 WLAN 热点 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 23 12月 定义一组抽象的 Awaiter 的实现接口,你下次写自己的 await 可等待对象时将更加方便 23 12月 了解 .NET 的默认 TaskScheduler 和线程池(ThreadPool)设置,避免让 Task.Run 的性能急剧降低 23 12月 Turn on Mobile Hotspot (Wi-Fi) in Windows 10 23 12月 在 Windows 10 中开启移动 WLAN 热点 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 23 12月 了解 .NET 的默认 TaskScheduler 和线程池(ThreadPool)设置,避免让 Task.Run 的性能急剧降低 23 12月 Turn on Mobile Hotspot (Wi-Fi) in Windows 10 23 12月 在 Windows 10 中开启移动 WLAN 热点 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 23 12月 Turn on Mobile Hotspot (Wi-Fi) in Windows 10 23 12月 在 Windows 10 中开启移动 WLAN 热点 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 23 12月 在 Windows 10 中开启移动 WLAN 热点 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 22 12月 在 WPF/UWP 中实现一个可以用 await 异步等待 UI 交互操作的 Awaiter 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 22 12月 .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 22 12月 .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 22 12月 使用 WPF 开发一个 Windows 屏幕保护程序 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 21 12月 优化 UWP 中图片的内存占用 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 20 12月 文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 15 12月 StyleCop 是什么,可以帮助团队带来什么价值? 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 WPF/UWP 绑定中的 UpdateSourceTrigger 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 用微软拼音快速输入自定义格式的时间和日期 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 在 Visual Studio 中使用 EditorConfig 统一代码风格(含原生与插件) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 使用 Windows 10 中的加速度计(Accelerometer,重力传感器) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 C# 重载条件逻辑运算符(&& 和 ||) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 在 WPF 中使用 x:Reference 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 UWP 轻量级样式定义(Lightweight Styling) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 UWP 中的各种文件路径(用户、缓存、漫游、安装……) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载! 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 Windows 10 应用创建模糊背景窗口的三种方法 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 3 Ways to create a window with blurring background on Windows 10 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 长期支持 LTS(Long-term Support)是怎样的一种支持方式 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 PasswordVault —— 在 UWP 应用中安全地保存密码 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 Windows 10 四月更新,文件夹名称也能区分大小写了 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 如何使用 MSBuild Target(Exec)中的控制台输出 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 C# 中那些可以被重载的运算符(操作符),以及使用它们的那些丧心病狂的语法糖 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 如何快速编写和调试 Emit 生成 IL 的代码 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 使用 MSBuild 响应文件 (rsp) 来指定 dotnet build 命令行编译时的大量参数 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 Roslyn 的确定性构建 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 (持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 生成代码,从 T 到 T1, T2, Tn —— 自动生成多个类型的泛型 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 .NET Core 和 .NET Framework 中的 MEF2 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 C#/.NET 匿名函数会捕获变量,并延长对象的生命周期 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 实现一个 WPF 版本的 ConnectedAnimation 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 WPF 自定义键盘焦点样式(FocusVisualStyle) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 异步任务中的重新进入(Reentrancy) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 将 UWP 的有效像素(Effective Pixels)引入 WPF 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 WPF 跨应用程序域的 UI(Cross AppDomain UI) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 Visual->UIElement->FrameworkElement,带来更多功能的同时也带来了更多的限制 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 DependencyProperty.UnsetValue 的正确打开方式 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 用 AppContext 解决类库的更新兼容问题 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 为 Visual Studio 使用通配符批量添加项目文件 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 12月 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 09 12月 git 如何更可靠地解决冲突? 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 01 12月 使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 28 11月 用 dotTrace 进行性能分析时,各种不同性能分析选项的含义和用途 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 28 11月 Win2D 中的游戏循环:CanvasAnimatedControl 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 28 11月 使用 Win2D 绘制带图片纹理的圆(或椭圆) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 27 11月 如何在单元测试中使用 Dispatcher.Invoke/InvokeAsync? 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 27 11月 技术、产品、交流、思考 - 微软技术暨生态大会 2018 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 27 11月 只有你能 new 出来!.NET 隐藏构造函数的 n 种方法(Builder Pattern / 构造器模式) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 27 11月 都是用 DllImport?有没有考虑过自己写一个 extern 方法? 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 27 11月 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 11月 用 dotTrace 进行性能分析时,Timeline 打不开?无法启动进程?也许你需要先开启系统性能计数器的访问权限 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 11 11月 了解 .NET/C# 程序集的加载时机,以便优化程序启动性能 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 29 10月 出让执行权:Task.Yield, Dispatcher.Yield 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 19 10月 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 16 10月 WPF 中的 NameScope 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 16 10月 将 UWP 中 CommandBar 的展开方向改为向下展开 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 15 10月 各个 C# 版本的主要特性、发布日期和发布方式(C# 1.0 - 7.3) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 14 10月 WPF 的 ElementName 在 ContextMenu 中无法绑定成功?试试使用 x:Reference! 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 05 10月 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0(使用 .NET Core 3.0 Desktop API Analyzer ) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 23 9月 使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 23 9月 Git 更安全的强制推送,--force-with-lease 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 17 9月 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 13 9月 .NET 命令行参数包含应用程序路径吗? 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 05 9月 WPF 同一窗口内的多线程 UI(VisualTarget) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 02 9月 .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 02 9月 .NET/C# 使用反射调用含 ref 或 out 参数的方法 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 01 9月 .NET/C# 使用反射注册事件 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 01 9月 .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 01 9月 Win32 程序在启动时激活前一个启动程序的窗口 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 01 9月 Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 01 9月 在操作系统重启后恢复应用程序的工作状态 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 01 9月 为带有多种语言的 Jekyll 博客添加多语言选择 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 01 9月 屏幕上那个灰色带有数字的框是什么?看着好难受! 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 01 9月 (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 01 9月 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 01 9月 Automatically increase the semantic version using GitVersion 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 01 9月 使用 Emit 生成 IL 代码 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 01 9月 让你编写的控件库在 XAML 中有一个统一的漂亮的命名空间(xmlns)和命名空间前缀 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 01 9月 如何在 .NET 库的代码中判断当前程序运行在 Debug 下还是 Release 下 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 26 8月 如何精准地用打印机在贺卡或邀请函上打字 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 19 8月 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 19 8月 为修改了链接地址的博客进行重定向 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 19 8月 .NET 中 GetProcess 相关方法的性能 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 15 8月 WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 13 8月 WPF 绘制对齐像素的清晰显示的线条 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 13 8月 C#/.NET 序列化和反序列化 YAML 元数据 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 C#/.NET 读取或修改文件的创建时间和修改时间 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 Good Framework Rely on Good Api —— Six API Design Principles 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 The undefined behaviors of WPF Grid (the so-called bugs) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 Introducing MSTestEnhancer to make unit test result easy to read 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 使 WPF 支持触摸板的横向滚动 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 Support Horizontal Scrolling of TouchPad in WPF Application 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 图片点击放大,你的网页也能做到! 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 语法高亮不够漂亮?这里有你想要的 Rouge 主题 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 为博客或个人站点的 Markdown 添加 LaTeX 公式支持 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 为博客添加可切换的暗色和亮色主题 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 合并 Jekyll 多种类型的页面 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 让 GitHub Pages 强制使用 HTTPS(含码云的 gitee/oschina.io) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 如何搭建一个基于 GitHub Pages 的 Jekyll 静态博客(目录) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 12 8月 [译] 搭建一个托管在 GitHub Pages 的 Jekyll 博客,并添加 Disqus 评论功能 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 11 8月 使用 C# 代码创建快捷方式文件 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 05 8月 发布了一款库(或工具包),如何持续地编写更新日志(ChangeLog)? 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 05 8月 在 GitHub 公开仓库中隐藏自己的私人邮箱地址 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 05 8月 WPF 应用完全模拟 UWP 的标题栏按钮 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 30 7月 .NET 三个字母究竟应该如何大小写?前面的 “.” 什么时候能够去掉?(.NET Standard / dotnet-core / net472) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 28 7月 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 28 7月 像黑客一样!Chrome 完全键盘操作指南(原生快捷键 + Vimium 插件) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 22 7月 .NET/C# 使用 Span 为字符串处理提升性能 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 21 7月 使用 PInvoke.net Visual Studio Extension 辅助编写 Win32 函数签名 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 21 7月 使用 IFTTT 做 RSS 的邮件订阅服务 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 19 7月 理解 Roslyn 中的红绿树(Red-Green Trees) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 18 7月 Roslyn 语法树中的各种语法节点及每个节点的含义 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 08 7月 .NET Standard 的管理策略 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 04 7月 在 Visual Studio 的解决方案资源管理器中隐藏一些文件 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 02 7月 如何在 MSBuild Target(Exec)中报告编译错误和编译警告 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 30 6月 语义耦合(Semantic Coupling) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 24 6月 XML 的 XPath 语法 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 15 6月 UWP 将图片裁剪成圆形(椭圆) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 13 6月 C#/.NET 中推荐的 Dispose 模式的实现 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 27 5月 文件被占用?系统自带的“资源监视器(resmon)”也能帮你找到占用它的真凶 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 22 5月 神器如 dnSpy,无需源码也能修改 .NET 程序 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 22 5月 推荐近乎免费的调试神器——OzCode 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 20 5月 Grid 布局算法!自己动手实现一个 Grid 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 26 4月 安利一款非常好用的命令行参数库:McMaster.Extensions.CommandLineUtils 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 26 4月 冷算法:自动生成代码标识符(类名、方法名、变量名) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 23 4月 利用 TypeConverter,转换字符串和各种类型只需写一个函数 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 16 4月 命令“"xxx.exe" xxx”已退出,代码为 3/123/9009。VS 的这些编译错误代码代表了什么意思? 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 03 4月 VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 20 3月 利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 19 3月 WPF 程序无法触摸操作?我们一起来找原因和解决方法! 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 09 3月 在移动端打开 Google 的网页快照 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 08 3月 在 HTML 超链接上添加可交互的 ToolTip 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 28 2月 如何删除 Windows 10 系统生成的 WindowsApps 文件夹 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 22 2月 制作 Windows 10 安装盘,解决大于 4GB 的 Windows 10 镜像在 UEFI 模式下的安装问题 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 22 2月 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 22 2月 安装 Windows 需要知道的 256 个问题 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 20 2月 WPF 和 UWP 中,不用设置 From 或 To,Storyboard 即拥有更灵活的动画控制 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 20 2月 分享一个算法,计算能在任何背景色上清晰显示的前景色 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 20 2月 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 04 2月 应该抛出什么异常?不应该抛出什么异常?(.NET/C#) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 04 2月 .NET/C# 建议的异常处理原则 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 16 1月 有些异常堆栈中真没我们写的源码 09 1月 卡诺模型(KANO Model) 09 1月 卡诺模型(KANO Model) 28 12月 为什么委托的减法(- 或 -=)可能出现非预期的结果?(Delegate Subtraction Has Unpredictable Result) 26 12月 使 32 位程序使用大于 2GB 的内存 19 12月 让 ScrollViewer 的滚动带上动画 07 12月 真的要比较 for 和 foreach 的性能吗?(内附性能比较的实测数据) 30 11月 当我们使用 MVVM 模式时,我们究竟在每一层里做些什么? 29 11月 极限压缩 PNG 23 11月 自定义 Windows PowerShell 和 cmd 的字体 22 11月 从 Matrix 解构出 Translate/Scale/Rotate(平移/缩放/旋转) 20 11月 用动画的方式画出任意的路径(直线、曲线、折现) 10 11月 使用不安全代码将 Bitmap 位图转为 WPF 的 ImageSource 以获得高性能和持续小的内存占用 07 11月 Visual Studio 也开始支持 Ctrl 点击跳转了,于是需要解决跟 ReSharper 的冲突 03 11月 修复 WPF 窗口在启动期间短暂的白底显示 28 10月 为 Web 页面添加 iPhone 固定标签页的图标 27 10月 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 26 12月 使 32 位程序使用大于 2GB 的内存 19 12月 让 ScrollViewer 的滚动带上动画 07 12月 真的要比较 for 和 foreach 的性能吗?(内附性能比较的实测数据) 30 11月 当我们使用 MVVM 模式时,我们究竟在每一层里做些什么? 29 11月 极限压缩 PNG 23 11月 自定义 Windows PowerShell 和 cmd 的字体 22 11月 从 Matrix 解构出 Translate/Scale/Rotate(平移/缩放/旋转) 20 11月 用动画的方式画出任意的路径(直线、曲线、折现) 10 11月 使用不安全代码将 Bitmap 位图转为 WPF 的 ImageSource 以获得高性能和持续小的内存占用 07 11月 Visual Studio 也开始支持 Ctrl 点击跳转了,于是需要解决跟 ReSharper 的冲突 03 11月 修复 WPF 窗口在启动期间短暂的白底显示 28 10月 为 Web 页面添加 iPhone 固定标签页的图标 27 10月 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 19 12月 让 ScrollViewer 的滚动带上动画 07 12月 真的要比较 for 和 foreach 的性能吗?(内附性能比较的实测数据) 30 11月 当我们使用 MVVM 模式时,我们究竟在每一层里做些什么? 29 11月 极限压缩 PNG 23 11月 自定义 Windows PowerShell 和 cmd 的字体 22 11月 从 Matrix 解构出 Translate/Scale/Rotate(平移/缩放/旋转) 20 11月 用动画的方式画出任意的路径(直线、曲线、折现) 10 11月 使用不安全代码将 Bitmap 位图转为 WPF 的 ImageSource 以获得高性能和持续小的内存占用 07 11月 Visual Studio 也开始支持 Ctrl 点击跳转了,于是需要解决跟 ReSharper 的冲突 03 11月 修复 WPF 窗口在启动期间短暂的白底显示 28 10月 为 Web 页面添加 iPhone 固定标签页的图标 27 10月 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 07 12月 真的要比较 for 和 foreach 的性能吗?(内附性能比较的实测数据) 30 11月 当我们使用 MVVM 模式时,我们究竟在每一层里做些什么? 29 11月 极限压缩 PNG 23 11月 自定义 Windows PowerShell 和 cmd 的字体 22 11月 从 Matrix 解构出 Translate/Scale/Rotate(平移/缩放/旋转) 20 11月 用动画的方式画出任意的路径(直线、曲线、折现) 10 11月 使用不安全代码将 Bitmap 位图转为 WPF 的 ImageSource 以获得高性能和持续小的内存占用 07 11月 Visual Studio 也开始支持 Ctrl 点击跳转了,于是需要解决跟 ReSharper 的冲突 03 11月 修复 WPF 窗口在启动期间短暂的白底显示 28 10月 为 Web 页面添加 iPhone 固定标签页的图标 27 10月 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 30 11月 当我们使用 MVVM 模式时,我们究竟在每一层里做些什么? 29 11月 极限压缩 PNG 23 11月 自定义 Windows PowerShell 和 cmd 的字体 22 11月 从 Matrix 解构出 Translate/Scale/Rotate(平移/缩放/旋转) 20 11月 用动画的方式画出任意的路径(直线、曲线、折现) 10 11月 使用不安全代码将 Bitmap 位图转为 WPF 的 ImageSource 以获得高性能和持续小的内存占用 07 11月 Visual Studio 也开始支持 Ctrl 点击跳转了,于是需要解决跟 ReSharper 的冲突 03 11月 修复 WPF 窗口在启动期间短暂的白底显示 28 10月 为 Web 页面添加 iPhone 固定标签页的图标 27 10月 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 29 11月 极限压缩 PNG 23 11月 自定义 Windows PowerShell 和 cmd 的字体 22 11月 从 Matrix 解构出 Translate/Scale/Rotate(平移/缩放/旋转) 20 11月 用动画的方式画出任意的路径(直线、曲线、折现) 10 11月 使用不安全代码将 Bitmap 位图转为 WPF 的 ImageSource 以获得高性能和持续小的内存占用 07 11月 Visual Studio 也开始支持 Ctrl 点击跳转了,于是需要解决跟 ReSharper 的冲突 03 11月 修复 WPF 窗口在启动期间短暂的白底显示 28 10月 为 Web 页面添加 iPhone 固定标签页的图标 27 10月 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 23 11月 自定义 Windows PowerShell 和 cmd 的字体 22 11月 从 Matrix 解构出 Translate/Scale/Rotate(平移/缩放/旋转) 20 11月 用动画的方式画出任意的路径(直线、曲线、折现) 10 11月 使用不安全代码将 Bitmap 位图转为 WPF 的 ImageSource 以获得高性能和持续小的内存占用 07 11月 Visual Studio 也开始支持 Ctrl 点击跳转了,于是需要解决跟 ReSharper 的冲突 03 11月 修复 WPF 窗口在启动期间短暂的白底显示 28 10月 为 Web 页面添加 iPhone 固定标签页的图标 27 10月 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 22 11月 从 Matrix 解构出 Translate/Scale/Rotate(平移/缩放/旋转) 20 11月 用动画的方式画出任意的路径(直线、曲线、折现) 10 11月 使用不安全代码将 Bitmap 位图转为 WPF 的 ImageSource 以获得高性能和持续小的内存占用 07 11月 Visual Studio 也开始支持 Ctrl 点击跳转了,于是需要解决跟 ReSharper 的冲突 03 11月 修复 WPF 窗口在启动期间短暂的白底显示 28 10月 为 Web 页面添加 iPhone 固定标签页的图标 27 10月 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 20 11月 用动画的方式画出任意的路径(直线、曲线、折现) 10 11月 使用不安全代码将 Bitmap 位图转为 WPF 的 ImageSource 以获得高性能和持续小的内存占用 07 11月 Visual Studio 也开始支持 Ctrl 点击跳转了,于是需要解决跟 ReSharper 的冲突 03 11月 修复 WPF 窗口在启动期间短暂的白底显示 28 10月 为 Web 页面添加 iPhone 固定标签页的图标 27 10月 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 10 11月 使用不安全代码将 Bitmap 位图转为 WPF 的 ImageSource 以获得高性能和持续小的内存占用 07 11月 Visual Studio 也开始支持 Ctrl 点击跳转了,于是需要解决跟 ReSharper 的冲突 03 11月 修复 WPF 窗口在启动期间短暂的白底显示 28 10月 为 Web 页面添加 iPhone 固定标签页的图标 27 10月 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 07 11月 Visual Studio 也开始支持 Ctrl 点击跳转了,于是需要解决跟 ReSharper 的冲突 03 11月 修复 WPF 窗口在启动期间短暂的白底显示 28 10月 为 Web 页面添加 iPhone 固定标签页的图标 27 10月 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 03 11月 修复 WPF 窗口在启动期间短暂的白底显示 28 10月 为 Web 页面添加 iPhone 固定标签页的图标 27 10月 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 28 10月 为 Web 页面添加 iPhone 固定标签页的图标 27 10月 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 27 10月 使用 ExceptionDispatchInfo 捕捉并重新抛出异常 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 21 10月 如何组织一个同时面向 UWP/WPF/.Net Core 控制台的 C# 项目解决方案 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 20 10月 UWP 和 WPF 不同,ListView 中绑定的集合修改顺序时,UI 的刷新规则 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 12 10月 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗? 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 09 10月 查询已连接 Wi-Fi 的密码(入门和进阶两种方法) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 09 10月 CaptureMouse/CaptureStylus 可能会失败 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 29 9月 彻底删除 Git 仓库中的文件避免占用大量磁盘空间 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 28 9月 使用 PowerShell 获取 CLR 版本号 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 23 9月 试图在 Windows 10 上安装 .NET Framework 3.5 时提示错误 0x800F081F 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 21 9月 设置 .NET Native 运行时指令以支持反射(尤其适用于 UWP) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 19 9月 使用 filter-branch 从 Git 历史中删除一个文件 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 19 9月 Why Unload Twice 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 17 9月 找回你 C 盘丢失的空间(SpaceSniffer) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 13 9月 如何向整个 Git 仓库补提交一个文件 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 12 9月 Exception.Data 为异常添加更多调试信息 16 1月 WPF 渲染系统(WPF Render System) 16 1月 WPF 渲染系统(WPF Render System) 02 8月 解决XAML设计器中遇到的那些错误 01 8月 使用链接共享 Visual Studio 中的代码文件 09 5月 KeyDown/PreviewKeyDown 事件中监听 Alt 键按下 01 8月 使用链接共享 Visual Studio 中的代码文件 09 5月 KeyDown/PreviewKeyDown 事件中监听 Alt 键按下 09 5月 KeyDown/PreviewKeyDown 事件中监听 Alt 键按下 07 7月 关联一个文件扩展名或协议 30 6月 未知的编译错误:“已添加具有相同键的项。Unknown build error, 'An item with the same key has already been added.'” 31 3月 为程序签名 30 6月 未知的编译错误:“已添加具有相同键的项。Unknown build error, 'An item with the same key has already been added.'” 31 3月 为程序签名 28 12月 减速动画 AnimationShiftKey 25 9月 为什么桌面上可能有两个同名文件? 23 9月 FileSystemWatcher 监视文件改变 22 9月 FileShare 读取一个其它进程正在写的文件 20 9月 Windows DPI Awareness for WPF 12 9月 CallerMemberName 25 9月 为什么桌面上可能有两个同名文件? 23 9月 FileSystemWatcher 监视文件改变 22 9月 FileShare 读取一个其它进程正在写的文件 20 9月 Windows DPI Awareness for WPF 12 9月 CallerMemberName 23 9月 FileSystemWatcher 监视文件改变 22 9月 FileShare 读取一个其它进程正在写的文件 20 9月 Windows DPI Awareness for WPF 12 9月 CallerMemberName 22 9月 FileShare 读取一个其它进程正在写的文件 20 9月 Windows DPI Awareness for WPF 12 9月 CallerMemberName 20 9月 Windows DPI Awareness for WPF 12 9月 CallerMemberName 12 9月 CallerMemberName 在 Windows 系统上降低 UAC 权限运行程序(从管理员权限降权到普通用户权限) 如何在控制台程序中监听 Windows 前台窗口的变化 在 Windows 上如何在启动程序时单独为这个程序指定环境变量,而不需要编写任何代码或脚本 WPF 像素着色器进阶:使用 HLSL 编写一个高性能的实时变化的 HSL/HSV/HSB 调色盘 WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 如何在控制台程序中监听 Windows 前台窗口的变化 在 Windows 上如何在启动程序时单独为这个程序指定环境变量,而不需要编写任何代码或脚本 WPF 像素着色器进阶:使用 HLSL 编写一个高性能的实时变化的 HSL/HSV/HSB 调色盘 WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 在 Windows 上如何在启动程序时单独为这个程序指定环境变量,而不需要编写任何代码或脚本 WPF 像素着色器进阶:使用 HLSL 编写一个高性能的实时变化的 HSL/HSV/HSB 调色盘 WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 WPF 像素着色器进阶:使用 HLSL 编写一个高性能的实时变化的 HSL/HSV/HSB 调色盘 WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码