首页
C&C++
C#语言
Java
Python
人工智能
Web前端
数据库
面试笔记
其它
软件推荐
搜索
.NET流操作五大误区:从性能瓶颈到高效编程的进阶指南
谈到.NET中的流处理,大多数开发者只是简单地使用using var stream = new FileStream(...)就草草了事。没错,这样确实能工作。但如果你止步于此,就意味着在性能、安全性和可读性上损失了大量潜力。流是.NET中最基础的构建块之一,而使用流的方式决定了你的代码是优雅可...
9-23 14:17
873
.NET 10 Minimal API 终获原生验证支持:告别手动验证,拥抱数据注解
Minimal API 是一种新的、轻量级的构建 Web API 的方法,无需额外的依赖项或样板代码。端点直接定义在 Program.cs 中,使得设置快速简单,代码量更少。然而,有一段时间,Minimal API 缺乏对过滤器和验证的支持。最初,如果我们想要验证请求,必须在端点主体内部手动进...
9-23 14:14
383
.NET AI集成新范式:Semantic Kernel与Extensions.AI如何强强联合
大多数.NET开发人员都面临同样的AI集成难题:如何构建生产就绪的AI功能,同时避免供应商锁定或重复编排模式?两项微软技术可以优雅地解决这个问题。Semantic Kernel 解决编排问题——它是一个开源SDK,可帮助您在.NET(以及Python/Java)中构建提示词、调用函数/插件并...
9-23 14:12
386
告别过时写法!5个现代C#技巧让你的代码更简洁、更安全
C#已经存在了二十多年,每个新版本都会悄悄加入一些特性,让日常编码更简洁、更安全、更优雅。问题是大多数开发者还停留在五年前学到的编码方式中。他们还在不停地输入 using (...) {},用命名空间的大括号堆砌文件,或者忘记空安全性和必需属性存在的意义。本文讨论了5...
9-23 14:6
377
.NET后台处理完全指南:从IHostedService到队列架构的实战策略
并非应用程序中的所有工作都应在HTTP请求期间完成。长时间运行的任务、计划作业、重试队列、事件处理和定期维护更适合在后台处理。在.NET中,后台处理可以通过以下方式实现:IHostedServiceBackgroundServiceChannel 或 ConcurrentQueue基于计时器的调度消息代理(Rabbi...
9-23 14:4
402
超越.Where和.Select:7个高级LINQ模式,让.NET开发效能飙升
如果你是资深.NET开发者,肯定熟悉基础操作:.Where、.Select,甚至可能用过.GroupBy。但LINQ的深度远不止于此。本文不讨论简单内容——我们将深入探索那些不常见但你应该掌握的实用模式。🧰 1. 自定义查询操作符——一次编写,随处使用你是否在各个项目中重复某些操...
9-23 14:1
404
从800ms到160ms!事件溯源如何让我们的电商平台性能提升5倍
上个季度,我们的电商平台几乎陷入瘫痪。 写入操作平均耗时高达800毫秒,在高峰时段,超时问题会像瀑布一样在整个系统中蔓延。传统的CRUD操作及其复杂的联表查询让我们苦不堪言。随后我们实施了事件溯源。 这不是教科书式的版本,而是一种更务实的方法,使我们的写入性...
9-23 13:59
383
.NET 9全局异常处理终极指南:从传统中间件到现代IExceptionHandler的优雅演进
全局异常处理对于创建健壮、安全且可维护的.NET应用程序至关重要。.NET 9提供了多种复杂的方法来优雅地处理异常,从传统的自定义中间件到现代的IExceptionHandler接口。本综合指南探讨了提供一致错误响应、适当日志记录和增强安全性的优雅解决方案。.NET中错误处理的演...
9-23 13:56
695
实战指南:在.NET Core API中无缝集成机器学习模型(ML.NET vs ONNX双路径详解)
你使用C#构建应用,发布.NET Core API。现在你需要一个可以训练、保存并从应用调用的轻量模型,而无需折腾Python服务器或黑盒解决方案。本指南展示两条清晰路径:路径A:使用ML.NET训练文本模型,打包为.zip文件并在ASP.NET Core中加载路径B:在ONNX中使用现代嵌入模型...
9-23 13:48
716
告别过时写法!5个现代C#编码技巧让你的代码更高效安全
.NET已经进化,你的编码方式也该与时俱进。如果你还在像2015年那样随处使用Tuple和dynamic,这篇文章就是你的警钟。这些不是语法噱头,而是资深工程师应该依赖的实用习惯,用于编写快速、安全且可维护的代码。忽视它们,后果自负。下面分享5个改变我编写.NET方式的代码...
9-23 13:44
680
<
1
2
3
4
5
6
7
8
9
10
…
>
>>
阅读排行
深入WPF数据绑定:Converter...
5826
C#异步定时器:精准定期执行...
5944
WPF应用中融入ASP.NET Core...
5052
在C# .NET 8中使用MediatR实...
4929
精准数字处理:C#中四舍五入...
4835
.NET Core 中集成Dapper高级...
4420
延迟等待的艺术:C#中Task.D...
4368
串口通信利器:RJCP.DLL.Ser...
4427
.NET 性能分析:.NET 8 中的...
4245
轻松上传:C#中HTTP POST mu...
4463
WPF中轻松生成动态图表:实...
4213
C# 中的并发性:使用 Blocki...
4084
C#中轻松实现二维码和条形码...
4016
C#屏幕截图:轻松捕获活动窗...
4100
深入了解SOAPCore:在.NET 6...
4075
MediatR让进程内通信如此简...
5087
在 .NET8 中通过 RabbitMQ实...
3859
Microsoft.Extensions.Loggi...
3784
ASP.NET 后端开发:全面的路...
3727
C#串口通讯实战:基础功能及...
3837
WPF中轻松操控GIF动画:WpfA...
3809
ASP .NET Core 8+ 中的全局...
3656
.net中OpenCVSharp+Zxing读...
3767
解决WPF界面卡死等待问题:...
4826
解密C#中允许HttpClient使用...
3580
C#文件编码检测:轻松解析文...
3578
.NET —ToList 和 ToArray ...
3555
实现WPF多语言支持:简单灵...
3677
使用OpenXML在.NET 6中导出E...
3660
C#中Task.Run怎么用?能解决...
3654
.NET 9中ToList 和 ToArray ...
3527
WPF神器揭秘:一键截图,轻...
3507
在 ASP.NET Core Web API 中...
3501
还在到处加异常日志记录?试...
3602
掌握System.Text.Json中的多...
3592
.NET 中的 UUID 和 ULID:最...
3462
掌握ImageSharp:图像处理的...
3567
打造真实感十足的速度表盘:...
3566
轻松实现.NET应用自动更新:...
3560
深入理解WPF中的Dispatcher...
3531
ASP.NET Core .NET 8 中间件...
3372
C# 中的弱事件 — 如何避免...
3276
C# .NET 8中的自动映射器Aut...
3223
ZLogger v2 架构:利用 .NET...
3174
FluentFTP实战:轻松操控FTP...
3219
WPF魔法:轻松实现依赖注入...
4305
解密C# Socket通信:克服粘...
3192
WPF开发新境界:MVVM设计模...
3189
WPF大展示专业指南:轻松实...
3234
C# Socket通信:灵活传输DTO...
3011