lindexi

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

林德熙

制作的 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 会遇到的坑

聊聊 2020 的 dotnet 各大开源项目仓库的情况

现在是 2020.06.21 我来聊聊我所关注的 dotnet 的几个大开源项目的活跃以及定位情况。包括 WPF 和 WinForms 和 Xamarin 和 ASP.NET Core 和 Blazor 仓库

从人工思维加上二阶熵猜测世界存在意志思维

这仅仅是一篇吹水的博客,这里面有很弱的因果关系,或者说很弱的联系。不过,没关系,计算机里面可以基于很多自己的定义开始玩。在计算机里面什么都可以假定,而且这些假定在计算机内就是真理

二阶熵

小伙伴都知道熵是代表某个系统的混乱程度,而熵值本身是没有啥可以进行衡量的。本文所说的二阶熵仅是一个定义,方便后续我的吹水,用来表示一个混乱的等级

在 VisualStudio 给文件起一个带分号的文件名会怎样

小伙伴都知道在 Windows 下是支持文件名使用分号的,而写过 Roslyn 的小伙伴都知道,在 csproj 项目里面使用分号分割数组。那么在 VS 里面将一个文件名添加分号会如何?下面让咱写写看

如何参与 .NET 的开发和设计

现在 dotnet 属于 dotnet 基金会,所有开发者都可以向 dotnet 贡献代码和参与 .NET 的设计,参与路线决策。本文来告诉大家一些基本玩法,带着小伙伴们入坑

白板类应用的模式交互设计方案

在一个白板类应用的交互中一定会涉及到模式之间的更换和交互冲突。白板类软件的交互模式一般包含了笔迹书写模式,选择模式,擦除笔迹模式等。多个模式之间存在切换,而切换可以发生在某个模式执行过程,如需要在白板软件里面支持笔迹书写功能,在书写的过程打断进入笔迹的擦除模式。本文告诉大家我所在团队的白板内核的模式交互设计方案,本文不会涉及到具体实现的逻辑代码

使用 C# 写脚本的优势和方法

现在很方便就可以将 C# 作为某个脚本使用,本文这里的脚本指的是直接执行源代码的方式。现在是 2020 现在的 C# 默认在 dotnet 的支持下,可以作为脚本使用,本文将告诉大家使用 C# 写脚本的优势和方法

使用 .NET Core 在 MAC 下提供 Excel 的 Power Query 功能

什么是 Power Query 功能?这是一个数据连接技术,可以用来发现、连接、合并、提炼数据用来满足数据处理需要。这个技术已经开发了很多年了,主要是提供给 Excel 和 PowerBI 桌面版使用。这个技术现在是作为 Windows 下的应用功能,通过 C# 托管在 .NET Framework 的功能。本文主要告诉大家在 .NET Core 2.1 发布之后,可以使用 .NET Core 跨平台的能力赋予 MAC 设备 Power Query 的功能,微软的团队是如何从原本只有在 Windows 下才能运行的功能搬到 MAC 上

为何 WPF 对 vcruntime140 有引用

通过阅读 WPF 官方开源仓库的代码和文档,可以了解到在进行独立发布的时候会在仓库里面带上 vcruntime140 的原因

用 C# 写脚本 如何输出文件夹内所有文件名

大部分在 Windows 下的脚本都是使用 bat 或 cmd 写的,这部分的脚本对我来说可读性不好。这个可读性也是很主观的,对我来说用 C# 写脚本的可读性很强,但是换个小伙伴就不是了。在 .NET Core 下的 C# 可以通过 dotnet run 运行代码起来,此时特别适合用来写脚本

让 snoop 支持 .NET Core WPF 调试

在最新的 snoop 3.0.0-alpha0116 版支持了 .NET Core 的 WPF 的调试,只需要下载安装最新版本就可以

从 DX 层面讲 WPF 渲染卡顿

这不是一篇深入底层的博客,很多细节还请看 DX 底层相关

为何 C# 的指针不是可空类型

在 C# 里面的指针实际上使用 int32 或 int64 存储,在 C# 里面的指针需要开启不安全代码才能使用,这里的指针是一个结构体,而结构体是存在值的

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

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

编程思想 定义过滤的方式解耦

本文将会很少涉及 dotnet 的知识,主要讲用定义过滤的方式解除过程业务的耦合。在一些业务上,可以从业务层面或逻辑层面明显分为几层,每一层之前的数据相互依赖或处理顺序相互依赖,但逻辑都独立。此时如果将业务处理放在过程处理里面,将会让过程处理耦合具体业务。而定义过滤的方式为让过程逻辑只是搭建框架为主,具体业务通过注入过滤的形式加入到处理

一些好用的 dotnet tool 工具

本文收藏一些好用的 dotnet tool 工具

程序猿修养 从安装 dotnet 开始

本来程序员的开始应该是从命令行开始,但是能看到博客的小伙伴,预计都了解命令行了。但是如果是一个空命令行,能做的事情实在不够清真,能提升的效率也有限。如何站在巨人的键盘(没写错)上,用大佬写的各个工具提升日常逗比的效率?答案是从安装 dotnet 开始

应用商店的战略地位

应用商店在各大系统和平台上基本都有,最成功的是安卓和 ios 的应用商店。但现在应该需要加上微信了,在我看微信的小程序其实就是应用商店。微信其实算 os 了,微信提供了入口和流量,用户需要功能,用户进入应用商店下载安装应用。而真正的 os 本身就带有自己的应用商店,但为什么我认为这些应用商店没有真正落地,战略意义上不如微信

如何让软件以 System 权限运行

本文只是告诉大家调试 System 运行软件时可以如何快速让一个应用以 System 权限运行。使用 PsExec 可以让软件以 System 账户运行

如何在 RunAs 启动的软件传入带空格的路径带空格参数

使用 RunAs 可以让程序使用普通用户或管理员权限运行,本文告诉大家如何 传入带空格的路径

在 SublimeText 使用 dotnet 编译 C# 项目

在 SublimeText 搭建 C# 环境可以找到的博客基本都是使用 csc 进行构建,而我期望在 dotnet 下编译整个项目。通过 dotnet 编译整个项目可以解决编译大项目时需要打开一个控制台降低效率

为什么 WPF 软件在 win7 启动时会尝试调起 wisptis 进程

我看到一个问题是在 win7 系统上,如果开机启动的软件是 WPF 软件,而这个 WPF 软件在系统的 wisptis 进程启动之前就启动了,那么 WPF 将会调起 wisptis 进程。而在 wisptis 进程已经启动完成,此时启动 WPF 进程不会再打开新的 wisptis 进程。但是被 WPF 启动的 wisptis 进程存在这样的问题,在触摸屏上 win7 的双指打开右键菜单等功能不可用

win32 嵌入第三方 UWP 应用做开放平台

微信现在差不多是一个os了,但是微信小程序的模式其实在2000就在 PPT 和 Flash 联手玩过,通过 PPT 带来流量,通过 Flash 实现定制的功能。而现在如果我有一个 win32 的应用,我想要提供给其他小伙伴一个自由开放的平台,那么备受限制和低性能的 HTML 就是第一个被干掉的。其实没有什么比调起一个进程能提供更自由开放的方式了。但是作为第三方的应用,安全性是很大的坑,如何调起一个第三方进程不需要考虑安全性。此时就想到了使用 UWP 的方法

从零开始学习入门 Windows 10 应用程序 UWP 开发

通过在微软学习平台上的文档和实战例子可以快速从零开始学习 UWP 开发

从以前的项目格式迁移到 VS2017 新项目格式

以前的项目格式使用的是 csproj 的格式,但是 .net core 支持使用 project.json 格式的项目文件,后来还是决定不使用这个格式。 VS2017 的项目格式更好读、更简单而且减少了 git 冲突。 本文来告诉大家如何从 VS2015 和以前的项目格式修改为 VS2017 项目格式。当前对新项目格式的命名是 SDK Style 风格的 csproj 项目文件格式。而在 VS2015 和以前的项目格式是 Franken-proj 格式

win7 升级到 win10 补丁

通过安装 KB2952664 和 KB3035583 就可以协助用户升级系统

私密密码本 2.1 源代码

本文告诉大家如何开发一个软件,本文记录了开发软件的遇到的问题

解决从旧格式的 csproj 迁移到新格式的 csproj 格式 AssemblyInfo 文件值重复问题

现在很多小伙伴开始使用了 dotnet core 项目,但是如果是从以前的 dotnet framework 的项目修改为 dotnet core 项目格式,会发现编译的时候出现了 AssemblyInfo 里面的很多值重复

浅谈 Windows 桌面端触摸架构演进

我在和小伙伴水触摸相关的坑,说到了上古的触摸,很难和小伙伴统一知识,于是就写了本文用于告诉大家,桌面端的触摸架构是如何一步步演进的