Sto fissando un nuovo progetto, multipiattaforma. Voglio usare l'architettura della cipolla lì. Sarà un gioco semplice (tic tac toe), solo per scopi educativi. Questa app sarà di tipo client-server.
Ora ho letto molto sull'architettura della cipolla, ma non sono ancora sicuro di come gestirlo nel client-server.
Devo creare due repository diversi (1) per server e per client? O dovrei tenerli entrambi in soluzione singola (2) (dal momento che molte classi / interfacce in Core / Domain sono uguali per entrambi)?
- (1) - repository di codice sorgente (su bitbucket o sth come quello)
- (2) - Soluzione Visual Studio
Modifica
Sarà un'app multipiattaforma (C # via xamarin) con singolo server anche in C #. Comunicazione tramite WCF
. Il server memorizzerà solo gli account degli utenti, guarderà ogni mossa, salverà la cronologia dei giochi - non è importante, è solo per l'istruzione.
Rispondendo a @Kasper, come vedo OA
nell'app client-server:
Ho pensato che avrei potuto condividere più codice possibile in Core
di Onion - come Entità, Helpers, Logger (?), Interfacce ... Poi, avrò un altro layer - project per Client API
(Application e Servizi di dominio) e Server API
(Servizi applicativi: consumo e invio di messaggi da / a client), quindi Interface
strati. Separato per client e per server.
Quindi, soluzione VS singolo, due app, singolo Core
. So che è tecnicamente possibile - ma è una buona pratica?