Надеюсь, относительный простой вопрос. Я начинаю работу над новым внутренним проектом по созданию управляемости ремонтируемых устройств внутри зданий.
База данных хранится удаленно на веб-сервере и будет доступна через веб-API (вывод JSON) и защищена с помощью OAuth. Внешний интерфейс GUI выполняется в WPF, а бизнес-код в C #.
Исходя из этого, я вижу разные уровни презентации / приложения / хранилища данных. Будет код для управления всеми аутентифицированными вызовами API, классом для представления сущностей (бизнес-объектами), классами для создания сущностей (бизнес-объектами), частями для графического интерфейса WPF, частями моделей представления WPF и так далее.
Лучше всего создать это в одном проекте или разбить их на отдельные проекты?
В глубине души я говорю, что должно быть несколько проектов. Ранее я делал это обоими способами и обнаружил, что тестирование проще с помощью одного проекта, но с несколькими проектами могут возникнуть рекурсивные зависимости. Особенно, когда у классов есть интерфейсы, облегчающие тестирование, я обнаружил, что все может стать неуклюжим.