首页
C&C++
C#语言
Java
Python
人工智能
Web前端
数据库
面试笔记
其它
软件推荐
搜索
整洁代码的幻象:我们为何最终放弃了 MediatR
起初,MediatR 如同魔法一般。它解耦了一切。不再有服务之间的面条式耦合。只有整洁的 IMediator.Send() 调用,像行为良好的无人机一样穿梭于我们的处理程序之间。有一段时间,它工作得很好——尤其是在我们早期的清洁架构(Clean Architecture)实验中。但在我们开发第...
8-26 18:52
8
C#通道实战指南:有界VS无界,高并发场景下的正确选择
构建可靠、可扩展和高性能的 .NET 应用程序,关键在于如何处理并发和数据处理。C# 通道 (Channels) 提供了一种新颖、现代的方法,用于在 .NET 中构建安全、异步和高吞吐量的管道。通道允许你创建内存中的生产者-消费者队列,这些队列可以自然地跨异步工作流和后台服务进...
8-7 8:23
14
微软警告:滥用 ConfigureAwait(false) 非性能妙招,而是静默破坏应用的陷阱
许多 .NET 开发者盲目遵循这条“最佳实践”:await SomeAsyncCall().ConfigureAwait(false);常被称为“9字符错误”(非字面意义),ConfigureAwait(false) 是一行微小的代码,若使用不当,可能静默破坏异步上下文。因为有人曾告诉他们:“它能避免上下文切换,所以肯定...
8-7 8:17
13
5个迹象表明你的C#代码需要“升级”了
在简洁、现代的.NET开发中,有些C#特性至关重要,忽视它们无疑暴露了经验的欠缺。这些并非花哨的新玩具,而是能立即使初级代码与高级代码拉开差距的实用工具。如果你仍在用老方法做事,那么资深开发者对你投来异样目光时,可别感到惊讶。下面我们来看看5个表明你的C#代...
8-7 8:15
16
PostgreSQL与EF Core无缝集成指南:从基础设置到高级封装
根据最新的Stack Overflow调查,PostgreSQL是目前最受欢迎的数据库。当然,作为一款多功能的ORM框架,EF Core与PostgreSQL能很好地配合使用。不过,要将这两者集成起来,还需要完成几个步骤,过程中也有一些注意事项。在本文中,我们将一起走完这些步骤,并实现几个辅助...
8-2 8:29
12
.NET 9/10 重磅升级:揭秘七大变革性新特性
.NET 9/10 是一个重大版本更新,带来了广泛的增强功能,从性能优化到旨在简化开发并改进跨平台和云原生应用程序的新特性。本文将探讨 .NET 9/10 中一些最重要的更新,包括 C# 的变更、性能改进、增强的工具链等等。1. ASP.NET Core 改进ASP.NET Core 在 .NET 9/10 中持...
8-2 8:28
15
C#异步编程五大陷阱:躲开这些坑,别让async/await拖垮你的应用
大多数C#开发者使用async/await是因为它简单易用。它看起来像同步代码,感觉安全,而且效果很好——直到你的应用上线生产环境,性能开始显著下降。关键在于:异步(Async)并非总是零成本的,滥用它可能导致线程池饥饿(thread pool starvation)、内存压力(memory pre...
8-2 8:21
16
何时使用ASP.NET Core中间件,何时它会成为代价高昂的反模式
中间件是ASP.NET Core中最受欢迎的功能之一。它让你能够集中控制请求/响应处理,而且极其灵活。只需几行app.Use(...)代码,你就能实现日志记录、身份验证或CORS功能。但问题在于:中间件并非总是解决问题的最佳工具。试图在中间件中塞入过多逻辑会导致代码混乱、路由出...
8-2 8:20
14
PostgreSQL JSONB:关系数据库中的文档存储革命
还记得我第一次读到在数据库中存储JSON数据的场景。当时在一本纸质杂志(!)上初次接触NoSQL数据库概念,心想:这想法真奇怪,谁会选择用非表格格式存储数据?尽管最初持怀疑态度,好奇心还是驱使我尝试了一番。我使用的第一个NoSQL数据库是MongoDB,它采用BSON(二进制JS...
7-31 8:41
15
.NET 10 弹性服务构建:9 大容错模式实现系统自愈与高可用
在现代分布式系统中,故障虽不常发生,但一旦出现,可能导致整个系统崩溃。网络会抖动,数据库会停滞,外部 API 会限流。您的服务需要的不仅仅是错误处理,更需要弹性、自愈能力,以及对故障原因的清晰洞察。.NET 10 和 C# 12 为您提供了一流的工具——用于重试和熔断的...
7-31 8:34
16
<
1
2
3
4
5
6
7
8
9
10
…
>
>>
阅读排行
深入WPF数据绑定:Converter...
3255
C#异步定时器:精准定期执行...
3241
WPF应用中融入ASP.NET Core...
2575
在C# .NET 8中使用MediatR实...
2337
.NET Core 中集成Dapper高级...
2002
延迟等待的艺术:C#中Task.D...
1973
.NET 性能分析:.NET 8 中的...
1848
精准数字处理:C#中四舍五入...
2174
WPF中轻松生成动态图表:实...
1944
串口通信利器:RJCP.DLL.Ser...
1896
轻松上传:C#中HTTP POST mu...
1949
C# 中的并发性:使用 Blocki...
1674
C#屏幕截图:轻松捕获活动窗...
1774
C#中轻松实现二维码和条形码...
1636
C#串口通讯实战:基础功能及...
1621
深入了解SOAPCore:在.NET 6...
1599
在 .NET8 中通过 RabbitMQ实...
1442
MediatR让进程内通信如此简...
2582
ASP.NET 后端开发:全面的路...
1332
WPF中轻松操控GIF动画:WpfA...
1452
解决WPF界面卡死等待问题:...
2548
实现WPF多语言支持:简单灵...
1397
.net中OpenCVSharp+Zxing读...
1380
.NET —ToList 和 ToArray ...
1252
Microsoft.Extensions.Loggi...
1281
ASP .NET Core 8+ 中的全局...
1239
C#中Task.Run怎么用?能解决...
1347
还在到处加异常日志记录?试...
1337
打造真实感十足的速度表盘:...
1298
.NET 9中ToList 和 ToArray ...
1170
掌握System.Text.Json中的多...
1283
WPF神器揭秘:一键截图,轻...
1157
解密C#中允许HttpClient使用...
1168
掌握ImageSharp:图像处理的...
1243
深入理解WPF中的Dispatcher...
1229
轻松实现.NET应用自动更新:...
1227
C#文件编码检测:轻松解析文...
1114
使用OpenXML在.NET 6中导出E...
1195
在 ASP.NET Core Web API 中...
1072
ASP.NET Core .NET 8 中间件...
1071
.NET 中的 UUID 和 ULID:最...
1070
C# 中的弱事件 — 如何避免...
1064
解密C# Socket通信:克服粘...
1135
ZLogger v2 架构:利用 .NET...
1009
WPF魔法:轻松实现依赖注入...
2236
C# .NET 8中的自动映射器Aut...
1004
FluentFTP实战:轻松操控FTP...
1095
WPF开发新境界:MVVM设计模...
1071
WPF大展示专业指南:轻松实...
1141
C# Socket通信:灵活传输DTO...
956