技术博客

技术博客

围绕工程效率、系统交付、健身实践与 AI 工程化进行沉淀。

.NET AOP 与 Castle DynamicProxy:横切逻辑怎么落地

把日志、审计、缓存、性能统计等横切逻辑放到代理层,但不要把核心业务藏进去。

.NETC#

C# 值类型、引用类型与对象语义

把 class、struct、object 放回类型语义里理解:什么时候表达值,什么时候表达对象身份。

C#.NET

.NET 托管堆与垃圾回收:对象生命周期怎么被管理

从对象分配、可达性、代际回收到 IDisposable,理解 GC 解决什么,也不解决什么。

.NETC#

C# Equals、GetHashCode 与哈希集合语义

解释为什么自定义相等性时必须同时处理 Equals 和 GetHashCode,以及哈希集合如何使用它们。

C#.NET

C# double、decimal 与业务精度选择

解释二进制浮点为什么会有精度误差,以及金额、折扣、统计场景应该如何选择数值类型。

C#.NET

C# ConditionalAttribute:让调试诊断逻辑不污染主流程

说明 ConditionalAttribute 适合哪些调试、日志和诊断调用,以及它和 #if 的边界。

C#.NET

dotnet CLI 日常开发工作流

把 dotnet new、restore、build、test、run、publish 串成本地开发和 CI 都能复用的统一入口。

.NET

.NET 线程成本、线程池与异步边界

从线程空间成本、调度成本到线程池和 async,理解为什么现代 .NET 不应该随意创建线程。

.NETC#

C# lock、死锁与共享状态治理

聚焦 lock 的正确用法、死锁形成条件,以及如何通过锁顺序和临界区设计降低风险。

C#.NET

.NET BlockingCollection 与生产者消费者背压

把 BlockingCollection 放回生产者/消费者模型里理解:容量、阻塞、取消和背压。

.NETC#

ASP.NET Core 依赖注入与生命周期选择

DI 生命周期不是注册语法问题,而是资源、线程安全和请求边界的设计问题。

ASP.NET Core.NET

MediatR 请求处理与 Pipeline Behavior 边界

把 MediatR 用在请求和处理解耦,而不是把简单 CRUD 包成过度抽象。

.NETASP.NET Core

HttpClientFactory 与 Polly:让外部 HTTP 调用更稳

外部 HTTP 调用的稳定性来自客户端生命周期、超时、重试、熔断和降级的组合设计。

.NETASP.NET Core

TCP 连接生命周期:三次握手、四次挥手与 TIME_WAIT

从可靠双向连接的角度理解 TCP 三次握手、四次挥手、半关闭、TIME_WAIT,以及排查连接问题时应该看什么。

.NET系统设计

WCF 作为 .NET 服务通信历史资产该怎么看

WCF 曾经统一 SOAP、Remoting、消息队列和服务契约;今天更适合作为历史资产来评估迁移边界。

.NET架构

gRPC 在 .NET 中的契约优先服务通信

解释 gRPC 为什么适合内部服务调用、强契约通信和流式传输,以及它不适合的边界。

.NET微服务

JWT 认证与 .NET API Token 校验要点

JWT 校验要关注签名、issuer、audience、过期时间和权限声明,不能把“已签名”误解为“已加密”。

.NETASP.NET Core

NuGet 源管理与私有包治理

聚焦 nuget.config、私有源、包删除/取消列出、凭据和依赖混淆风险。

.NET