Spero che questo non sia troppo soggettivo, ma questa domanda sicuramente non appartiene a SO ...
Attualmente sto scrivendo una grande applicazione ASP.NET MVC 5 e la maggior parte delle visualizzazioni ha i propri file javascript come previsto. Quello di cui sto avendo un problema è determinare come includere le varie dipendenze javascript. Ovviamente, non ogni singolo file javascript per ogni vista richiede necessariamente tutte le dipendenze (ad eccezione di jQuery e Bootstrap). Ho letto diversi metodi per includere le dipendenze e ho cercato di confrontare i loro pro e amp; l'uno contro l'altro, ma non sono ancora sicuro quale metodo sarebbe non solo il migliore per le prestazioni, ma per l'estensibilità futura, come la possibilità di apportare modifiche / sostituire le dipendenze e aggiungere moduli / funzionalità aggiuntivi. Non credo che ci sia una risposta "giusta" a questa domanda, ma alcune indicazioni sarebbero utili.
Ecco i metodi che ho cercato:
- Includere le dipendenze necessarie nella sezione degli script per ogni vista quando sono necessarie. (Questo è ciò che viene fatto nello stato attuale dell'applicazione, ma credo che sia un approccio ingenuo)
- Crea un pacchetto gigante per tutte le dipendenze alla questa domanda (Probabilmente non è una buona idea, vedi # 3)
- Creazione di pacchetti per ciascuna combinazione di dipendenze richiesta dalle viste.
- Uso di AMD e amp; requires.js per caricare i file javascript in modo dinamico. Potenzialmente utilizzando RequiresJS.NET
Sono piuttosto incline all'opzione 4, dal momento che sembra soddisfare i miei requisiti non funzionali, ma a dire il vero non ne so molto di questo quadro. Inoltre, sembra che io perda una parte della magia di ASP.NET se vado su questa rotta, come il raggruppamento automatico / minificazione, che è molto utile durante il debug e le prestazioni durante la creazione di debug o release. Considerando che con l'opzione # 3 non perdo quelle funzioni, ma non sembra quasi gestibile in futuro.
Uno di questi metodi è significativamente migliore degli altri e / o esiste un'opzione che non ho ancora incontrato e che sarebbe ancora meglio in questa situazione?