Ho una grande applicazione ASP .NET MVC composta da diversi widget. Presentano tutti una sorta di dati relativi ai mercati azionari, ma in realtà sono piuttosto separati l'uno dall'altro. Mi piacerebbe rompere la grande app monolitica in diversi servizi più piccoli che dovrebbero essere più facili da mantenere.
Sarebbe piuttosto semplice se avessi solo il codice lato server scritto in C #, ma in realtà ho anche un bel po 'di componenti javascript e anche alcuni stili e altre risorse. Non so dove dovrebbero essere messi. Dal punto di vista della separazione, se alcuni file javascript sono utilizzati solo da un widget specifico, dovrebbero far parte del suo servizio. D'altra parte, non so come integrare in seguito tutti i widget e le loro risorse, specialmente quando potrebbero esserci alcuni script comuni usati da tutti i componenti.
Finora ho avuto due idee, nessuna delle quali sembra ideale:
- Separa solo il codice lato server e lascia tutti i componenti lato client in un progetto comune. L'integrazione, la minimizzazione e la gestione di Js sarebbero più semplici, ma gli sviluppatori avrebbero comunque bisogno di lavorare su due diversi progetti durante l'aggiornamento di un servizio specifico.
- Crea pacchetti nuget per ogni microservizio con codice lato server e client. Che dire quindi degli script comuni e dei file che dipendono da essi? Se avessi apportato una modifica sostanziale all'infrastruttura comune, avrei dovuto aggiornare manualmente tutto il codice dipendente. Sarebbe molto più difficile aggiornare i file quando tutti risiedono nello stesso progetto.
Ci sono soluzioni migliori?