lindexi

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

林德熙

win10 uwp 通过 Win2d 完全控制笔迹绘制逻辑

本文来告诉大家如何通过 Win2d 完全控制笔迹绘制逻辑,本文适合用来实现复杂的自定义逻辑,可以完全控制笔迹的行为。包括在书写过程中切换模式,如进行手势擦除切换为橡皮擦模式

使用 FastTunnel 做内网穿透远程计算机桌面服务器

FastTunnel是一款高性能跨平台内网穿透工具,使用它可以实现将内网服务暴露到公网供自己或任何人访问。对比市面上的其他内网穿透工具最大优势在于基于 dotnet 编写,提供二次开发扩展能力。本文将来告诉大家,在不做任何编程的情况下,通过 FastTunnel 工具,让我某台内网的 Windows 电脑,开启远程桌面服务,提供外网连入的能力

听龙华讲公共组件 CBB 建设笔记

这篇博客在我的草稿从 2017 放到现在,我做了三年的公共组件,我觉得我现在能来发布这篇笔记。本文将来和大家讲龙华大佬告诉我的公共组件 CBB 建设相关知识

希沃白板断网环境免登陆编辑课件

希沃白板是依靠云来实现同步编辑的功能,默认的编辑功能需要在有网络的情况下,才能很好的进行。如果我的网络断了,或进入了没有网络的无网环境,因为没法登录希沃白板的原因,无法编辑我的课件。本文来告诉大家简单的解决方法,通过希沃白板免登陆插件,实现免登陆进入希沃白板的编辑界面,编辑本地的课件

让 dotnet 命令行输出作为英文的方法

在我的设备上,默认的 dotnet 命令行都是输出中文,如我输入 dotnet build 命令,里面的错误提示也是中文。在我想要和国外的小伙伴报坑时,如果里面有很多中文,我觉得他将会看不懂,从而不理我。本文来告诉大家如何让 dotnet 的命令行输出英文,从中文切换语言为英文

考古 dotnet 的不同版本

本文来考古一下 dotnet 发布过的版本,相信本文里面有很多个版本都是大家很少听过的

我写的逗比代码

本文记录我写的代码逗比代码

通过 COM 读取 Office PPT 文件提示 COMException 错误码 0x80004005 可能原因

使用 COM 的方式可以调用本机的 Office 组件进行 PPT 以及 Word 和 Excel 等文件的读写,在打开文件的时候,如果提示 System.Runtime.InteropServices.COMException (0x80004005) 就意味着这是一个通用的错误,没有具体的原因

非技术 技能知识和资讯

我认识了很多开发者伙伴,大部分的伙伴都不擅长聊天,但我知道他的技术很强,而且不同的伙伴技术强的方面都不相同,刚好我参加了集团的一点培训,了解了技能和知识和资讯的差别,于是记录在本文

希沃白板如何在公式里面输入绝对值符号

在希沃白板中,可以很方便使用学科工具里面的公式工具,在希沃白板画布中插入公式元素。本文来告诉大家如何在希沃白板的公式工具中,插入带绝对值符号的公式

用于辅助做二分调试的构建每个 commit 的工具

在日常开发调试中,有一个超级调试方法,二分调试。二分调试可以用来辅助调试在某个版本是好的,但现在是坏的问题。或者说用来辅助定位某个问题是啥时候写出来的。二分调试的做法就是尝试每个版本的代码构建出来的应用,看这个版本的应用是否符合有坑,当然为了提升效率,就采用了二分算法,不需要每个 commit 版本的代码都构建。本文提供了一个工具用来辅助构建每个 commit 版本的代码,将构建输出的应用保存到自定义的某个文件夹,用来在进行二分调试的时候,不需要重新构建一次

如何让 Gitlab 的 Runner 在构建时拉取 Git Submodules 仓库

默认的 GitLab 的 Runner 在构建时不会去拉取 Git Submodules 仓库,将会提示 Skipping Git submodules setup 跳过初始化 Git Submodule 仓库

搭建一个自动化分析 DUMP 平台

本文来告诉大家如何一步步搭建一个 DUMP 分析平台,核心是用来分析桌面端的应用软件,如 WPF 软件的 DUMP 文件。在开始之前需要说明的是,如果桌面端软件使用纯 WPF 实现,中途没有调用不安全的 C++ 库,那么 DUMP 平台几乎无用,原因是 WPF 是 .NET 应用,而 .NET 是安全的,除非是系统环境问题,否则依靠捕获异常所拿到的信息就完全超过了 DUMP 能获取的信息。因此本文的核心功能是提供给调用了不安全的 C++ 等语言编写的库的桌面端软件 DUMP 分析平台

创建CBB心得

本文来和大家分享制作 CBB 公共组件的一些心得

升级到 dotnet core 之后 HandleProcessCorruptedStateExceptions 无法接住异常

这是 dotnet core 的破坏性改动之一,在 dotnet framework 里面,可以使用 HandleProcessCorruptedStateExceptionsAttribute 接住非托管层抛出的异常,如 C++ 异常等。但是这个功能在 dotnet core 下存在行为的变更,从 .NET Core 1.0 开始,损坏进程状态异常无法由托管代码进行处理。 公共语言运行时不会将损坏进程状态异常传递给托管代码

苏州 开源自主的 dotnet 生态

本文仅仅只是用来在2020苏州开发者大会上的素材,开发者大会成功完成,本文也可以公开

如何给 CI CD 服务器搭建上 .NET 5 构建和运行环境

在 2020.11.10 官方正式发布了 .NET 5 正式版。而我花了一周的时间进行踩坑和预研,本文将告诉大家如何在自动化服务器上搭建 dotnet 5 的构建和运行环境

刚刚我从服务器回滚了 dotnet 5 的环境

今天是 2020.11.13 我在 CI 服务器上更新 dotnet 到 dotnet 5 以及 VS 到 16.8.1 最新版本,但是我在刚刚不得不回滚了环境…… 因为构建不通过

上海展盟网络科技有限公司的 gamebox 组件注入进程导致软件崩溃

在某些用户的设备上,会发现自己的软件会在启动之后过一段时间就崩溃了,一个可能的原因是自己的软件被其他广告软件注入了,如 上海展盟网络科技有限公司的 gamebox 组件

读书笔记 dotnet 什么时候进行垃圾回收

是否有小伙伴好奇如果没有在代码调用垃圾回收,那么框架会在什么时候调用垃圾回收。本文是读还没出版的伟民哥翻译的 .NET内存管理宝典 - 提高代码质量、性能和可扩展性 这本书的笔记

读书笔记 dotnet 大对象堆和小对象堆

本文是读还没出版的伟民哥翻译的 .NET内存管理宝典 - 提高代码质量、性能和可扩展性 这本书的笔记

非技术 在线教育与电信行业的发展

今天在去买菜的时候,听到旁边有个移动的小哥哥在向一位大叔叔推荐办理移动带宽升级业务,他说到一句话,你升级一下带宽,你的小孩上在线课程的时候多顺哇。本来是没当回事,只是无聊的时候想到这一点,我认为这里是一个大的利益链,于是写博客记一下

关于技术规划的想法

这是我和总工聊了一个下午之后,我的收获。但是技术规划是每个人都有自己的想法,同时和具体的团队和时机相关,再加上我自己没有实际参与任何的规划,我只是执行技术规划的其中很小的一个点,因此本文的内容一定存在争议

高性能笔迹原理

本文只聊原理部分

开源公共组件仓库的更新日志应该如何写

在 GitHub 或 Gitlab 等开源的公共组件仓库里面,应该需要维护更新日志 CHANGELOG.md 文档,方便让用户和开发人员更简单明确的知晓项目在不同版本之间有哪些显著变动。但是没有任何一个能说服所有人的 更新日志 一定需要维护的原因,以及 更新日志 的文档格式

通过公开的自动构建发布开源项目的库的安全意义

这是比较有争议的内容,为什么我推荐开源项目的库应该采用开源的 CI 公开进行发布。本文主要来聊安全的问题,本文的观点没法完全让小伙伴信服,只能说是我自己的看法

使用 IOC 控制反转和 DI 依赖注入的意义

其实我的标题没写对,这个话题我是聊不下去的。 本文只和小伙伴聊聊为什么使用容器注入,优缺点是什么。我通过问问题的方式让小伙伴了解这么做的意义

讲师培训 多米诺原则

我饿了,然后我要开车

制作的 dotnet tool 运行失败提示依赖缺失

小伙伴做了一个很好用的 dotnet tool 工具,但是这个工具仅在他的设备上能运行,在我的设备上运行就会退出提示 An assembly specified in the application dependencies manifest (LindexiDoubi.deps.json) was not found 找不到依赖

推荐官方开源 PInvoke 库 包含大量 win32 封装

在调用 win32 库的时候,小伙伴会遇到的问题是不知道对应的 win32 函数应该如何写。或者在网上抄了的代码的实现都有些诡异,想要自己封装发现工作量太大。好消息是官方将 PInvoke 库在 dotnet 基金会完全开源,包含了大量的 Win32 库,如 gdi32.dll 和 kernel32.dll 和 user32.dll 等

通过 cmd 批处理文件将 16 进制转 10 进制数字

我在用户的电脑上通过 spyxx 找到某个进程的 id 都是在 spyxx 使用 16 进制显示,而任务管理器使用 10 进制显示,用户的电脑没有计算器。我如何使用 bat 或 cmd 等批处理文件快速将十六进制的数字转换为十进制的数字

为什么使用 GUID 做文件名不是好主意

在创建随机文件使用的时候,文件的命名是神坑,我看到一些代码里面使用 GUID 作为文件名,这不是一个好主意。推荐的做法应该使用 Path.GetRandomFileName 方法

命令行参数使用 json 有哪些坑

本文和大家聊聊在命令行参数里面使用 json 会遇到的坑

从 gitlab 配置管理聊聊团队项目管理

每个团队都有适合各自的管理方法,本文仅记录我现在的团队所使用的项目管理方法。本文主要聊的是通过 gitlab 的里程碑以及 git 的分支管理项目的开发和送测的代码合并问题

白板类应用的业务事件分发模式

在画板上延伸业务的事件,可以通过画板本身,利用路由事件分发,此时能解决依赖事件业务对具体业务对象的依赖