首页
C&C++
C#语言
Java
Python
人工智能
Web前端
数据库
面试笔记
其它
软件推荐
搜索
5个提升C#代码性能与可维护性的高级技巧:告别低效编码,打造现代.NET应用
现代.NET开发不仅要求代码功能正确,更需追求智能、高效、内存可控且具备扩展性的实现。无论您是为了优化性能还是可维护性,.NET(尤其是最新版本的C#)提供了远超基础的工具。然而,许多开发者仍在使用2010年代初的集合和多线程编码方式。以下五个技巧并非语法糖,而是...
8-26 19:27
31
不修改一行代码,为你的 .NET Core API 削减 200ms 延迟:基础设施、头部与缓存优化实战
不修改一行代码,仅通过优化基础设施、头部和缓存,即可为你的 .NET Core API 削减 200ms 的延迟。🧠 真正的性能瓶颈并不在我的代码中和大多数开发者一样,当我的 .NET Core API 开始感觉迟缓时,我首先想到了我的 IDE。我分析了控制器(Controller)。我检查了 Entit...
8-26 19:14
31
十年 .NET 老兵的血泪教训:这 17 个实战经验让你少走弯路
十年的 .NET 开发经验教给你的不仅是语法——更是生存技能。我维护过看似靠胶带粘合的代码库,曾在凌晨三点调试竞态条件,也曾因终于理解了一个空引用异常而欢呼。这不是又一份“最佳实践”清单,而是经过实战检验的真理——用惨痛教训换来的经验,让你不必重蹈覆辙。让...
8-26 19:14
29
告别 .NET Framework 陈旧习惯!这 7 个现代 C# 实践让你的代码更高效、更安全
.NET Core 和 .NET 8+ 带来了全新的应用构建方式——但许多开发者(和团队)仍被困在 .NET Framework 的习惯中。资历不等于现代化某些代码能运行,并不代表它应该出现在你 2025 年的代码库里。如果你一直在盲目复制资深同事的代码,可能会在不知不觉中导致应用性能更低...
8-26 18:58
38
.NET 9 架构对决:清洁架构 vs. 垂直切片架构,谁更适合现代开发?
基于 .NET 9 的最新发展以及 .NET 社区不断演进的架构模式,让我们探讨这两种流行的方法如何得到增强,以及哪种最适合现代应用程序开发。.NET 9:两种架构的游戏规则改变者.NET 9 引入了显著的改进,使两种架构方法都受益:性能增强.NET 9 最小 API 性能:每秒请求数提...
8-26 18:57
41
整洁代码的幻象:我们为何最终放弃了 MediatR
起初,MediatR 如同魔法一般。它解耦了一切。不再有服务之间的面条式耦合。只有整洁的 IMediator.Send() 调用,像行为良好的无人机一样穿梭于我们的处理程序之间。有一段时间,它工作得很好——尤其是在我们早期的清洁架构(Clean Architecture)实验中。但在我们开发第...
8-26 18:52
33
C#通道实战指南:有界VS无界,高并发场景下的正确选择
构建可靠、可扩展和高性能的 .NET 应用程序,关键在于如何处理并发和数据处理。C# 通道 (Channels) 提供了一种新颖、现代的方法,用于在 .NET 中构建安全、异步和高吞吐量的管道。通道允许你创建内存中的生产者-消费者队列,这些队列可以自然地跨异步工作流和后台服务进...
8-7 8:23
45
微软警告:滥用 ConfigureAwait(false) 非性能妙招,而是静默破坏应用的陷阱
许多 .NET 开发者盲目遵循这条“最佳实践”:await SomeAsyncCall().ConfigureAwait(false);常被称为“9字符错误”(非字面意义),ConfigureAwait(false) 是一行微小的代码,若使用不当,可能静默破坏异步上下文。因为有人曾告诉他们:“它能避免上下文切换,所以肯定...
8-7 8:17
47
5个迹象表明你的C#代码需要“升级”了
在简洁、现代的.NET开发中,有些C#特性至关重要,忽视它们无疑暴露了经验的欠缺。这些并非花哨的新玩具,而是能立即使初级代码与高级代码拉开差距的实用工具。如果你仍在用老方法做事,那么资深开发者对你投来异样目光时,可别感到惊讶。下面我们来看看5个表明你的C#代...
8-7 8:15
41
PostgreSQL与EF Core无缝集成指南:从基础设置到高级封装
根据最新的Stack Overflow调查,PostgreSQL是目前最受欢迎的数据库。当然,作为一款多功能的ORM框架,EF Core与PostgreSQL能很好地配合使用。不过,要将这两者集成起来,还需要完成几个步骤,过程中也有一些注意事项。在本文中,我们将一起走完这些步骤,并实现几个辅助...
8-2 8:29
41
<<
<
…
3
4
5
6
7
8
9
10
11
12
…
>
>>
阅读排行
深入WPF数据绑定:Converter...
3448
C#异步定时器:精准定期执行...
3427
WPF应用中融入ASP.NET Core...
2736
在C# .NET 8中使用MediatR实...
2533
.NET Core 中集成Dapper高级...
2164
延迟等待的艺术:C#中Task.D...
2120
精准数字处理:C#中四舍五入...
2409
.NET 性能分析:.NET 8 中的...
1990
串口通信利器:RJCP.DLL.Ser...
2101
WPF中轻松生成动态图表:实...
2077
轻松上传:C#中HTTP POST mu...
2124
C# 中的并发性:使用 Blocki...
1812
C#中轻松实现二维码和条形码...
1805
C#屏幕截图:轻松捕获活动窗...
1904
深入了解SOAPCore:在.NET 6...
1786
在 .NET8 中通过 RabbitMQ实...
1635
C#串口通讯实战:基础功能及...
1740
MediatR让进程内通信如此简...
2721
ASP.NET 后端开发:全面的路...
1474
WPF中轻松操控GIF动画:WpfA...
1586
解决WPF界面卡死等待问题:...
2668
实现WPF多语言支持:简单灵...
1522
Microsoft.Extensions.Loggi...
1431
ASP .NET Core 8+ 中的全局...
1397
.net中OpenCVSharp+Zxing读...
1510
.NET —ToList 和 ToArray ...
1374
C#中Task.Run怎么用?能解决...
1464
还在到处加异常日志记录?试...
1448
.NET 9中ToList 和 ToArray ...
1309
解密C#中允许HttpClient使用...
1314
打造真实感十足的速度表盘:...
1422
掌握System.Text.Json中的多...
1419
WPF神器揭秘:一键截图,轻...
1286
深入理解WPF中的Dispatcher...
1365
掌握ImageSharp:图像处理的...
1360
C#文件编码检测:轻松解析文...
1248
轻松实现.NET应用自动更新:...
1356
使用OpenXML在.NET 6中导出E...
1349
在 ASP.NET Core Web API 中...
1214
.NET 中的 UUID 和 ULID:最...
1204
C# 中的弱事件 — 如何避免...
1186
ASP.NET Core .NET 8 中间件...
1182
ZLogger v2 架构:利用 .NET...
1154
C# .NET 8中的自动映射器Aut...
1147
WPF魔法:轻松实现依赖注入...
2355
解密C# Socket通信:克服粘...
1245
FluentFTP实战:轻松操控FTP...
1197
WPF开发新境界:MVVM设计模...
1185
WPF大展示专业指南:轻松实...
1245
C# Socket通信:灵活传输DTO...
1053