C#
的异步编程强大而优雅,但其实现原理也异常复杂。本文以一个简单实例作为切入点,一窥底层技术的奥秘,也体验驾驭复杂代码逻辑的乐趣。
C#
的异步编程强大而优雅,但其实现原理也异常复杂。本文以一个简单实例作为切入点,一窥底层技术的奥秘,也体验驾驭复杂代码逻辑的乐趣。
日志在大型软件开发过程中扮演着不可或缺的角色,开发者经常使用日志对系统进行调试和监控。
.NET平台上有多种流行的日志库,本文对log4net和Serilog两种日志库做简要介绍,从使用角度来说,后者更加易用和强大。
软件在不同的运行环境或面对不同的用户需求时,肯恩更需要不同的参数设置。如果将其硬编码到代码中,每次修改都需要重新编译代码,效率低且容易出错;配置文件集中管理可变参数,只需要修改配置文件就能调整软件行为,极大提升软件的灵活度和可维护性。
.NET支持多种配置文件系统,使用较多的是传统的App.config和JSON文件,本文对它们进行简要介绍。
前面一篇文章介绍了Source Generator的基本用法,本文结合实例再对Fody编织器的创建进行介绍。
值得注意的是,Source Generator生成代码的方式更加简单,而Fody必须在IL中间代码的基础上进行修改,会更加繁琐,本文只关注如何创建编织器,重点不在编制IL中间代码的语法上。
提到.NET的Source Generator,就不得不提及Fody,两者都是强大的.NET代码生成技术。这些代码生成技术是硬核技能,给开发者提供了制作语法糖的利器,在框架设计中被广泛使用,以下是两者的主要区别:
在使用以上两种方式生成代码时,踩了许多坑,特此写两篇技术文档做一个记录!本文结合实例先对Source Generator的用法进行介绍。
计算机世界的技术最能体现“道生一,一生二,二生三,三生万物”的哲学观。从底层到高层,从简单到复杂,层层抽象、层层封装促进了技术的繁荣,但也掩盖了技术的本质。
在C#技术生态中,有许多数据库访问相关的技术,对这些技术进行关系梳理和适当总结很有必要,请看本文。
Entity Framework Core再一次让开发者领略到框架的强大力量,它不再是一个程序库,而是先进数据库设计手段的典范。
本文简要介绍EFCore的基本用法,更多干货可参考官方文档。
本科期间开发过一款混凝土基本构件设计程序,该程序是一个独立的exe可执行文件,采用VC++静态链接MFC库编制而成。近期,需要为该程序添加用户注册验证的功能,从而避免任何用户获取该程序就能无限制使用的问题。
刚开始,打算在网络上找可直接为单个exe文件添加“一机一码”注册功能的平台软件,但该类软件基本都是付费软件,且生成的加壳程序很容易被杀毒软件误差。好在“一机一码”机制并不复杂,最终决定使用C#编程的方式手动实现该功能。