C# 开源:7 个将改变你代码的 GitHub 仓库

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

C# 开源:面向 .NET 开发者的最佳 GitHub 仓库

\n\n

当我们谈论开源时,首先想到的是 Python、JavaScript 或 Go。但 C# 呢?许多人错误地认为 .NET 生态系统是封闭且专有的。事实上,C# 开源 蓬勃发展,GitHub 上充满了令人惊叹的项目。从强大的框架到优雅的实用工具,这里应有尽有,足以激发即使是最有经验的开发者的灵感。

\n\n

在本文中,我们不仅仅列出链接。我们将深入分析 GitHub 上最佳的 C# 仓库,提供真实的代码示例,展示如何使用它们,并解释为什么每个仓库都值得您关注。如果您正在使用 C# 编写代码,或者刚刚开始探索 .NET 世界,这篇文章就是为您准备的。

\n\n

为什么要学习 C# 开源项目?

\n\n

阅读他人的代码是提升技能的最佳方式。您可以看到他们如何解决实际问题、使用哪些模式以及如何优化性能。此外,GitHub 上的 C# 仓库 是现成解决方案的宝库。既然可以使用经过验证的库,何必重复造轮子呢?

\n\n

让我们深入探索最佳项目。我精选了 7 个真正改变游戏规则的仓库。

\n\n

1. Humanizer — 将代码转化为人类语言

\n\n

您是否曾经写过:DateTime.Now.AddDays(-3).ToShortDateString() 并想:“怎样才能让它更优雅?” Humanizer 正是实现这一目标的库。它将数字、日期、枚举甚至字节转换为可读的字符串。

\n\n

代码中的样子如下:

\n\n
using Humanizer;\n\nint number = 1234567;\nConsole.WriteLine(number.ToWords()); // 一百二十三万四千五百六十七\n\nDateTime birthday = new DateTime(1990, 5, 15);\nConsole.WriteLine(birthday.Humanize()); // 34 年前\n\nTimeSpan time = TimeSpan.FromDays(3).Add(TimeSpan.FromHours(5));\nConsole.WriteLine(time.Humanize()); // 3 天 5 小时
\n\n

这个 C# 开源项目 被数千家公司用于生产环境。它非常适合日志记录、用户界面和报告。仓库地址:github.com/Humanizr/Humanizer。

\n\n

2. FluentValidation — 简洁的验证规则

\n\n

数据验证是任何后端开发人员的痛点。FluentValidation 优雅地解决了这个问题:您以流畅的链式调用描述规则,而不是将检查分散到整个代码中。

\n\n

示例:

\n\n
public class UserValidator : AbstractValidator<User>\n{\n    public UserValidator()\n    {\n        RuleFor(user => user.Name)\n            .NotEmpty().WithMessage("姓名必填")\n            .Length(2, 50).WithMessage("姓名长度应在 2 到 50 个字符之间");\n\n        RuleFor(user => user.Email)\n            .EmailAddress().WithMessage("邮箱格式不正确");\n\n        RuleFor(user => user.Age)\n            .InclusiveBetween(18, 120).WithMessage("年龄应在 18 到 120 岁之间");\n    }\n}\n\n// 使用:\nvar validator = new UserValidator();\nvar result = validator.Validate(new User { Name = "A", Email = "test", Age = 15 });\n\nif (!result.IsValid)\n{\n    foreach (var error in result.Errors)\n        Console.WriteLine(error.ErrorMessage);\n}
\n\n

这是 GitHub 上最受欢迎的 C# 仓库 之一,拥有超过 10,000 颗星。它与 ASP.NET Core 集成,使代码更简洁。

\n\n

3. Polly — 轻松实现容错

\n\n

您的应用程序在数据库不可用时崩溃?Polly 是一个用于通过重试、超时和断路器处理故障的库。它保护微服务免受级联故障的影响。

\n\n

真实示例:

\n\n
using Polly;\n\nvar retryPolicy = Policy\n    .Handle<HttpRequestException>()\n    .WaitAndRetryAsync(3, r                

博客

书籍推荐