• walterlv
  • 朋友
  • RSS
  • 主题
搜索
Microsoft MVP

吕毅

.NET and Windows Developer, Microsoft MVP

  • 博客
  • 胡思乱想
  • 朋友
  • 开源项目
  • 关于
  • RSS 订阅

    使用 Windows 10 中的加速度计(Accelerometer,重力传感器)

    2018-12-14 01:54

    在做 UWP 应用开发的时候还有什么理由可以用到加速度计呢?场景很多啦,比如做游戏,做类似 Surface Hub 那种一边旋转,一边所有内容跟着一起转的效果。

    Windows 10 UWP 中的加速度计使用非常简单,只需要简单几句代码即可。

    .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)

    2018-12-14 01:54

    我们有很多种方法评估一个方法的执行耗时,比如使用性能分析工具,使用基准性能测试。不过传统的在代码中编写计时的方式依然有效,因为它可以生产环境或用户端得到真实环境下的执行耗时。

    如果你希望在 .NET/C# 代码中编写计时,那么阅读本文可以获得一些建议。阅读本文也可以了解到 QueryPerformanceCounter、Get­System­Time­As­File­Time 等方法的差异。

    .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)

    2018-12-14 01:54

    大家都说反射耗性能,但是到底有多耗性能,哪些反射方法更耗性能;这些问题却没有统一的描述。

    本文将用数据说明反射各个方法和替代方法的性能差异,并提供一些反射代码的编写建议。为了解决反射的性能问题,你可以遵循本文采用的各种方案。

    .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)

    2018-12-14 01:54

    不知你是否见过 try { } finally { } 代码中,try 块留空,而只往 finally 中写代码的情况呢?这种写法有其特殊的目的。

    本文就来说说这种不一样的写法。

    C# 重载条件逻辑运算符(&& 和 ||)

    2018-12-14 01:54

    在微软的官方文档中,规定 && 和 || 运算符不可被重载,但允许通过重载 &、|、true 和 false 实现间接重载。

    本文将介绍重载方法和原理。感谢 Opportunity 的指导。

    在 WPF 中使用 x:Reference

    2018-12-14 01:54

    x:Reference 是 XAML 2009 中引入的功能,也算是比较早的功能了;ElementName 是 XAML 一开始出现便开始有的功能。二者在使用时在感觉上是比较相似的,但多数情况下都更有优势。

    本文将解释 x:Reference。

    UWP 轻量级样式定义(Lightweight Styling)

    2018-12-14 01:54

    在 UWP 中,可以通过给控件直接设置属性或在 Style 中设置属性来定制控件的样式;不过这样的样式定义十分有限,比如按钮按下时的样式就没法儿设置。当然可以通过修改 Template 来设置控件的样式,然而 UWP 中控件的样式代码实在是太多太复杂了,还不容易从 Blend 中复制了大量代码出来改,下个版本样式又不一样,于是我们就丢了不少功能。

    本文将介绍 UWP 轻量级样式定义(Lightweight styling),你既不用写太多代码,又能获得更多的样式控制。

    UWP 中的各种文件路径(用户、缓存、漫游、安装……)

    2018-12-14 01:54

    UWP 提供了多种不同文件路径访问方式,对应到不同的文件路径中。可能我们只是简单用 ApplicationData.Current 获取一下可以读写的路径便能应付我们应用日常所需的各种文件读写需求,不过,UWP 还提供了更多的路径选项。

    本文将和你一起总结 UWP 中的各种各样的路径。

    C# 空合并操作符(??)不可重载?其实有黑科技可以间接重载!

    2018-12-14 01:54

    ?? 操作符叫做 null-coalescing operator,即 null 合并运算符。如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。

    在微软的官方 C# 文档中,此操作符被定义为不可重载。不过我们有方法可以间接实现这样的重载。

    .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)

    2018-12-14 01:54

    长文预警!!!

    UWP 程序有 .NET Native 可以将程序集编译为本机代码,逆向的难度会大很多;而基于 .NET Framework 和 .NET Core 的程序却没有 .NET Native 的支持。虽然有 Ngen.exe 可以编译为本机代码,但那只是在用户计算机上编译完后放入了缓存中,而不是在开发者端编译。

    于是有很多款混淆工具来帮助混淆基于 .NET 的程序集,使其稍微难以逆向。本文介绍 Smart Assembly 各项混淆参数的作用以及其实际对程序集的影响。

    让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制

    2018-12-14 01:54

    各种操作系统的控制台都支持 ANSI 转义序列(ANSI Escape Code)。使用转义序列,可以对控制台进行很多额外的定制,例如修改颜色、修改标题栏,将文字添加下划线等。

    当然,.NET 已经帮助我们封装了很大的一部分功能了,我们重点可以放在 .NET 没有封装的那部分上。

    UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别

    2018-12-14 01:54

    在 StackOverflow 上看到有小伙伴询问 CoreApplication, CoreApplicationView, Application, ApplicationView, CoreWindow, Window 它们的含义以及它们之间的区别。

    于是我整理了这篇文章。

    UWP CoreApplication / Application Vs CoreApplicationView / ApplicationView Vs CoreWindow / Window

    2018-12-14 01:54

    I find a question on Stack Overflow CoreApplicationView vs CoreWindow vs ApplicationView, so I write this post for the answer.

    UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项

    2018-12-14 01:54

    在 Windows 10 的前几个版本中将页面内容扩展到标题栏上还算简单,主要是没什么坑。直到一些新控件的引入和一些外观设计趋势变化之后,扩展标题栏开始出现一些坑了。

    本文将重温 UWP 自定义标题栏或者扩展标题栏的方法,但更重要的是解决一些坑。

    理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图)

    2018-12-14 01:54

    UWP 应用多是一个窗口完成所有业务的,事实上我也推荐使用这种单一窗口的方式。不过,总有一些特别的情况下我们需要用到不止一个窗口,那么 UWP 中如何使用多窗口呢?

    (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序

    2018-12-14 01:54

    每次使用 Visual Studio 的模板创建一个 UWP 程序,我们会在项目中发现大量的项目文件、配置、应用启动流程代码和界面代码。然而这些文件在 UWP 程序中到底是如何工作起来的?

    我从零开始创建了一个 UWP 程序,用于探索这些文件的用途,了解 UWP 程序的启动流程。

    .NET/C# 使窗口永不激活(No Activate 永不获得焦点)

    2018-12-14 01:54

    有些窗口天生就是为了辅助其它程序而使用的,典型的如“输入法窗口”。这些窗口不希望抢夺其它窗口的焦点。

    有 Win32 方法来解决这样的问题,WS_EX_NOACTIVATE 便是关键。

    使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题

    2018-12-14 01:54

    虽然微软宣称 Windows 10 将是最后一个 Windows 版本,但由于年代跨越实在太久远,兼容性依然是避不开的问题。Microsoft.UI.Xaml 的预览版现已推出,旨在解决 UWP UI 控件在各个不同版本 Windows 上的兼容性问题。

    本文将简单了解一下 Microsoft.UI.Xaml 库,然后实际看看它的效果。

    Windows 10 应用创建模糊背景窗口的三种方法

    2018-12-14 01:54

    现代的操作系统中创建一张图片的高斯模糊效果非常容易,不过如果要在窗口中获得模糊支持就需要操作系统的原生支持了。iOS/Mac 和 Windows 系统都对此有支持。

    本文将介绍三种创建模糊背景窗口的方法。有人可能喜欢称之为毛玻璃窗口、亚克力窗口。

    3 Ways to create a window with blurring background on Windows 10

    2018-12-14 01:54

    This post is an answer from Stack Overflow and introduce some methods to create a window with blurring background.

    长期支持 LTS(Long-term Support)是怎样的一种支持方式

    2018-12-14 01:54

    在 .NET Core 2.1 发布之时,微软称之为一个 LTS 版本,那么 LTS 的版本是一种怎样的版本呢?

    在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中

    2018-12-14 01:54

    NuGet 提供了工具类型的包支持,生成一个基于 .NET Core 的 dll 或者基于 .NET Framework 的 exe 之后,你几乎可以对项目做任何事情。但是,默认情况下,NuGet 不会将这些工具的依赖一起打包进入 NuGet 包 nupkg 文件内,这就使得功能比较复杂的跨平台 NuGet 工具包几乎是无法正常工作的。

    本文将介绍将这些依赖加入 NuGet 包中的方法,使得复杂的工具能够正常使用。

    使用 LINQ to XML,.NET 让生成 XML 文件变得和直接写 XML 一样轻松

    2018-12-14 01:54

    由 .NET Framework 3.5 引入,并依然在 .NET Core 中发扬光大的 LINQ to XML 让编写 XML 文件变得非常轻松。

    PasswordVault —— 在 UWP 应用中安全地保存密码

    2018-12-14 01:54

    只要你做过自动登录,一定会遇到密码的安全问题。现在大部分的网络服务都已经支持 Token 了,有些已经支持 OAuth2.0,这意味着客户端不怎么需要关心密码的安全保存问题。

    但是,依然还有一些古老的服务和协议需要直接传输密码,比如邮件的 IMAP 协议。

    Windows 10 四月更新,文件夹名称也能区分大小写了

    2018-12-14 01:54

    Linux 一向都是区分文件和文件夹大小写的。Mac OS 默认不区分文件和文件夹大小写,不过可以配置成支持。而 Windows 向来是不区分文件和文件夹大小写的,但是从 NTFS 开始却又支持区分文件夹大小写。

    本文将介绍 Windows 10 四月更新带来的新特性 —— 让文件夹名称也能区分大小写。

    如何使用 MSBuild Target(Exec)中的控制台输出

    2018-12-14 01:54

    我曾经写过一篇文章 如何创建一个基于命令行工具的跨平台的 NuGet 工具包,通过编写一个控制台程序来参与编译过程。但是,相比于 基于 Task 的方式,可控制的因素还是太少了。

    有没有什么办法能够让控制台程序也能与 MSBuild Target 之间发生更多的信息交换呢?答案是有的,通过捕获控制台的输出!

    微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的

    2018-12-14 01:54

    一次我走到了弱网环境中,意外地发现浏览器打开了 http://www.msftconnecttest.com/redirect 网址,随后右下角的网络图标出现了一枚“感叹号”。

    如何编写 WPF 的标记扩展 MarkupExtension,即便在 ControlTemplate/DataTemplate 中也能生效

    2018-12-14 01:54

    WPF 的标记扩展为 WPF 带来了强大的扩展性。利用自定义的标记扩展,我们能够为 XAML 中的属性提供各种各样种类的值,而不仅限于自带的那一些。

    不过有小伙伴发现在 ControlTemplate 或 DataTemplate 中编写标记扩展有时并不能正常工作,而本文将提供解决方法。

    如何让 .NET Core 命令行程序接受密码的输入而不显示密码明文

    2018-12-14 01:54

    如果是在 GUI 中要求用户输入密码,各 UI 框架基本都提供了用于输入密码的控件;在这些控件中,用户在输入密码的时候会显示掩码。然而对于控制台程序来说,并没有用于输入密码的原生方法。

    本文将讲述一种在控制台中输入密码,并仅显示掩码的方法。

    如何编写基于 Microsoft.NET.Sdk 的跨平台的 MSBuild Target(附各种自带的 Task)

    2018-12-14 01:54

    我之前写过一篇 理解 C# 项目 csproj 文件格式的本质和编译流程,其中,Target 节点就是负责编译流程的最关键的节点。但因为篇幅限制,那篇文章不便详说。于是,我在本文说说 Target 节点。

    • ←
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • →

    © 2014-2021 walterlv, all rights reserved. Powered by: Jekyll Theme by: walterlv Based on Thiago Rossener