.NET 中各种混淆（Obfuscation）的含义、原理、实际效果和不同级别的差异（使用 SmartAssembly）
UWP 程序有 .NET Native 可以将程序集编译为本机代码，逆向的难度会大很多；而基于 .NET Framework 和 .NET Core 的程序却没有 .NET Native 的支持。虽然有 Ngen.exe 可以编译为本机代码，但那只是在用户计算机上编译完后放入了缓存中，而不是在开发者端编译。
于是有很多款混淆工具来帮助混淆基于 .NET 的程序集，使其稍微难以逆向。本文介绍 Smart Assembly 各项混淆参数的作用以及其实际对程序集的影响。
WPF Applications Stop Responding to Touches after Adding or Removing Tablet Devices
WPF framework handles touch devices and events mostly using its own code and COM components instead of using the windows message loop. Unfortunately, there may be some bugs in the WPF touch handling codes. So we sometimes suffer from the WPF touch failures. This changes after Microsoft introducing .NET Framework 4.7, but the developers have to switch on the
Pointer message manually with some compliant issues.
In this article, I’ll post some codes of WPF to present its potential bugs of touch failure.
Reading the Source Code of Microsoft.NET.Sdk, Writing the Creative Extension of Compiling
Project node starts to support the
Sdk attribute since MSBuild release the 15.0 version which is embedded in Visual Studio 2017. For the
Sdk attribute, the C# project file whose file extension is csproj becomes much more powerful and extensible.
We’ll try to read the source code of
Microsoft.NET.Sdk which is the default Sdk value of C#.NET project and try to write some creative extension of compiling.
Good Framework Rely on Good Api —— Six API Design Principles
We have S.O.L.I.D principles of object-oriented programming, and we also have Software design patterns to solve general, reusable solution to a commonly occurring problem. But we don’t have public-accepted API design principles or patterns for us to develop better APIs.
But we still have many API designing experiences to conclude some design principals. This post concludes them.
Introducing MSTestEnhancer to make unit test result easy to read
Don’t you think that naming is very very hard? Especially naming for unit test method? Read this article for more data of naming: Don’t go into programming if you don’t have a good thesaurus - ITworld.
MSTestEnhancer is a contract-style unit test extension for MSTestv2. You can write method contract descriptions instead of writing confusing test method name when writing unit tests.