Speriamo che una semplice domanda di relatività. Sto iniziando a lavorare su un nuovo progetto interno per creare la tracciabilità dei dispositivi riparati all'interno degli edifici.
Il database è archiviato in remoto su un server Web e sarà accessibile tramite API Web (output JSON) e protetto con OAuth. La GUI del front-end viene eseguita in WPF e il codice aziendale in C #.
Da questo, vedo i diversi livelli Presentazione / Applicazione / Archivio dati. Ci sarà codice per la gestione di tutte le chiamate autenticate all'API, classe per rappresentare entità (oggetti business), classi per costruire entità (oggetti business), parti per la GUI di WPF, parti dei modelli di WPF e così via.
È meglio crearlo in un singolo progetto o dividerlo in singoli progetti?
Nel mio cuore dico che dovrebbero essere più progetti. L'ho fatto in entrambi i modi in precedenza e ho scoperto che i test sono più facili con una soluzione a singolo progetto, tuttavia con più progetti possono sorgere dipendenze ricorsive. Soprattutto quando le classi hanno interfacce per rendere più semplice il test, ho scoperto che le cose possono diventare imbarazzanti.