刷新
ADO.NET入门介绍(1)

本内容主要介绍关于ADO.NET的相关内容。 aod.net类层次可划分为两个类别,连接对象与分连接对象。如下图 非连接对象,包括 DataSet,DataTable, DataRow,DataColumn,DataRelation等。 1、DataTable介绍 DataTable是将数据表格化, ...

【EF Core】使用自定义的值比较器

博主头像 EF Core 默认实现了许多值比较器,用于在实体状态追踪时检查属性值是否被修改。故大多情况下,咱们不需要操作心。但,凡是总有特殊情况,有些数据虽然值不相等,但所表示的意思是相等的。这种时候就不能依靠默认的比较器了。 老周举一个连外星人都知道的例子。假设有这样的实体类。 public class C ...

基于.NET的Windows窗体编程之WinForms列表控件

博主头像 在实际应用中,列表控件主要用于显示列表格式的数据,然后供用户选择,常见的列表控件有ComboBox(下拉列表框),ListBox(列表框),CheckedListBox(带复选框的列表框),ListView(带图标的列表框),TreeView(树状结构的列表视图),今天我们以一些简单的小例子,简述列 ...

.NET 接口限流、防重、幂等性设计

博主头像 一、设计思路 表格 特性作用实现方式 限流 防止接口被刷、防止流量洪峰 令牌桶 / 滑动窗口 + Redis / 内存缓存 防重 防止前端重复点击 / 网络重试重复提交 请求唯一 ID + 短时间锁 幂等性 保证接口重复调用结果一致 唯一业务键 + 状态机 + 分布式锁 二、.NET 完整实现代码 ...

【EF Core】值转换器

博主头像 好像有一个月没发文了,这期间发生了些不愉快的事。都是些家庭矛盾,不提也罢。 最近很多裁员,不要听网上的营销胡说九道。实际上很多裁员跟 AI 没多大关系的,要么是找个借口(拿AI做文章以掩盖公司实力不行了),要么是不行了,没钱了,项目烂了,公司也烂了,全烂了。如果经济形势大好的话,你看看那些B资本家会 ...

.NET Polly 重试、熔断、降级

博主头像 一、安装依赖 # 基础包 Install-Package Polly # HTTP 集成(推荐) Install-Package Microsoft.Extensions.Http.Polly 二、策略与代码 1. 重试(Retry):自愈瞬时故障 作用:网络抖动、偶发超时、5xx 等临时错误自动重 ...

.NET 双缓存策略:本地缓存、分布式缓存

博主头像 一、设计思路 1. 架构分层 一级缓存:IMemoryCache(进程内内存缓存,读写纳秒级,无网络开销) 二级缓存:IDistributedCache(Redis 分布式缓存,跨服务共享,毫秒级) 数据源:数据库 / 接口(兜底,避免缓存穿透) 2. 读写流程 读取数据(Get) 先查本地缓存,命 ...

.NET 规范异常捕获 & 处理

博主头像 一、核心规则 异常仅用于非预期错误,禁止用来做业务逻辑判断(替代 if/TryXXX)。 精准捕获:抓具体异常,禁止无脑捕获 Exception。 禁止空捕获 catch{}、吞异常、隐藏故障。 重抛异常只用裸 throw;,禁用 throw ex;(丢失堆栈)。 资源释放优先 using,少手写 ...

.NET 代码规范、CodeReview、 重构

博主头像 一、.NET 官方 + 企业通用代码规范 1. 命名规范(最核心) 遵循 PascalCase / camelCase 严格区分,禁止拼音、无意义命名。 表格 类型规范示例 类、接口、方法、属性 PascalCase UserService、GetUserById() 私有字段 _camelCase ...

SQL 优化、索引、执行计划、慢查询

博主头像 一、SQL 为什么会慢? 根本原因 3 个: 没走索引 / 索引失效(全表扫描) 数据量太大(没分页、没过滤) 写法复杂(子查询嵌套、join 太多、排序分组无索引) 二、索引(SQL 优化的核心) 1. 什么是索引? 可以理解为书的目录: 没有索引 = 一页一页翻(全表扫描) 有索引 = 直接查目 ...

.NET SOLID、高内聚低耦合、分层

博主头像 一、SOLID 原则(类与方法的设计规范) SOLID 是 5 个面向对象设计原则的缩写,目的:让代码易维护、易扩展、少出 bug。 1. S – 单一职责原则 (Single Responsibility) 一个类 / 方法只做一件事,且只做好一件事 坏:一个类同时处理「用户注册 + 发送邮件 + ...

C# async/await、Task 、死锁

博主头像 一、核心 Task:代表一个尚未完成的操作(可以是异步、也可以是同步) async/await:语法糖,让异步代码写得像同步 本质:await 时挂起方法,释放线程;操作完成后恢复执行 二、Task 到底是什么? 1. Task 不是线程 很多人误区: “启动一个 Task 就开一个线程。” 错。 ...

123···5>