<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[专注于C#/.NET/.NET Core学习、工作、面试干货和实战教程分享。这里聚焦了大量的C#/.NET/.NET Core优质文章、开源项目、实用工具和学习、工作、面试心得。]]></title><description><![CDATA[C#，asp.net]]></description><link>https://blog.csdn.net/SC2LQ</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; SC2LQ]]></copyright><item><title><![CDATA[.NET 接口从 800ms 干到 60ms：生产环境这几个优化点最关键]]></title><link>https://blog.csdn.net/SC2LQ/article/details/169455497</link><guid>https://blog.csdn.net/SC2LQ/article/details/169455497</guid><author>SC2LQ</author><pubDate>Fri, 30 Oct 2026 08:05:57 +0800</pubDate><description><![CDATA[本文分享了.NET项目中接口响应慢的典型问题——“服务器不忙却接口卡顿”，根源常在于EFCore查询方式低效。通过排查发现，一个订单列表接口竟发出217条SQL，主因是N+1查询、未使用投影、缺少AsNoTracking()及深分页不当。作者提出六大优化策略：投影查询、批量加载、AsSplitQuery()、键集分页、分批写入与覆盖索引，最终将耗时从800ms降至60ms。强调先优化代码逻辑，再调优数据库，避免用缓存掩盖根本问题。文末附《.NET生产环境避坑手册》第二章领取方式，助力实战避坑。]]></description><category></category></item><item><title><![CDATA[AI 写的 SQL 能上线吗？我把 6 年 ERP 踩坑做成了 22 条自检规则]]></title><link>https://blog.csdn.net/SC2LQ/article/details/169364253</link><guid>https://blog.csdn.net/SC2LQ/article/details/169364253</guid><author>SC2LQ</author><pubDate>Wed, 28 Oct 2026 18:08:57 +0800</pubDate><description><![CDATA[AI 写 SQL 越来越快，但代码质量却越来越难把控。因语法正确却违背业务规范，导致“脏读”“索引失效”“堆表”等隐患频发。作者总结六年踩坑经验，提炼22条规则，推出纯静态分析的SQL规范体检工具，支持粘贴即检，输出评分与改进建议，已验证100%检出率。9.9元买断，永久使用，助力团队规避AI生成陷阱，提升代码可维护性与安全性。]]></description><category></category></item><item><title><![CDATA[制造业 ERP 最头疼的物料建模：主料、辅料和 BOM 到底怎么拆才稳]]></title><link>https://blog.csdn.net/SC2LQ/article/details/169337648</link><guid>https://blog.csdn.net/SC2LQ/article/details/169337648</guid><author>SC2LQ</author><pubDate>Wed, 28 Oct 2026 18:07:41 +0800</pubDate><description><![CDATA[文章聚焦制造业ERP物料建模核心痛点，提出主料与辅料按“成本BOM、独立库存、MRP参与”三维度区分，对比单BOM与主辅分BOM架构，强调辅料按产量分摊，避免成本差异与MRP错算。]]></description><category></category></item><item><title><![CDATA[.NET 8 升级 .NET 10 踩坑实录：生产环境这几个坑不避开就崩（附升级检查清单）]]></title><link>https://blog.csdn.net/SC2LQ/article/details/168948825</link><guid>https://blog.csdn.net/SC2LQ/article/details/168948825</guid><author>SC2LQ</author><pubDate>Sat, 24 Oct 2026 17:45:57 +0800</pubDate><description><![CDATA[2026 年 11 月 10 日，.NET 8 与 .NET 9 同时终止官方支持。从 .NET 8 直接跨两代升 .NET 10，breaking change 远多于 8→9。本文总结升级前 4 项必查、生产中 5 个真实踩坑、以及 6 步安全落地清单，照着走能避开绝大多数线上事故。]]></description><category></category></item><item><title><![CDATA[这 8 个 NuGet 包，项目直接起飞]]></title><link>https://blog.csdn.net/SC2LQ/article/details/168555049</link><guid>https://blog.csdn.net/SC2LQ/article/details/168555049</guid><author>SC2LQ</author><pubDate>Sat, 24 Oct 2026 17:45:39 +0800</pubDate><description><![CDATA[本文分享了码农刚子在新项目中必装的8个NuGet包，涵盖日志、校验、容错、映射、查询、任务、文档与性能测试等核心场景。这些包均经生产验证，解决的是基础设施问题而非业务逻辑，能显著提升代码质量与可维护性。作者强调：工具不在多，在于精准解决问题；引包前应权衡是否真需外部依赖，避免盲目引入增加维护成本。真正的技术克制，才是工程师的成熟标志。]]></description><category></category></item><item><title><![CDATA[SaveChanges 一万行？换批量操作快 10 倍]]></title><link>https://blog.csdn.net/SC2LQ/article/details/168026889</link><guid>https://blog.csdn.net/SC2LQ/article/details/168026889</guid><author>SC2LQ</author><pubDate>Thu, 15 Oct 2026 17:31:46 +0800</pubDate><description><![CDATA[本文分享EFCore批量操作实战经验：避免用SaveChanges逐条更新上万行数据，改用EFCore7+的ExecuteUpdateAsync/ExecuteDeleteAsync，将批量操作转为一条SQL，显著提升性能、降低内存占用。实测一万行更新从3.5秒降至0.2秒，内存增长几乎为零。但需注意：拦截器、审计字段、RowVersion并发控制、跨表更新等不生效，多操作需手动事务管理。适用于大批量同质更新场景，是替代传统SaveChanges的高效方案。]]></description><category></category></item><item><title><![CDATA[码录集：Radzen 6.0.0 这几个 API 坑，我替你踩了]]></title><link>https://blog.csdn.net/SC2LQ/article/details/167917227</link><guid>https://blog.csdn.net/SC2LQ/article/details/167917227</guid><author>SC2LQ</author><pubDate>Thu, 15 Oct 2026 12:45:00 +0800</pubDate><description><![CDATA[升级Radzen.Blazor 6.0.0遭遇四大隐蔽坑：1）NU1107依赖冲突，需显式对齐Microsoft.AspNetCore.Components.Web版本；2）DataGrid服务端分页须手动赋值args.Count；3）DialogService泛型与默认尺寸变更，必须显式指定Width/Height；4）组件类名更新导致自定义CSS失效，建议改用主题CSS变量。升级前查依赖、看BREAKING CHANGES，升后做视觉回归，避免软错误耗时。]]></description><category></category></item><item><title><![CDATA[新项目选 Blazor 还是 Razor Pages？我交了学费]]></title><link>https://blog.csdn.net/SC2LQ/article/details/167212342</link><guid>https://blog.csdn.net/SC2LQ/article/details/167212342</guid><author>SC2LQ</author><pubDate>Sat, 10 Oct 2026 08:42:52 +0800</pubDate><description><![CDATA[新项目选型不必二选一：秦巴牧云实战经验表明，混合使用BlazorServer与RazorPages更高效。管理后台的实时看板、复杂交互表单、多步向导等场景用BlazorServer；供应商对账、饲养员WebView等简单页面用RazorPages。前者省去JavaScript，后者轻量稳定，共享Domain层，一个项目内共存，按需选择，避免“杀鸡用牛刀”。建议默认选RazorPages，遇复杂交互再引入Blazor，增量演进，少走弯路。]]></description><category></category></item><item><title><![CDATA[两个请求同时改库存，RowVersion 救了一命]]></title><link>https://blog.csdn.net/SC2LQ/article/details/167212491</link><guid>https://blog.csdn.net/SC2LQ/article/details/167212491</guid><author>SC2LQ</author><pubDate>Sat, 10 Oct 2026 08:42:33 +0800</pubDate><description><![CDATA[秦巴牧云饲料库存因并发写入导致“丢失更新”：两饲养员同时领料，后写覆盖前写，库存被错误地从300变为150公斤，多发200公斤。问题根源在于EFCore默认的SaveChanges不检测并发，仅按最后写入覆盖。解决方案是引入RowVersion并发令牌——通过数据库自动维护的版本号，在UPDATE时加入版本校验，若中间有修改则抛出DbUpdateConcurrencyException，捕获后重试读取并重新计算。代码仅需加字段、配置和异常处理，即可避免数据错乱。关键点：重试时必须清空ChangeTracke]]></description><category></category></item><item><title><![CDATA[Blazor 里 JWT 过期，用户正下单就被踢]]></title><link>https://blog.csdn.net/SC2LQ/article/details/167221936</link><guid>https://blog.csdn.net/SC2LQ/article/details/167221936</guid><author>SC2LQ</author><pubDate>Fri, 09 Oct 2026 08:16:42 +0800</pubDate><description><![CDATA[Blazor中JWT过期导致用户表单数据丢失，根源在于客户端与服务端模式差异及组件状态持久性。解决方案：通过DelegatingHandler拦截请求，在401时静默刷新token，克隆请求重发，并用SemaphoreSlim防止并发刷新冲突。关键点包括：Token存储区分Server（内存/Redis）与WASM（localStorage），刷新端点需轮换refresh token，且引入预刷新机制——在token过期前主动续期，避免401触发。最终实现用户无感续期，表单数据零丢失。]]></description><category></category></item><item><title><![CDATA[IIS 后面挂 Kestrel，这 3 个配置错了就 502]]></title><link>https://blog.csdn.net/SC2LQ/article/details/167221889</link><guid>https://blog.csdn.net/SC2LQ/article/details/167221889</guid><author>SC2LQ</author><pubDate>Fri, 09 Oct 2026 08:16:16 +0800</pubDate><description><![CDATA[部署ASP.NET Core应用时常见502错误，根源常在三处：一、ANCM未安装或版本不匹配，导致IIS无法启动Kestrel；二、web.config中hostingModel配置错误，InProcess与OutOfProcess模式混用引发崩溃；三、IIS与Kestrel的超时及大小限制不一致，造成请求被拦截或断连。排查需结合事件查看器、stdout日志，并确保IIS限制小于Kestrel设置。对齐配置，问题迎刃而解。]]></description><category></category></item><item><title><![CDATA[.NET 面试必问的 8 道 GC 题，建议收藏]]></title><link>https://blog.csdn.net/SC2LQ/article/details/167221864</link><guid>https://blog.csdn.net/SC2LQ/article/details/167221864</guid><author>SC2LQ</author><pubDate>Thu, 08 Oct 2026 08:03:16 +0800</pubDate><description><![CDATA[本文梳理了.NET面试中高频出现的8大GC核心问题，从分代机制、触发条件、LOH陷阱到ServerGC与WorkstationGC差异，深入解析Finalizer与IDisposable区别、SafeHandle优势、Pinning影响及诊断工具使用。强调理解底层逻辑而非死记硬背，帮助开发者在面试中应对追问，构建完整的GC认知链条。建议收藏，面试前过一遍，真正掌握GC本质。]]></description><category></category></item><item><title><![CDATA[我用 ASP.NET Core 做了个水稻病虫害检查系统]]></title><link>https://blog.csdn.net/SC2LQ/article/details/166788846</link><guid>https://blog.csdn.net/SC2LQ/article/details/166788846</guid><author>SC2LQ</author><pubDate>Thu, 08 Oct 2026 08:02:45 +0800</pubDate><description><![CDATA[码农刚子用.NET技术栈开发了一款水稻病虫害识别系统，通过手机拍照上传，3秒内精准识别6类常见病害（如稻瘟病、纹枯病），准确率达94.78%。系统基于ML.NET与ONNX模型（DenseNet121），实现本地推理，无需依赖Python服务，部署简洁。配套知识库提供防治建议，支持统计分析与双角色权限管理。项目解决农村“看不清、等不起”的痛点，展现.NET在AI场景下的可行性，完整源码与论文可查博客原文。]]></description><category></category></item><item><title><![CDATA[.NET 项目 Docker 化 + Nginx 反向代理，一篇讲透]]></title><link>https://blog.csdn.net/SC2LQ/article/details/166788779</link><guid>https://blog.csdn.net/SC2LQ/article/details/166788779</guid><author>SC2LQ</author><pubDate>Mon, 05 Oct 2026 08:13:52 +0800</pubDate><description><![CDATA[Dockerfile 做多阶段构建控体积，Compose 做多服务编排管依赖，Nginx 做反向代理扛流量——三件套各司其职，部署就稳了。这篇里提到的所有配置文件都是我在生产环境用过的，可以直接拿去改改用。如果有什么我没覆盖到的场景，评论区聊。]]></description><category></category></item><item><title><![CDATA[聊聊 Blazor 里 Radzen 6.0.0 那几个用着别扭的官方组件]]></title><link>https://blog.csdn.net/SC2LQ/article/details/166647443</link><guid>https://blog.csdn.net/SC2LQ/article/details/166647443</guid><author>SC2LQ</author><pubDate>Fri, 25 Sep 2026 23:16:55 +0800</pubDate><description><![CDATA[码农刚子分享了将Radzen从5.x升级至6.0.0的体验，指出其虽功能全面、开源免费，但部分组件API设计“差一口气”：如DataGrid分页需手动同步状态，Dialog参数传递无类型安全，Upload不支持预览且无法读取文件内容，Scheduler刷新数据需“晃日期”等。他建议对核心组件封装一层，规避设计缺陷，提升开发体验。虽有吐槽，仍肯定其生态价值，呼吁更优雅的API设计。]]></description><category></category></item><item><title><![CDATA[你以为加个 TenantId 字段就算隔离了，其实还差三道防线]]></title><link>https://blog.csdn.net/SC2LQ/article/details/166647425</link><guid>https://blog.csdn.net/SC2LQ/article/details/166647425</guid><author>SC2LQ</author><pubDate>Fri, 25 Sep 2026 23:14:38 +0800</pubDate><description><![CDATA[本文复盘秦巴牧云SaaS项目中多租户隔离的三大盲区：TenantId仅作标记、DbContext工厂未按租户绑定、租户解析不严谨。作者提出四道防线：全局查询过滤器兜底、上下文按租户绑定、中间件双重校验、自动化隔离测试，确保数据安全。强调多租户隔离是持续工程，非一蹴而就。]]></description><category></category></item><item><title><![CDATA[Ubuntu 22.04 Docker 从零部署全栈项目实录：Next.js + FastAPI + PostgreSQL 一次跑通]]></title><link>https://blog.csdn.net/SC2LQ/article/details/165621341</link><guid>https://blog.csdn.net/SC2LQ/article/details/165621341</guid><author>SC2LQ</author><pubDate>Wed, 16 Sep 2026 17:37:43 +0800</pubDate><description><![CDATA[在阿贝云免费服务器上，基于Ubuntu 22.04，通过配置阿里云与DaoCloud镜像源，成功部署Next.js+FastAPI+PostgreSQL全栈项目。关键步骤包括：使用Docker CE官方源安装Docker及Compose插件、配置国内镜像加速器、优化Dockerfile（清华pip源、淘宝npm源）、编写生产级docker-compose.yml实现服务隔离与数据持久化，并通过健康检查验证服务可用性。全程避坑，可复用于其他国产网络环境部署。]]></description><category></category></item><item><title><![CDATA[MinIO 从入门到实战：开源高性能对象存储完全指南]]></title><link>https://blog.csdn.net/SC2LQ/article/details/165621649</link><guid>https://blog.csdn.net/SC2LQ/article/details/165621649</guid><author>SC2LQ</author><pubDate>Wed, 16 Sep 2026 17:36:30 +0800</pubDate><description><![CDATA[本文介绍了MinIO——一个开源、高性能、与AWS S3完全兼容的对象存储系统，适合管理图片、视频、日志等非结构化数据。文章详细讲解了其核心特性：高并发性能、S3兼容、云原生支持、纠删码数据保护及极致轻量。手把手演示了在Windows、Linux、macOS及Docker环境下的安装部署流程，并提供常见问题解决方案。强调其免费开源、数据自主可控的优势，适用于开发测试、企业生产及混合云架构，是替代公有云存储的理想选择。]]></description><category></category></item><item><title><![CDATA[告别影楼和付费 App，5 分钟本地搭一个证件照自由平台｜HivisionIDPhotos 开箱实测]]></title><link>https://blog.csdn.net/SC2LQ/article/details/164329085</link><guid>https://blog.csdn.net/SC2LQ/article/details/164329085</guid><author>SC2LQ</author><pubDate>Thu, 03 Sep 2026 11:12:26 +0800</pubDate><description><![CDATA[关于HivisionIDPhotos开源证件照工具的项目介绍、安装、使用评测。摘要要简短，不超过150字。包括核心卖点：本地离线、免费、隐私、规格齐全、CPU可跑，以及一个小坑和推荐。&lt;/think&gt;摘要：HivisionIDPhotos是一款开源证件照工具，纯本地离线运行，免费保护隐私，支持智能抠图、换底色、排版、美颜，CPU即可跑。内置一寸/二寸/护照等规格与多种模型。安装时需注意Gradio6.x兼容性小坑。实测效果]]></description><category></category></item><item><title><![CDATA[ABP vNext 框架系列第1篇：企业级 .NET 开发，别再从头造轮子了]]></title><link>https://blog.csdn.net/SC2LQ/article/details/160505041</link><guid>https://blog.csdn.net/SC2LQ/article/details/160505041</guid><author>SC2LQ</author><pubDate>Sun, 23 Aug 2026 22:55:56 +0800</pubDate><description><![CDATA[ABPvNext框架是企业级开发的利器，它内置了60%的通用功能模块，让开发者可以专注于业务逻辑。框架提供模块化开发、领域驱动设计支持、开箱即用的认证授权、多租户、审计日志等核心功能，大幅减少重复编码工作。文章通过图书管理模块示例，展示了从实体定义到API暴露的完整开发流程，并提供了5分钟快速上手指南。ABPvNext通过分层架构和代码生成工具，显著提升开发效率，特别适合ERP、CRM等企业级应用开发。]]></description><category></category></item></channel></rss>