会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
chester
博客园
首页
新随笔
联系
订阅
管理
<
2025年2月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1
2
3
4
5
6
7
8
欢迎大家扫下面的二维码关注微信公众号号chestershare,微信公众号名称:chester技术分享
昵称:
chester·chen
园龄:
8年4个月
粉丝:
202
关注:
15
+加关注
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
合集
.NET8(9)
AI(1)
.NET Core(20)
C#(3)
前端优化(2)
Orleans(9)
Avalonia(8)
跨平台(2)
K8S(3)
python(2)
Go(1)
.NET最佳实践(3)
随笔分类
.NET Core+(92)
ansible(4)
Avalonia(7)
c#(52)
CentOS(25)
Dapr(16)
docker(28)
ELK(6)
gateway(7)
Go(1)
Hadoop(5)
jenkins(14)
K8S(19)
Orleans(8)
python(7)
RabbitMQ(6)
Reids(4)
RPC(10)
测试(2)
跨平台(2)
前端优化(2)
更多
随笔档案
2025年2月(5)
2025年1月(3)
2024年12月(7)
2024年10月(2)
2024年9月(5)
2024年8月(1)
2024年4月(9)
2024年3月(20)
2024年1月(1)
2023年12月(1)
2023年11月(5)
2023年4月(2)
2023年3月(2)
2023年1月(2)
2022年11月(4)
2022年10月(1)
2022年8月(3)
2022年7月(1)
2022年6月(1)
2022年5月(8)
2022年4月(2)
2022年3月(8)
2022年1月(1)
2021年12月(1)
2021年11月(5)
2021年10月(9)
2021年9月(11)
2021年6月(1)
2021年5月(1)
2021年4月(1)
2021年1月(2)
2020年12月(6)
2020年11月(8)
2020年9月(1)
2020年8月(2)
2020年7月(2)
2020年3月(1)
2020年2月(2)
2019年11月(2)
2019年10月(5)
2019年9月(15)
2019年8月(1)
2019年7月(2)
2019年6月(6)
2019年5月(6)
2019年4月(32)
2019年3月(4)
2019年1月(9)
2018年12月(9)
2018年11月(27)
2018年10月(4)
2018年9月(1)
2018年8月(6)
2018年7月(19)
2018年6月(42)
2018年5月(20)
2018年4月(41)
2018年3月(8)
2018年2月(11)
2018年1月(14)
2017年9月(2)
2017年8月(2)
更多
相册
back(17)
阅读排行榜
1. Vue执行方法,方法获取data值,设置data值,方法传值(71744)
2. jenkins pipeline中获取shell命令的标准输出或者状态(16058)
3. centos解决 pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.(9053)
4. Kafka与.net core(三)kafka操作(8912)
5. docker-compose 配置(8029)
评论排行榜
1. 为什么推荐在 .NET 中使用 YAML 配置文件(35)
2. Blazor WebAssembly + Grpc Web = 未来?(34)
3. Blazor WebAssembly的初次访问慢的优化(21)
4. 30分钟通过Kong实现.NET网关(15)
5. Blazor VS Vue(14)
推荐排行榜
1. 在 .NET 中使用 Tesseract 识别图片文字(19)
2. .NET分布式Orleans - 9 - 贪吃蛇项目演示(18)
3. Blazor VS Vue(15)
4. 30分钟通过Kong实现.NET网关(15)
5. Dapr + .NET Core实战(一) 基础概念与环境搭建(15)
最新评论
1. Re:.NET最佳实践:避免滥用Task.Run
@JeffLiang 可以试试用MediatR来实现...
--适龄请结婚
2. Re:.NET最佳实践:避免同步读取HttpRequest
异步不能提升响应速度
--jiulang
3. Re:.NET最佳实践:避免滥用Task.Run
赞同楼主的方法,很简单的单机程序用Queue/Channel解决,不过有消息丢失的风险,要保证消息不丢失,就是写入数据库,用一个后台Task去轮训消费/处理(及时性和性能瓶颈很明显)。 用独立的MQ中...
--LDMING
4. Re:.NET最佳实践:避免滥用Task.Run
@JeffLiang 如果不想用繁重的队列框架可以直接用自带Channel进行队列处理。...
--秦时明
5. Re:.NET最佳实践:避免滥用Task.Run
好的,感谢楼主回复。
--JeffLiang
2025年2月13日
.NET最佳实践:业务逻辑减少使用异常
摘要: 在 .NET 开发中,异常处理是保证应用健壮性的重要手段,但不应被滥用。 异常的引发和捕获相较于普通的代码逻辑性能较差,因此在热路径(频繁执行的代码路径)中,避免依赖异常来控制程序流是提升性能的关键之一。 为什么要减少异常的使用? 性能开销大:异常处理机制涉及堆栈回溯和额外的系统调用,可能显著影响性
阅读全文
posted @ 2025-02-13 09:51 chester·chen
阅读(403)
评论(0)
推荐(4)
编辑
2025年2月10日
.NET最佳实践:避免同步读取HttpRequest
摘要: 为什么要避免同步读取 ASP.NET Core 中的所有 I/O 操作都是异步的。服务器实现了 Stream 接口,该接口同时具备同步和异步的方法。 在进行 I/O 操作时,应优先使用异步方法,以避免阻塞线程池的线程。 如果阻塞了线程池线程,可能会导致服务器无法处理更多请求,造成急剧性性能下降。 尤
阅读全文
posted @ 2025-02-10 09:26 chester·chen
阅读(659)
评论(1)
推荐(6)
编辑
2025年2月9日
.NET最佳实践:避免滥用Task.Run
摘要: 在 C# 中,Task.Run 是用来在后台线程中执行异步任务的一个常见方法。 它非常适用于需要并行处理的场景,但如果不加以谨慎使用,可能会导致额外的线程池调度,进而影响程序的性能。 什么是线程池? 线程池是 .NET 中的一种优化机制,它通过复用固定数量的线程来减少线程创建和销毁的开销。 线程池中
阅读全文
posted @ 2025-02-09 09:06 chester·chen
阅读(824)
评论(8)
推荐(5)
编辑
2025年2月8日
.NET最佳实践:webapi返回IAsyncEnumerable提升性能
摘要: 什么是IAsyncEnumerable IAsyncEnumerable<T> 是 .NET 中用于表示异步数据流的接口。 它允许你逐个异步地获取数据项,而不是将所有数据一次性加载到内存中。这样可以减少内存占用,尤其在处理大量数据时更加高效。 与 IEnumerable<T> 不同,IEnumera
阅读全文
posted @ 2025-02-08 11:56 chester·chen
阅读(637)
评论(2)
推荐(4)
编辑
2025年2月6日
.NET中优雅使用Patch: JsonPatch
摘要: 引言 在现代 Web API 开发中,我们经常需要对资源进行部分更新(Partial Update)。传统的 PUT 请求会要求发送整个对象,而 PATCH 请求可以仅发送需要更新的字段。ASP.NET Core 提供了 JsonPatchDocument<T> 来简化这一操作。 什么是 JsonP
阅读全文
posted @ 2025-02-06 09:06 chester·chen
阅读(576)
评论(2)
推荐(0)
编辑
2025年1月21日
.NET 中 Logger 常被忽视的方法 BeginScope
摘要: BeginScope 方法是 .NET 中 ILogger 接口的一部分,用于创建日志记录的作用域(Scope)。这种作用域可以将特定的上下文信息包含在日志中,从而提高日志的可读性和调试效率。 配置日志包含作用域信息 首先,需要在日志配置中启用包含作用域信息。以 appsettings.json 为
阅读全文
posted @ 2025-01-21 09:11 chester·chen
阅读(577)
评论(1)
推荐(5)
编辑
2025年1月10日
AsyncLocal的妙用
摘要: AsyncLocal<T>是一个在.NET中用来在同步任务和异步任务中保持全局变量的工具类。 它允许你在不同线程的同一个对象中保留一个特定值,这样你可以在不同的函数和任务中访问这个值。 这是在实现异步任务中维持一致性和优雅性的一种重要手段。 用法 创建一个AsyncLocal实例: 你可以使用Asy
阅读全文
posted @ 2025-01-10 15:24 chester·chen
阅读(620)
评论(2)
推荐(9)
编辑
2025年1月8日
在 .NET 中使用 Tesseract 识别图片文字
摘要: 1. 什么是 Tesseract Tesseract 是一个强大的字符识别 (OCR) 工具。它最初由 HP 发布,现在由 Google 和学术社区共同维护和开发。 Tesseract 支持多种语言和格式,能够高效地识别图片中的文字。 2. 如何安装 Tesseract 要在 .NET 项目中使用
阅读全文
posted @ 2025-01-08 08:46 chester·chen
阅读(1939)
评论(6)
推荐(19)
编辑
2024年12月27日
Scoop: 开发者多环境管理利器
摘要: Scoop是什么? Scoop 是一个基于 Windows 的包管理器,能够帮助开发者高效管理开发环境和应用程序。 它推荐通过命令行进行包的安装、更新和卸载,同时提供了简单易用的包组织方式,透明化了安装和管理的过程。 与传统的 Windows 应用安装比较,Scoop 允许用户使用命令行将应用安装到
阅读全文
posted @ 2024-12-27 08:09 chester·chen
阅读(557)
评论(0)
推荐(5)
编辑
2024年12月25日
.NET 9 增强 OpenAPI 规范,不再内置swagger
摘要: 在 .NET 9 的更新中,微软增强了原生 OpenAPI。这一变化表明 .NET 正在更加拥抱开放标准,同时让开发者体验更加轻松高效。本文将探讨为何进行这一更改、OpenAPI 的优势,以及如何在 .NET 9 中使用 OpenAPI。 为什么不再内置 Swagger? 1. 标准化的需求 Swa
阅读全文
posted @ 2024-12-25 09:21 chester·chen
阅读(1753)
评论(8)
推荐(4)
编辑
下一页
点击右上角即可分享