Scelta tra API Web e riferimento DLL

2

Sono confuso tra la scelta dell'API Web o del riferimento DLL per un progetto su cui sto lavorando e desidero capire i suggerimenti per entrambi l'approccio.

Stiamo utilizzando un'API Web che espone un'interfaccia per la business logic (BL). Stiamo usando il servizio basato su HTTP e il codice è C #. Abbiamo anche un'applicazione Web che utilizza internamente il BL. Quando compilo ottengo una DLL separata per BL che può anche essere referenziata e riutilizzata.

Ora voglio creare un'app per la console C # che verrà eseguita attraverso l'utilità di pianificazione in un momento specifico della giornata. Dovrò utilizzare lo stesso BL per procedere con la mia logica. È un servizio in background e le prestazioni non rappresentano una preoccupazione importante. Quale sarà un approccio migliore qui, utilizzando la DLL compilata o chiamando l'API Web? Quali sono le cose da considerare quando devi decidere tra i due approcci?

Un'altra cosa che vorrei menzionare è che la mia organizzazione si sta orientando verso l'architettura dei microservizi. Qualsiasi cosa in questo contesto sarà molto apprezzata.

    
posta nak 07.03.2017 - 05:59
fonte

1 risposta

3

Ci sono alcune considerazioni da fare:

  • Aggiornamenti: le modifiche al BL si rifletteranno sempre nell'API ma sarà necessario installare una nuova versione della DLL - Point for API
  • Connessione: una DLL funzionerà offline, a condizione che nulla di ciò richieda la funzionalità online - Punto per DLL
  • Portabilità: è possibile accedere a un'API da qualsiasi cosa e dovrebbe funzionare solo mentre la DLL, o la libreria condivisa, dovresti creare per ogni potenziale piattaforma - Punto per API
  • Velocità: in genere una DLL viene eseguita più velocemente poiché non è di solito in attesa di risposte da un server - Punto per DLL
  • Caricamento del client: se il BL sta facendo un sacco di lavoro questo viene fatto sul server quando si accede dall'API non sul client - solitamente punto per API a meno che il server non venga caricato pesantemente.
  • Archiviazione / valuta dati: l'API utilizzerà i dati più recenti sul server, mentre la DLL dovrà scaricarla / aggiornarla prima, potrebbe essere molto grande , oppure rischiare di utilizzare dati scaduti - Punto per API
  • Potenziale da utilizzare Micro-servizi: la maggior parte dei micro-servizi viene eseguita su Linux, quindi è necessario disporre di una libreria condivisa (.so) anziché di una DLL per BL e quindi sarà necessario considerare come comunicare con un'API basata approccio sei già in gran parte già - Punto per API
risposta data 07.03.2017 - 08:05
fonte

Leggi altre domande sui tag