每个 .NET 库的实现链接
在相关标题下找到每个库的实施链接。
1- Mediator
用例:实现用于分离读取和写入操作的 CQRS 模式。
优点: 简化代码结构,促进单一责任。
根据 Microsoft Docs:
CQRS 代表命令和查询责任分离,这是一种将数据存储的读取和更新操作分开的模式。
通过简单的解释了解有关设计模式的更多信息,例如 Facade Pattern、Null Object Pattern、Adapter Design Pattern、Decorator Pattern、Service Locator Pattern 和 Repository Design Patterns
2- Dapper
用例:用于将数据库结果映射到对象的微 ORM。
优点: 重量轻,易于使用。
花絮: 当您需要具有更改跟踪和迁移等高级功能的功能齐全的 ORM 时,您可以使用 Entity Framework。当我必须编写包含大量表和复杂联接的冗长 SQL 查询时,Dapper 是我的首选。
3- Serilog
用例:用于简单和结构化日志记录的日志记录框架 (Serilog)
优点: 灵活,支持各种 sink (40+ sink)
花絮:如果您需要更传统的日志记录框架,请使用 NLog。
4- Bogus
使用案例:生成用于测试和开发的虚假数据。
优点: 易于使用、可定制的数据生成。
花絮:对于简单的应用程序,我宁愿创建我的自定义 bogus 实现,而不是使用库。
5- Fluent Validation
用例:以 Fluent 界面样式验证模型。
优点: 语法清晰,易于维护。
花絮:在内置属性就足够的情况下,使用 Data Annotations 来满足更简单的验证需求。
6- Refit
用例 : 简化 .NET 应用程序中的 HTTP API 调用。
优点 : 减少用于发出 HTTP 请求的样板代码。
花絮:在后台改装使用 HttpClient
7- Health Checks
使用案例**:**监控应用程序和服务的运行状况
优点**:** 提供一种标准化的方式来观察服务的状态,它可以与警报监控工具集成。此外,它还有助于确保应用程序的可靠性和可用性。
**8,9- Hangfire and quartz
(https://mwaseemzakir.com/newsletters/episode3/)
用例:后台作业处理。
优点: 可靠、易于安排作业,并且在复杂场景中很有帮助。
琐碎知识:将后台服务用于简单的使用案例。
10- Noda Time
用例:高级日期和时间处理。
优点: 全面,很好地处理时区。
琐事:用于不需要高级日期时间处理的简单应用程序。顺便说一句,Jon Skeet 是 Noda Time 图书馆的所有者System.DateTime
11- Autofac
用例:依赖关系注入容器。
优点: 灵活,支持高级方案。
琐碎知识:使用 Microsoft.Extensions.DependencyInjection 来满足更简单的依赖关系注入需求。
12- MiniProfiler
用例:应用程序的速度分析。
优点: 易于集成,提供详细的见解。
琐事:如果需要更全面的监视,请使用 Application Insights。
13- Mapster
用例:对象到对象的映射。
优点:减少样板代码,并提高可维护性。
14- NSubstitute
用例:用于单元测试的模拟框架。
优点: 易于设置,支持复杂的场景。
花絮:我是 Moq 的忠实粉丝,但我退出了,因为他们正在悄悄收集用户的数据
15- System.Text.Json
用例:JSON 序列化/反序列化。
优点: 成熟、应用广泛、灵活、性能更好
花絮:NewtonSoft.Json 也是一个不错的选择,但我更喜欢 System.Text.Json,因为它的性能更好。
16- BenchmarkDotNet
用例:代码的速度测量。
优点: 准确,易于使用。
花絮:对于简单的检查来说,这可能有点矫枉过正。
17- Swagger
使用案例:API 文档和测试。
优点: 交互式文档,易于使用。
花絮:使用 Postman 桌面应用程序进行 API 测试和文档编制,无需集成解决方案。
18- SignalR
用例:实时 Web 功能(例如,聊天应用程序)。
优点: 简化实时通信,并支持各种传输。
如果您需要一种更底层的实时通信方法,而不需要框架的开销,请使用 Web Sockets。
如果你喜欢我的文章,请给我一个赞!谢谢