← Назад к списку
Логотип C# / .NET C# / .NET
13.02.2026

Тестовое задание: C# backend (Трекмарк)

Компания: Трекмарк

Вакансия

  • Компания: Трекмарк
  • Направление: C# backend

Задание

Разработка текстового чата на языке C#.

Требуется разработать графическое клиент-серверное приложение для обмена текстовыми сообщениями. Разработать две версии (на выбор .NET Core, .NET 5, .NET 6 или .NET 7):

  • на основе WPF (с применением паттерна MVVM);
  • на основе GTK3 (пакет GtkSharp, использовать для создания окон Glade).

Обе версии должны иметь одинаковый функционал и быть взаимозаменяемыми, разница только в инструменте отрисовки окон. Две версии должны быть оформлены в виде разных проектов одного решения Visual Studio. Плюсом будет использование общей кодовой базы.

Требования к интерфейсу

Приложение должно состоять из одного окна, разделенного на два раздела.

Первый раздел: подключение

Пользователю должно быть предоставлено:

  • текстовое поле для ввода IP-адреса сервера;
  • переключатель для выбора, является ли запущенный экземпляр приложения TCP-сервером;
  • кнопка подключения/отключения.

Второй раздел: чат

Пользователь должен:

  • видеть все сообщения в одном текстовом блоке;
  • иметь возможность вводить текстовое сообщение в другом текстовом поле;
  • иметь доступ к кнопке «Отправить сообщение» при установленном соединении со вторым приложением.

Сообщения могут получать и отправлять как сервер, так и клиент. Интерфейсы двух версий не обязаны выглядеть идентично, но приветствуется одинаковая компоновка элементов. Логика отображения, скрытия и блокировок графических элементов должна быть понятна обычному пользователю.

Сетевое взаимодействие

Обмен сообщений должен происходить по сети с помощью TCP/IP, где одно приложение является TCP-сервером, а второе - TCP-клиентом. Реализация подключения множества клиентов к одному серверу не требуется. Приложения должны отслеживать подключения и разрывы сети, сообщая об этом в окне чата. Допускается реализация любого протокола поверх TCP, но плюсом будет разработка собственного простого протокола на основе JSON.

Дополнительный плюс

Большим плюсом будет демонстрация работы сборки на основе GTK3 под ОС Linux (дистрибутив на выбор).