Скриншот двухнедельной давности. Решение — клиент-серверное приложение (signalr) и очередная попытка создания луковичной архитектуры, но слои все же протекают. У клиента и у админа есть 4 главных блока (OS, Drive, Network, Hardware)
1)
Apps — .exe файлы
2)
Core.
Core.Domain — сущности клиента (ef).
Core.Application — базовые модули, совсем базовые сервисы (не связанные с UI) для админа и клиента.
Core.ServerApplication (не самое лучшее название, наверное) — общие модели между сервером и админом.
3)
Infrastructure.
Infrastructure.Common — базовые сервисы, стили, хелперы, сервисы, но уже на уровне WPF. Использует и клиент и админ.
Infrastructure.Admin/Client — базовые вещи как в Common, но для модулей(далее) админа/клиента.
Infrastructure.Hardware/Network/OS — вынесение общих view, конвертеров между клиентом и админом.
4)
Modules - Prism модули
Modules.Admin/Client — главные окна, инициализация приложения зависит от Modules.Admin(Client).Common.
Modules.OS/Drive/Network/Hardware — сервисы, view специфичные для админа/клиента
Проекты Admin/Client максимально пустые и состоят из нескольких файлов. Они добавляют все prism-модули и отдают инициализацию в Modules.Admin или Modules.Client.