Реализован бэкенд на gRPC + 2 клиента на Avalonia (10.18 и 11.preview-5). Размеры прямоугольников генерируются случайным образом по формуле:
- Минимальная высота = высота зоны / 50;
- Минимальная ширина = ширина зоны / 50;
- Максимальная высота = высота зоны / 20;
- Максимальная ширина = ширина зоны / 20;
- Папка
Protos
- Папка для хранения Protobuf файлов RectangularsMoving.Server
- Проект сервера net7RectangularsMoving.ClientShared
- Общий проект для клиентских приложений (вьюмодели, маппинг, общие DI зависимости)RectangularsMoving.AvaloniaClient
- Клиент на фрэймворке Avalonia-11.preview-6 (Основной клиент)RectangularsMoving.A10Client
- Клиент на фрэймворке Avalonia-10.18 (Дополнительный клиент для стравнения скорости работы UI)RectangularsMoving.WpfClient
- Клиент на фрэймворке WPF
Внимание! Запуск проектов осуществляется в режиме без отладки
- Запустить проект сервера в режиме https
- Запустить проект клиента (можно все 3, будут работать параллельно).
- Количество прямоугольников
- Высота зоны вывода
- Ширина зоны вывода
- Количество одновременно выполняемых задач на строне сервера
- Максимальная дистанция перемещения за одну итерацию
- Оптимизация вывода на строне клиента - Происходит накопление координат прямоугольников и применяется по таймеру через заданный интервал
- Оптимизация скорости изменения координат прямоугольников на стороне сервера - Имитируется тяжелая работа при расчете новых координат (задается значение Task.Delay в мс)
- Начать процесс генерации и перемещения прямоугольников
- Остановить запущенный процесс