首页
C&C++
C#语言
Java
Python
人工智能
Web前端
数据库
面试笔记
其它
软件推荐
搜索
.NET 10 Minimal API 终获原生验证支持:告别手动验证,拥抱数据注解
Minimal API 是一种新的、轻量级的构建 Web API 的方法,无需额外的依赖项或样板代码。端点直接定义在 Program.cs 中,使得设置快速简单,代码量更少。然而,有一段时间,Minimal API 缺乏对过滤器和验证的支持。最初,如果我们想要验证请求,必须在端点主体内部手动进...
9-23 14:14
148
.NET AI集成新范式:Semantic Kernel与Extensions.AI如何强强联合
大多数.NET开发人员都面临同样的AI集成难题:如何构建生产就绪的AI功能,同时避免供应商锁定或重复编排模式?两项微软技术可以优雅地解决这个问题。Semantic Kernel 解决编排问题——它是一个开源SDK,可帮助您在.NET(以及Python/Java)中构建提示词、调用函数/插件并...
9-23 14:12
156
告别过时写法!5个现代C#技巧让你的代码更简洁、更安全
C#已经存在了二十多年,每个新版本都会悄悄加入一些特性,让日常编码更简洁、更安全、更优雅。问题是大多数开发者还停留在五年前学到的编码方式中。他们还在不停地输入 using (...) {},用命名空间的大括号堆砌文件,或者忘记空安全性和必需属性存在的意义。本文讨论了5...
9-23 14:6
146
.NET后台处理完全指南:从IHostedService到队列架构的实战策略
并非应用程序中的所有工作都应在HTTP请求期间完成。长时间运行的任务、计划作业、重试队列、事件处理和定期维护更适合在后台处理。在.NET中,后台处理可以通过以下方式实现:IHostedServiceBackgroundServiceChannel 或 ConcurrentQueue基于计时器的调度消息代理(Rabbi...
9-23 14:4
154
超越.Where和.Select:7个高级LINQ模式,让.NET开发效能飙升
如果你是资深.NET开发者,肯定熟悉基础操作:.Where、.Select,甚至可能用过.GroupBy。但LINQ的深度远不止于此。本文不讨论简单内容——我们将深入探索那些不常见但你应该掌握的实用模式。🧰 1. 自定义查询操作符——一次编写,随处使用你是否在各个项目中重复某些操...
9-23 14:1
169
从800ms到160ms!事件溯源如何让我们的电商平台性能提升5倍
上个季度,我们的电商平台几乎陷入瘫痪。 写入操作平均耗时高达800毫秒,在高峰时段,超时问题会像瀑布一样在整个系统中蔓延。传统的CRUD操作及其复杂的联表查询让我们苦不堪言。随后我们实施了事件溯源。 这不是教科书式的版本,而是一种更务实的方法,使我们的写入性...
9-23 13:59
152
.NET 9全局异常处理终极指南:从传统中间件到现代IExceptionHandler的优雅演进
全局异常处理对于创建健壮、安全且可维护的.NET应用程序至关重要。.NET 9提供了多种复杂的方法来优雅地处理异常,从传统的自定义中间件到现代的IExceptionHandler接口。本综合指南探讨了提供一致错误响应、适当日志记录和增强安全性的优雅解决方案。.NET中错误处理的演...
9-23 13:56
420
实战指南:在.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
431
告别过时写法!5个现代C#编码技巧让你的代码更高效安全
.NET已经进化,你的编码方式也该与时俱进。如果你还在像2015年那样随处使用Tuple和dynamic,这篇文章就是你的警钟。这些不是语法噱头,而是资深工程师应该依赖的实用习惯,用于编写快速、安全且可维护的代码。忽视它们,后果自负。下面分享5个改变我编写.NET方式的代码...
9-23 13:44
386
告别臃肿Switch Case!用字典+委托实现优雅的业务逻辑分发
在实际项目中,我们经常会遇到需要使用switch case的情况,而这些switch语句会随着时间推移不断增长,变得难以管理。让我们先理解问题考虑以下代码:using System;class Program{ static void ProcessOrder(string orderType) { switch (orderType) ...
9-23 13:42
358
<
1
2
3
4
5
6
7
8
9
10
…
>
>>
阅读排行
深入WPF数据绑定:Converter...
4623
C#异步定时器:精准定期执行...
4616
WPF应用中融入ASP.NET Core...
3899
在C# .NET 8中使用MediatR实...
3733
精准数字处理:C#中四舍五入...
3636
.NET Core 中集成Dapper高级...
3275
延迟等待的艺术:C#中Task.D...
3252
串口通信利器:RJCP.DLL.Ser...
3317
.NET 性能分析:.NET 8 中的...
3105
轻松上传:C#中HTTP POST mu...
3315
WPF中轻松生成动态图表:实...
3136
C# 中的并发性:使用 Blocki...
2949
C#中轻松实现二维码和条形码...
2918
C#屏幕截图:轻松捕获活动窗...
2994
深入了解SOAPCore:在.NET 6...
2896
在 .NET8 中通过 RabbitMQ实...
2754
MediatR让进程内通信如此简...
3912
C#串口通讯实战:基础功能及...
2769
ASP.NET 后端开发:全面的路...
2608
WPF中轻松操控GIF动画:WpfA...
2702
解决WPF界面卡死等待问题:...
3754
ASP .NET Core 8+ 中的全局...
2520
.net中OpenCVSharp+Zxing读...
2637
Microsoft.Extensions.Loggi...
2525
实现WPF多语言支持:简单灵...
2578
.NET —ToList 和 ToArray ...
2439
解密C#中允许HttpClient使用...
2442
C#中Task.Run怎么用?能解决...
2549
C#文件编码检测:轻松解析文...
2413
WPF神器揭秘:一键截图,轻...
2382
还在到处加异常日志记录?试...
2486
.NET 9中ToList 和 ToArray ...
2362
.NET 中的 UUID 和 ULID:最...
2354
掌握System.Text.Json中的多...
2458
轻松实现.NET应用自动更新:...
2450
打造真实感十足的速度表盘:...
2445
掌握ImageSharp:图像处理的...
2439
在 ASP.NET Core Web API 中...
2314
深入理解WPF中的Dispatcher...
2423
使用OpenXML在.NET 6中导出E...
2407
ASP.NET Core .NET 8 中间件...
2241
C# .NET 8中的自动映射器Aut...
2165
C# 中的弱事件 — 如何避免...
2150
ZLogger v2 架构:利用 .NET...
2133
解密C# Socket通信:克服粘...
2223
WPF魔法:轻松实现依赖注入...
3329
WPF开发新境界:MVVM设计模...
2161
FluentFTP实战:轻松操控FTP...
2145
WPF大展示专业指南:轻松实...
2209
C# Socket通信:灵活传输DTO...
1986