C# 技能提升:7个让雇主印象深刻的 portfolio 项目

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

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

开始课程

为什么你的 C# portfolio 决定一切,或者说如何在上百份简历中脱颖而出

\n\n

你已经学会了语法,掌握了类、接口,甚至写了几行控制台程序。恭喜你,你不再是“零基础”了。但问题是:一个 Junior C# 开发者的职位会收到 50–100 份简历。HR 或技术主管如何知道你就是那颗钻石,而不是又一个从培训班出来的“就业保障”学员?

\n\n

答案很简单:你的 C# portfolio。不是技术列表,而是可以实际体验(或者至少在本地运行)的鲜活项目。在这篇文章中,我收集了 7 个 C# 开发者的 portfolio 项目创意——从简单到中等难度。每个创意不仅仅是“做个计算器”,而是一个完整的案例,附带解释为什么它很酷以及应该写什么样的代码。

\n\n

筛选标准:什么让一个项目成为 portfolio 的“最佳”选择

\n\n

在开始写代码之前,我们先达成共识:portfolio 中的项目应该解决三个问题:

\n
    \n
  • 展示技术栈掌握程度——不仅仅是 C#,还有 ASP.NET Core、Entity Framework、API 操作。
  • \n
  • 展示架构理解——设计模式、SOLID 原则、职责分离。
  • \n
  • 解决实际问题——即使是一个自用工具,也应该是实用的。
  • \n
\n\n

我故意没有包含“待办事项列表”或“计算器”——这些都是基础,已经无法打动任何人了。我们开始吧!

\n\n

1. 任务管理 Telegram 机器人(带提醒功能)

\n\n

Telegram 机器人是 portfolio 的理想形式。它们紧凑、视觉直观,并且与真实 API 交互。你的机器人将接收命令,将任务保存到数据库,并发送提醒。

\n\n

为什么这很酷:

\n
    \n
  • 与外部 API(Telegram Bot API)交互。
  • \n
  • 后台任务(Hangfire 或 BackgroundService)。
  • \n
  • Entity Framework Core + SQLite(或 PostgreSQL)。
  • \n
\n\n

代码示例:启动提醒后台服务

\n
public class ReminderService : BackgroundService\n{\n    private readonly IServiceProvider _services;\n    private readonly ILogger<ReminderService> _logger;\n\n    public ReminderService(IServiceProvider services, ILogger<ReminderService> logger)\n    {\n        _services = services;\n        _logger = logger;\n    }\n\n    protected override async Task ExecuteAsync(CancellationToken stoppingToken)\n    {\n        while (!stoppingToken.IsCancellationRequested)\n        {\n            using (var scope = _services.CreateScope())\n            {\n                var db = scope.ServiceProvider.GetRequiredService<AppDbContext>();\n                var now = DateTime.UtcNow;\n                var dueTasks = db.Tasks.Where(t => t.DueDate <= now && !t.IsNotified).ToList();\n\n                foreach (var task in dueTasks)\n                {\n                    // 通过 TelegramClient 发送消息\n                    await SendTelegramMessage(task.UserId, $"提醒:{task.Title}");\n                    task.IsNotified = true;\n                }\n                await db.SaveChangesAsync();\n            }\n            await Task.Delay(TimeSpan.FromMinutes(1), stoppingToken);\n        }\n    }\n}\n
\n\n

建议:添加 /start、/add、/list、/done 命令。并且一定要包含 Dockerfile,让机器人一键启动。

\n\n

2. 网页解析器并导出到 Excel

\n\n

创建一个控制台应用程序,例如解析 Ozon 或 Wildberries(或任何其他网站)的商品,并将结果保存到 .xlsx 文件中。这将展示你能够处理 HTML、HTTP 以及 EPPlus 或 ClosedXML 等库。

\n\n

我们将使用:

\n
    \n
  • HttpClient 用于请求。
  • \n
  • HtmlAgilityPack 或 AngleSharp 用于解析。
  • \n
  • EPPlus 用于生成 Excel。
  • \n
\n\n

代码示例:解析标题

博客

书籍推荐