Сподіваємось, відносність просте запитання. Я починаю роботу над новим внутрішнім проектом по створенню тяговості відремонтованих пристроїв всередині будівель.
База даних зберігається віддалено на веб-сервері та буде доступна через веб-API (вихід JSON) та захищена OAuth. GUI на передньому кінці робиться у WPF, а бізнес-код у C #.
З цього я бачу різні шари Presentation / Application / Datastore. Буде код для управління всіма аутентифікованими викликами до API, клас для представлення сутностей (бізнес-об'єктів), класи для побудови сутностей (бізнес-об’єктів), частини для графічного інтерфейсу WPF, частини моделей перегляду WPF тощо.
Чи найкраще це створити в одному проекті або розділити їх на окремі проекти?
В душі я кажу, що це повинно бути кілька проектів. Раніше я це робив обома способами, і виявив, що тестування простіше за допомогою одного проектного рішення, однак з декількома проектами, то рекурсивні залежності можуть назріти. Особливо, коли у класів є інтерфейси, щоб полегшити тестування, я виявив, що речі можуть стати незручними.