Ответ
Pet-проекты — отличный способ изучить новые технологии и показать практические навыки. Вот несколько идей, которые можно реализовать на C#/.NET, постепенно усложняя:
1. Консольный менеджер задач (To-Do List)
Цель: Освоить основы C#, работу с файлами (JSON/XML) или простой локальной БД (SQLite).
// Пример структуры задачи
public class TaskItem
{
public int Id { get; set; }
public string Description { get; set; }
public bool IsCompleted { get; set; }
public DateTime CreatedAt { get; set; }
}
// Функционал: CRUD операции, сохранение/загрузка из JSON-файла через System.Text.Json
Усложнение: Добавить категории, приоритеты, дедлайны, поиск и фильтрацию.
2. RESTful API для каталога продуктов (ASP.NET Core Web API)
Цель: Изучить создание веб-API, Entity Framework Core, миграции БД.
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
private readonly AppDbContext _context;
[HttpGet]
public async Task<ActionResult<IEnumerable<Product>>> GetProducts()
{
return await _context.Products.ToListAsync();
}
[HttpPost]
public async Task<ActionResult<Product>> PostProduct(Product product)
{
_context.Products.Add(product);
await _context.SaveChangesAsync();
return CreatedAtAction(nameof(GetProducts), new { id = product.Id }, product);
}
}
Усложнение: Добавить пагинацию, сортировку, JWT-аутентификацию, кэширование ответов, контейнеризацию (Docker).
3. WPF-приложение "Курсы валют"
Цель: Освоить MVVM-паттерн, привязку данных (Data Binding), асинхронные запросы.
- Использовать публичное API (например, exchangerate-api.com).
- Интерфейс: поле для выбора валют, кнопка обновления, таблица/список с курсами.
- Сохранение истории запросов в SQLite.
4. Telegram-бот на C
Цель: Работа с внешними API, long-polling/webhooks.
- Использовать библиотеку
Telegram.Bot. - Примеры: бот-напоминалка, бот для конвертации валют, простой опросник.
5. Игра "Змейка" (Snake) на Unity или с использованием .NET MAUI/ Avalonia
Цель: Понять основы игрового цикла, обработку ввода, отрисовку графики.
Советы по развитию любого pet-проекта:
- Версионный контроль: Обязательно используйте Git, создавайте осмысленные коммиты.
- Тестирование: Покройте логику unit-тестами с помощью xUnit или NUnit.
- Документация: Напишите README.md с описанием, инструкцией по запуску и скриншотами.
- CI/CD: Настройте автоматическую сборку и прогон тестов на GitHub Actions или GitLab CI.