lindexi

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

林德熙

命令行参数使用 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 桌面端触摸架构演进

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

win7 无法启动 WPF 程序 D3Dcompiler_47.dll 丢失

本文记录 D3Dcompiler_47 丢失问题,在安装 KB4040973 KB3178034 完成的 win7 系统可能出现 D3Dcompiler_47 丢失,让 WPF 等软件无法启动

win10 uwp 颜色转换

本文告诉大家如何从字符串转颜色,从颜色转字符串

加强版在国内分发 UWP 应用正确方式 通过win32安装UWP应用

几乎所有国内的 UWP 开发者都知道,在国内开发 UWP 应用最大的问题不在于那么多系统的适配和不断修改的 API 接口,而是用户根本无法下载安装应用。在国内除非能掌握入口,否则想要将 UWP 开发应用在商业团队是很难的。刚好我所在的团队能将硬件设备直接给到用户,此时预装的系统里面就可以带上自主开发的 UWP 应用,解决了用户无法在应用商店安装应用的坑。但是大多数的团队都不能这样做,同时我的团队如果只是依靠硬件设备预装,那么会限制用户量。本文告诉大家如何使用传统的方法,将 UWP 作为 win32 应用安装包方法分发给用户安装

win10 uwp 通过命令行脚本开启旁加载

在 UWP 旁加载安装,需要用户的设备上开启旁加载功能,这个功能需要点击设置,点击更新,找到开发者选项,点击开启旁加载。这对用户来说要安装一个应用需要点这么多步骤,基本上很少用户能成功。本文告诉大家如何通过命令行或通过脚本的方式协助用户开启旁加载的功能