lindexi

林德熙 - 微软最具价值专家和 .NET 基金会成员

林德熙

dotnet 简单解压缩 tar gz 到文件夹

本文将和大家介绍如何在 dotnet 7 或更高版本里,使用不到 10 行可执行代码解压缩 tar.gz 压缩包到文件夹

WPF 使用 Win2d 渲染

在当前所有渲染框架里面,做 2D 渲染的,最好的框架是 Win2d 这个提供了大量底层接口封装,不仅性能高同时接口设计非常好 在很久之前,只有在 UWP 等现代应用才能使用 Win2d 而 WPF 是不能使用的。好在微软开放了一些黑科技,可以在 WPF 上使用 Win2d 渲染,下面就让我告诉大家如何在 WPF 上使用

探索 dotnet core 为何在 Windows7 系统需要补丁的原因

在一些 Windows 7 系统上,根据 dotnet 官方文档,需要安装上 KB2533623 补丁,才能运行 dotnet core 或 .NET 5 等应用。尽管非所有的设备都需要安装此,但这也让应用的分发不便,安装包上都需要带上补丁给用户安装。此补丁同时也要求安装完成之后重启系统,这对用户端来说,也是较不方便。本文来聊聊为什么 dotnet core 一系的框架依赖于此补丁

程序猿修养 给属性一个单位

在上小学有一道题目是半杯50度的水加上半杯50度的水等于什么,我傻傻写了半杯100度的水。当时我还是逗者级别的,现在是逗尊级别了。在写代码的时候会看到莫名一个不带单位的变量或属性,总是会觉得我会加出100度出来。什么是不带单位的属性?例如我看到了有人写了一个属性叫字体大小的,这个属性是 double 值,这就好玩了,请问这是一个像素单位还是磅单位。程序猿修养给属性一个单位,可以提升代码可读性

Office 文档解析 文档格式和协议

本文讨论的 Office 文档指的是 Office 2007 及以后的 PPTX 和 xlsx 等格式的文件。在 Office 2007 之前使用的不公开标准的二进制格式定义。在 Office 2007 之后的文档格式使用 OOXML 国际标准定义,本文将告诉大家这个标准的协议和格式

BinSkim 一款强大的二进制安全分析工具

在现代软件开发中,确保应用程序的安全性是一个至关重要的任务。为了识别潜在的安全问题,开发者需要使用专业工具对二进制文件进行深入分析。BinSkim 就是一款专为此设计的开源工具,它能够对可移植可执行文件(PE 文件)及其关联的符号文件(PDB)进行检查,从而发现多种安全问题

使用 SatelliteResourceLanguages 减少 WPF 发布的多语言文件夹数量

不知是否有伙伴也遇到这样的问题,WPF 发布的时候,生成的多语言文件夹数量太多了。这些多语言文件夹里面,绝大部分内容都是些用来抛异常用的字符串,或者是一些不常用的字符串。虽然单个 DLL 文件不大,但是数量太多了,如此也会多占用一些磁盘空间

dotnet C# Windows 桌面应用程序简单使用 DwmFlush 对齐刷新率

在 Windows 桌面应用程序里面,可以简单地使用 DwmFlush 方法来与 DWM 对齐刷新率

dotnet C# 布尔可以是 true 或 false 外的值

在我的编程习惯意识里,布尔 bool 只能是 true 或 false 的值。如果要算上可空布尔,那就最多加上一个 null 空值。然而从 dotnet 运行时的角度上说,布尔完全完全可以是 true 或 false 之外的值

Avalonia 取消窗口关闭导致 Linux 麒麟系统无法关机注销重启

在 Avalonia 的窗口 OnClosing 事件里面,将 WindowClosingEventArgs 的 Cancel 属性赋值为 true 用来取消窗口关闭,此时 Linux 麒麟系统的 ukui 组件在进行关机时,将会在调用 会话管理器 时,收到会话管理器取消了本次操作,进而无法进行关机或注销或重启

SharpDx 的代替项目

现在 SharpDx 已经不维护了,如果还需要在 C# 使用 Dx 相关技术,可以使用本文列出的替代项目

WPF 使用 SharpDx 异步渲染

本文告诉大家如何通过 SharpDx 进行异步渲染,但是因为在 WPF 是需要使用 D3DImage 画出来,所以渲染只是画出图片,最后的显示还是需要 WPF 在他自己的主线程渲染。

WPF 使用封装的 SharpDx 控件

上一篇告诉大家如何在 WPF 使用 SharpDx ,看起来代码比较复杂,所以本文告诉大家如何使用我封装的控件。

WPF 使用 SharpDX 在 D3DImage 显示

本文告诉大家如何使用 SharpDX 在 D3DImage 显示。在上一篇WPF 使用 SharpDX只是使用窗口,也就是无法使用其它的 WPF 控件。所以这一篇就来告诉大家如何使用 WPF 控件和使用 SharpDX 。

WPF 使用 Direct2D1 画图入门

本文来告诉大家如何在 WPF 使用 D2D 画图。

C# 从零开始写 SharpDx 应用 从 D3DDevice 获取 DXGIDevice 方法

本文将告诉大家在拿到了 D3D11 的 Device 也就是 D3DDevice 之后,如何去获取 DXGI.Device 以及 DXGI.Factory 的方法

C# 从零开始写 SharpDx 应用 聊聊功能等级

本文将和大家聊聊 DirectX 里面的功能等级在 SharpDx 的使用方法

C# 从零开始写 SharpDx 应用 绘制基础图形

本文告诉大家通过 SharpDx 画出简单的 2D 界面

C# 从零开始写 SharpDx 应用 画三角

在当前的画面都是使用三角形,在开始就告诉大家如何画三角,本文告诉大家如何用像素著色器画

C# 从零开始写 SharpDx 应用 初始化dx修改颜色

本文来告诉大家如何在上一篇博客创建的窗口里面使用 Sharpdx 初始化,然后设置窗口颜色。

C# 从零开始写 SharpDx 应用 控制台创建 Sharpdx 窗口

本文告诉大家如何在控制台使用 SharpDx 创建窗口,这是一个底层的博客,我会用很多博客告诉大家如何从控制台创建一个高性能渲染程序

WPF 使用 SharpDX

本文告诉大家如何在 WPF 使用 SharpDX 做绘制,本文是入门级博客

WPF 设置 Aliased 的 EdgeMode 会让圆形渲染出棱角

本文记录 WPF 的 RenderOptions EdgeMode 的 Aliased 选项时的效果

dotnet 通过 PublishReadyToRunComposite 减少启动过程读取大量 DLL 文件提升启动性能

在 dotnet 应用程序发布的时候,可以选择带上 PublishReadyToRunComposite 选项,带上之后可以将 ReadyToRun 的内容合并到一个入口 DLL 文件里面,可以减少启动过程中访问大量的 DLL 文件导致的 IO 缓慢问题,从而提升启动性能

WPF 通过 ReadyToRun 提升性能

通过 ReadyToRun 可以在程序集同时包含 IL 和本机代码,可以有效提升软件的启动速度

dotnet 使用 Microsoft.NET.HostModel 库辅助更改 AppHost 内容

本文将和大家介绍如何使用 Microsoft.NET.HostModel 库辅助更改 AppHost 内容

WPF 如何给定两个点画出一条波浪线

在知道两个点可以连一条线段,那么将线段修改为波浪线可以如何做?

WPF 通过 GetRawPointerDeviceData 从 WM_POINTER 消息触摸裸数据

本文将告诉大家如何在 WPF 里面,通过 GetRawPointerDeviceData 方法从 WM_POINTER 指针消息触摸裸数据,以及解析数据信息获取到更多触摸框上报的信息

dotnet 基于 dotnet format 的 GitHub Action 自动代码格式化机器人

是不是大家也会觉得代码审查里面审查代码格式化问题是无意义的,但是不审查又觉得过不去?是否有个专门的工具人,用来协助修复代码格式化的问题?本文来安利大家一个特别好用的方法,使用 dotnet 完全开源的专业格式化工具 dotnet format 配合 GitHub 的自动构建 Action 做的自动代码格式化机器人,这个机器人可以被指定到特定时机,如每天晚上或者每次代码合并等,进行代码格式化,格式化完成之后,可以选择直接推送或者提代码审查

C# dotnet 带编号项目符号在 OpenXML SDK 对应的枚举值

本文告诉大家在 OpenXML SDK 里面文本框的文本带自动编号的项目符号,不同的编号在 OpenXML SDK 上的枚举值

Windows 11 在 GitLab Runner 服务内找不到 SMB 挂载的 NAS 文件夹

我在 Windows11 上,用服务的方式注册了 GitLab Runner 工具,让 GitLab Runner 工具调度代码执行。在运行过程中,发现我在主机上采用 SMB 挂载的 NAS 文件夹找不到

dotnet MCP 无魔法 本地进程内服务端客户端调用和通讯示例

官方给的 MCP 示例都是带上 AI 魔法的,或者要么就是控制台或进程调用等,不利于我了解 MCP 的机制。本文记录采用本地进程内的 MCP 服务端和客户端相互通讯的方式,方便大家了解 MCP 的基础机制

WPF 基于 .NET 5 框架和 .NET 6 的 SDK 进行完全单文件发布

本文来告诉大家如何基于 .NET 5 框架和 .NET 6 SDK 进行完全单文件发布,这是对 WPF 应用程序进行独立发布,生成的是完全单文件的方法

记 QEMU 让 dotnet 6 程序抛出空异常问题

本文记录在 QEMU 里面跑 Windows 10 系统时,遇到的 dotnet 抛出不明原因的空异常问题