刷新
【EF Core】优化后的模型

博主头像 本文所讲述内容,大伙伴们不必要完全掌握,毕竟,dotnet ef 工具会帮助咱们生成相关代码。不过,为了让各位能够真正了解它,老周会做一次纯手搓代码。 所谓优化后的模型,相当于把实体的配置进行“硬编码”,程序会执行更少的代码来提升效率。放到实际代码编写上,这个活叫运行时模型,对应的类就是 Runti ...

手算神经网络BP传播算法

虽然说是手算,但是我还是会写一点 C# 代码,避免敲坏了计算器。我和大家保证,整个手算过程中,最终的计算结果只需要用到初高中知识。推导过程会用到部分高数的知识。我尽量将用到的知识点全列举出来,本文对学渣友好,期望能够拿出纸笔和 VisualStudio 的伙伴阅读完本文能够真的理解神经网络BP传播算... ...

聊一聊 .NET 的 AssemblyLoadContext 可插拔程序集

博主头像 一:背景 1. 讲故事 最近在分析一个崩溃dump时,发现祸首和AssemblyLoadContext有关,说实话这东西我也比较陌生,后来查了下大模型,它主要奔着替代 .NetFrameWork 时代的 AppDomain 的,都是用来做晚期加卸载,实现对宿主程序的可插拔,AppDomain.Cre ...

如何使用PocoEmit.Mapper替代AutoMapper

PocoEmit使用比较简单对于大部分转化是不需要手动配置 可以替代AutoMapper的大部分工作,实现精简代码,提高性能 一、获取Mapper实例 1. 获取Mapper默认实例 Default是一个静态延迟初始化的默认实例 IMapper mapper = PocoEmit.Mapper.De ...

推荐一款代码规范检查(CodeReview)神器

博主头像 在实际项目开发中,越是复杂的项目,越是需要很多人协同完成,每一个人根据职责分工不同,负责不同的模块。在这个过程中,由于每一个人的工作经历不同,在不同的职场环境中,会形成不同的编码习惯,比如有人喜欢驼峰命名方式,有人喜欢帕斯卡命名方式,还有人喜欢用下划线分隔单词,更有甚者,有的人喜欢随意命名,那在整个... ...

记一次 .NET 某放射治疗光学定位软件 卡死分析

博主头像 一:背景 1. 讲故事 前段时间微信上有位非调试训练营学员找到我,说他们的医疗软件有点问题,有时候卡了一会就好了,有时候卡了很久,让我帮忙看下怎么回事,我让这位朋友在卡的时候抓一个dump给我,我分析看看。 二:卡死分析 1. 为什么会卡死 对于窗体程序的卡死,主要就是看主线程此时正在做什么,使用 ...

如何借助文档控件 TX Text Control 轻松优化 PDF 文件大小?

博主头像 在数字文档的日常使用中,PDF 文件的体积大小直接影响存储空间、传输速度和打开体验。尤其是在包含大量图片、图表或字体资源的文档中,文件往往会变得非常庞大。TX Text Control 为开发者提供了多种可配置的工具与策略,帮助在不同场景下优化 PDF 文件大小,同时保持可读性与清晰度。 ...

婶可忍叔不可忍的AutoMapper,你还用吗?

AutoMapper是让人又爱又恨的项目 爱它是因为它解决了一些问题,很多项目都有用,下载量很大,受众很广。 恨它是因为它诸多反人类的设计。 为此本人开源项目PocoEmit对标AutoMapper。 1. AutoMapper反人类设计 1.1 AutoMapper注册代码 services.Ad ...

记一次 .NET 某企业审批系统 崩溃分析

博主头像 一:背景 1. 讲故事 今年年初有位朋友在微信上找到我,说他们的系统在客户这边崩掉了,在代码中也加了全局异常处理但还是崩,不知道咋回事,让朋友在客户那边拿程序dump,拿到dump之后开始分析。 二:崩溃分析 1. 为什么会崩溃 既然是崩溃,那就用 !analyze -v 命令观察下windbg给我 ...

用代码写代码:使用Roslyn API构建语法树并应用于源生成器

博主头像 在上文构建源生成器的过程中,我们使用字符串直接插入代码。这样做固然方便快捷,但字符串需要手动格式化,且无法检测拼写错误,这对需要生成复杂结构的源生成器项目很不友好。 本文将介绍生成代码的另一种方式:使用Roslyn API构建语法树。 什么是语法树 (Syntax Tree)? 语法树是编译器用于理 ...

C# 源生成器(Source Generator)入门

博主头像 C#9 引入了一个强大的机制:源生成器(Source Generator)。通过创建源生成器,我们可以简化大量重复编写的代码,或是减少反射来获得更强的性能以及AOT支持 本文将介绍如何从零开始创建一个最简单的源生成器 创建生成器项目 创建一个SourceGeneratorDemo.Generator ...

<123···50>