林德熙 - 微软最具价值专家和 .NET 基金会成员
本文收集 Office 解析相关博客
我写了很多在 WPF 使用 SharpDx 渲染的博客,但是有小伙伴吐槽说这些博客没有一个好看的顺序,我将所有的 SharpDx 的博客按照顺序放在下面
本文将告诉大家在 dotnet 里面,通过 Silk.NET 库调用 DirectWrite 获取给定字体的 Font Metrics 信息
本文将和大家简单聊聊 Skia 里的 SKFontMetrics 的各项属性作用和代表的含义
本文记录我参与的开源项目
在默认的 MSTest 单元测试框架里面,每个标记了 TestMethodAttribute 特性的方法,都只有一个测试用例。本文通过 ITestDataSource 接口辅助实现让一个 TestMethod 包含多个测试用例
本文属于基础入门博客,将和大家介绍如何在 dotnet C# 代码里面使用底层的 Socket 进行 HTTP 网络请求
本文记录一个 dotnet 已知问题,此问题在 dotnet 9 之前就存在。在 Linux 系统上,使用 NamedPipeClientStream 连接不存在的服务时,将不断疯狂地抛出 SocketException 异常
本文记录 dotnet 的 ArrayPool 数组池的行为测试
本文记录 Avalonia 的一个已知问题,使用 RenderTargetBitmap 进行截图时,如果顶层子控件没有设置背景色或背景色是透明色,则截图保存出来的图片里面的文本字符串都是模糊的
本文记录 OpenXML 的已知问题,在 PackageProperties.Title
等属性上设置字符串包含如 Unicode 编码为 0x0001 等 XML 不合法字符,将在保存写入文件时,抛出 ArgumentException 异常
本文记录我测试 dotnet 9 的 AssemblyLoadContext 动态加载和卸载程序集能力。实测发现可以动态进行加载,且在卸载之后对程序集 DLL 文件能够做到无引用,卸载之后可以正常删除程序集 DLL 文件
本文记录我测试 AOT 的 API 行为
进行框架依赖发布的时候,应用程序需要有 dotnet runtime 运行时才能跑起来。在 dotnet 9 之前,通常都是需要安装到系统的 Program File 文件夹下的全局 dotnet 运行时的支持。在 dotnet 9 时,引入了 AppHostRelativeDotNet 机制,允许开发者自定义依赖框架发布的应用使用的 dotnet 运行时路径
本文将和大家介绍如何在 dotnet 7 或更高版本里,使用不到 10 行可执行代码解压缩 tar.gz 压缩包到文件夹
Packaging.DebUOS 是我所在的团队开发开源的一款专门用在为 dotnet 的应用制作成为符合要求的 UOS 统信系统软件安装包的工具,此工具可以辅助开发者使用现有的工具链经过简单的配置即可完成安装包的制作
在当前所有渲染框架里面,做 2D 渲染的,最好的框架是 Win2d 这个提供了大量底层接口封装,不仅性能高同时接口设计非常好 在很久之前,只有在 UWP 等现代应用才能使用 Win2d 而 WPF 是不能使用的。好在微软开放了一些黑科技,可以在 WPF 上使用 Win2d 渲染,下面就让我告诉大家如何在 WPF 上使用
本文将会从基础到高级,从简单到复杂的顺序,告诉大家如何调试 dotnet 系应用,特别是桌面端应用。本文将会向大家介绍使用 VisualStudio 大量的功能用来提高调试效率,穿插着也会介绍一些好用的调试辅助工具,以及如何编写方便调试的代码,期望大家通过阅读本文能有所收获
在一些 Windows 7 系统上,根据 dotnet 官方文档,需要安装上 KB2533623 补丁,才能运行 dotnet core 或 .NET 5 等应用。尽管非所有的设备都需要安装此,但这也让应用的分发不便,安装包上都需要带上补丁给用户安装。此补丁同时也要求安装完成之后重启系统,这对用户端来说,也是较不方便。本文来聊聊为什么 dotnet core 一系的框架依赖于此补丁
在上小学有一道题目是半杯50度的水加上半杯50度的水等于什么,我傻傻写了半杯100度的水。当时我还是逗者级别的,现在是逗尊级别了。在写代码的时候会看到莫名一个不带单位的变量或属性,总是会觉得我会加出100度出来。什么是不带单位的属性?例如我看到了有人写了一个属性叫字体大小的,这个属性是 double 值,这就好玩了,请问这是一个像素单位还是磅单位。程序猿修养给属性一个单位,可以提升代码可读性
本文讨论的 Office 文档指的是 Office 2007 及以后的 PPTX 和 xlsx 等格式的文件。在 Office 2007 之前使用的不公开标准的二进制格式定义。在 Office 2007 之后的文档格式使用 OOXML 国际标准定义,本文将告诉大家这个标准的协议和格式
在现代软件开发中,确保应用程序的安全性是一个至关重要的任务。为了识别潜在的安全问题,开发者需要使用专业工具对二进制文件进行深入分析。BinSkim 就是一款专为此设计的开源工具,它能够对可移植可执行文件(PE 文件)及其关联的符号文件(PDB)进行检查,从而发现多种安全问题
不知是否有伙伴也遇到这样的问题,WPF 发布的时候,生成的多语言文件夹数量太多了。这些多语言文件夹里面,绝大部分内容都是些用来抛异常用的字符串,或者是一些不常用的字符串。虽然单个 DLL 文件不大,但是数量太多了,如此也会多占用一些磁盘空间
在 Windows 桌面应用程序里面,可以简单地使用 DwmFlush 方法来与 DWM 对齐刷新率
本文来告诉大家在C#很少有人会发现的科技。即使是工作了好多年的老司机也不一定会知道这些科技,如果觉得我是在骗你,那么请看看本文的内容
在我的编程习惯意识里,布尔 bool 只能是 true 或 false 的值。如果要算上可空布尔,那就最多加上一个 null 空值。然而从 dotnet 运行时的角度上说,布尔完全完全可以是 true 或 false 之外的值
这是我收藏的开源项目
本文记录我使用 FastTunnel 工具的笔记
在 Avalonia 的窗口 OnClosing 事件里面,将 WindowClosingEventArgs 的 Cancel 属性赋值为 true 用来取消窗口关闭,此时 Linux 麒麟系统的 ukui 组件在进行关机时,将会在调用 会话管理器 时,收到会话管理器取消了本次操作,进而无法进行关机或注销或重启
本文记录一个 ReSharper 已知问题,在在 Directory.Build.props 属性求值结果不能应用到项目里,此行为将导致 ReSharper 获取的构建文件与 VisualStudio 不同,导致了可能存在的冲突
现在 SharpDx 已经不维护了,如果还需要在 C# 使用 Dx 相关技术,可以使用本文列出的替代项目
本文告诉大家如何通过 SharpDx 进行异步渲染,但是因为在 WPF 是需要使用 D3DImage 画出来,所以渲染只是画出图片,最后的显示还是需要 WPF 在他自己的主线程渲染。
上一篇告诉大家如何在 WPF 使用 SharpDx ,看起来代码比较复杂,所以本文告诉大家如何使用我封装的控件。
本文告诉大家如何使用 SharpDX 在 D3DImage 显示。在上一篇WPF 使用 SharpDX只是使用窗口,也就是无法使用其它的 WPF 控件。所以这一篇就来告诉大家如何使用 WPF 控件和使用 SharpDX 。