Проблемная архитектура библиотеки .NET C#

Рейтинг: 0Ответов: 0Опубликовано: 02.03.2023

сейчас моя "архитектура" выглядит так

В последнее время я углубился в разработку своей библиотеки для надежной передачи данных по протоколу UDP. Хотя код пишеться пока что без особых проблем, я столкнулся с проблемой в архитектуре и структуре проекта. Я стремлюсь создать небольшую, но расширяемую и понятную библиотеку. К сожалению, нет магической формулы или статьи, которая бы решала мою конкретную проблему.

Моя библиотека содержит множество внутренних модулей, которые я связываю между собой и дополняю в ICEClient и ICEServer, особенно в области надежной отправки данных. Основные публичные классы - клиент и сервер - используют эти модули. Так же я сделал две папки, которые можно увидеть на скриншоте: ICE.Core и ICE.Traffic.

Папка ICE.Core содержит независимые компоненты, такие как логирование, DNS и базовый транспорт (обычная асинхронная обертка над UDP). Папка ICE.Traffic содержит связанные классы для сериализации и десериализации пакетов в байты и обратно. Этот модуль(ICE.Traffic) используется в ICEClient и ICEServer, а также я хочу, чтобы пользователи моей библиотеки имели доступ к таким классам, как Packet и Data. Именно поэтому я решил вынести папку ICE.Traffic отдельно от ICE.Core.

Я задаюсь вопросом, правильно ли я делаю? Есть ли ресурсы, которые описывают похожие ситуации и методы их решения? Я хочу создать библиотеку, которая не будет перегружена тысячей интерфейсов, но и не будет слишком простой.

Ответы

Ответов пока нет.