Quale è secondo te la buona pratica per gestire il caso in cui voglio avere una logica riutilizzabile e condivisa che raccolga e restituisca i miei dati dal database?
Ad esempio, ho un'applicazione multi pagina e un giorno decido di creare un'applicazione per pagina singola. Non voglio riscrivere molto.
Questo fa sorgere la domanda: come devo affrontare questo problema?
Caso 1
- Entrambi i tipi di applicazioni parlano direttamente alla WebAPI esposta che a sua volta parla con una classe (come un repository) che effettua chiamate al database. E poi nel caso di SPA che restituisce il JSON.
- Esiste una DLL con la logica e solo il progetto WebAPI utilizza questa DLL, il che probabilmente significa che ci sono chiamate HTTP interne all'API in caso di applicazioni Multi Page ed è il server che effettua queste richieste.
- L'accesso al database non è diretto, passa attraverso il servizio che espone l'API, può essere ospitato sullo stesso server.
Non sarebbe un approccio più costoso di quello mostrato nella seconda immagine qui sotto? (a causa delle chiamate HTTP invece di parlare direttamente al database)
Caso2
L'applicazionemultipaginanonsanulladiWebAPIespostoadaltriclient(desktop,mobile,appwebasingolapagina).Laclasserepository(logica)vieneinvececondivisaconicontrollerWebAPIeicontrollerclassicicherestituisconoViewanzichédati.
EsisteunaDLLconlalogicaeentrambiiprogettidipendonodaquestaDLL.SignificanessunarichiestaHTTPinternaincasodiMPA-menocostoso?
Accessodirettoaldatabase
Quale approccio dovrei scegliere e perché? Il primo approccio è più costoso dell'altro a causa delle richieste HTTP interne?