lindexi

林德熙 - 微软最具价值专家和 .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 旁加载安装,需要用户的设备上开启旁加载功能,这个功能需要点击设置,点击更新,找到开发者选项,点击开启旁加载。这对用户来说要安装一个应用需要点这么多步骤,基本上很少用户能成功。本文告诉大家如何通过命令行或通过脚本的方式协助用户开启旁加载的功能

win10 uwp 访问解决方案文件

本文讲如何访问解决方案的资源。

微软框架下载

微软 提供的最新 .net Framework 4.7 之前只是可以在创造者更新使用,现在支持很多的版本的系统。 本文提供 .net core 2.0 的离线下载安装包。.net Framework 4.7 以及其他版本的下载地址。 提供的地址为官方的地址。

云之幻 UWP 视频教程

云之幻小伙伴在 B 站发了好多很好的教程视频,特别适合新手,欢迎小伙伴观看

win10 uwp 非ui线程访问 ui

大家都知道,不可以在 其他线程访问 UI 线程,访问 UI 线程包括给 依赖属性设置值、读取依赖属性、调用方法(如果方法里面修改了依赖属性)等。一旦访问UI线程,那么就会报错,为了解决这个问题,需要使用本文的方法,让后台线程访问 UI 线程。

微软的 P2P 下载方式

微软在 2016 的时候就说要做 P2P 提供的更新,因为微软说每次系统更新使用的服务器费用很大,同时很多用户都说连不上微软的服务器。但是很快微软就砍了这个技术,原因是P2P的水很深。不过微软收购了 Pando Networks 公司,这是专业做 NYC-based P2P 技术的公司,后续微软就在更新和商店下载使用了P2P技术

如何让 USB 设备不显示安全删除硬件弹出选项

插入一个 U 盘的时候,可以在右下角找到安全删除硬件图标,点击就可以删除此硬件。如果此时插入的是一个无线网卡,也就是 USB 无线 wifi 设备,此时如果逗比点了弹出 802.11 设备那么就不能再使用无线上网了 如果我是一个硬件供应商,如何让我的设备不会显示弹出安全删除硬件弹出选项