Domanda

Attualmente sto lavorando a un prototipo di soluzione ASP.NET MVC 3 che verrà utilizzata come base per diverse riscritture di progetti (da moduli web).

Uno degli obiettivi che ho è quello di implementare la gestione degli script in tutta l'applicazione invece di nessuno che abbiamo attualmente.

MVC 3 ha un difetto IMHO: se hai bisogno di uno script specifico specificato in una vista parziale o in una vista modello, potresti perdere il controllo su dove si trova il blocco di script nell'HTML renderizzato o doverlo fare specifica ogni singolo file javascript dipendente nella vista principale.

Ho preso seriamente in considerazione l'utilizzo di http://getcassette.net/ come framework per risolvere il problema descritto. Tuttavia, l'ultima versione della beta di MVC4 mi ha fatto dubitare di nuovo di me stesso: i bundle di MVC sembrano davvero simili ai bundle di Cassette e sono di nuovo confuso:

  1. Devo implementare cassetta adesso e poi migrare ai bundle MVC4?

  2. Dovrei implementare personalmente un gestore di script semplificato (sth. come la classe helper Scripts nell'anteprima MVC4) e quindi migrare a MVC4

  3. O dovrei integrare la cassetta nel progetto e sperare che sia più a prova di futuro rispetto all'implementazione di MVC (davvero non mi piace questa opzione in questo momento solo per il numero di dipendenze con cui viene fornita la cassetta).

  4. / p>

Non ho esperienza con Cassette in sé e trovo davvero difficile fare il confronto da solo e apprezzerei qualsiasi risposta o suggerimento.

MODIFICA: Ho appena pensato che esiste un'altra opzione: installare il pacchetto beta nuget per il bundling MVC: https:// nuget. org / packages / Microsoft.Web.Optimization

CONCLUSIONE: Più guardo nell'implementazione del bundle MVC4, maggiore è la differenza che noto: i bundle MVC4 non risolvono il problema MVC3 descritto sopra - fanno solo bundling e minification. Inoltre, cassette non è solo in grado di visualizzare i tag di script in un luogo specifico, ma è anche in grado di ordinarli nell'ordine corretto, il che non è banale. Quindi al momento non sono soddisfatto di nessuna delle soluzioni e cercherò di trovare una mia implementazione minimalista sperando che la situazione migliori in futuro.

Ma se non hai paura di aggiungere 5+ dipendenze e un mucchio di modifiche web.config al tuo progetto, scegli cassetta. Spero che ad un certo punto verrà aggiornato per utilizzare il raggruppamento MVC all'interno per ridurre la duplicazione delle funzionalità e, si spera, diventerà più modulare.


AGGIORNAMENTO: A partire dalla versione 2.0 di Cassette non è più necessario includere coffee script e altre funzionalità di Cassette se hai solo bisogno di bundle e risoluzione delle dipendenze js. Quindi a questo punto Cassette è un chiaro vincitore per me.

È stato utile?

Soluzione

Le informazioni sul raggruppamento di ASP.NET MVC sono disponibili qui: http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx .

ASP.NET sta aggiungendo una funzionalità che semplifica il "raggruppamento" o "Combina" più file CSS e JavaScript in meno richieste HTTP. Ciò fa sì che il browser richieda molti meno file ea sua volta riduce il tempo necessario per recuperarli.

La prossima versione di ASP.NET aggiunge anche una nuova funzionalità che lo rende è facile ridurre o "minimizzare" anche le dimensioni di download del contenuto.

Sembra che sia essenzialmente la stessa cosa di Cassette.A parità di altre condizioni, utilizzare la soluzione nativa di ASP.NET MVC.

Altri suggerimenti

Ho finito per usare Cassette nel mio ultimo progetto e funziona abbastanza bene.Non c'è davvero molta configurazione se usi NuGet, quindi il mio pensiero è che non sarebbe troppo difficile usare Cassette ora e poi cambiare più tardi se lo desideri.

Un'altra cosa da considerare è che Cassette compila meno.Non sono sicuro che il bundling MVC4 lo faccia o meno poiché non ho avuto il tempo di leggere su di esso.

Cassette è ancora un'alternativa interessante in quanto ha il supporto nativo per less e coffescript.Supporta anche i modelli HTML, se sei interessato ai framework mvc lato client (backbone, knockout ecc.)

Proprio come un aggiornamento a questo, il supporto LESS e CoffeeScript è stato aggiunto nel pacchetto Update 2 per Visual Studio 2012, quindi sta iniziando a sembrare sempre più simile sarebbe meglio aggiungere le trasformazioni necessarie all'implementazione nativa diil Bundling / Minification è stato supportato in MVC4 piuttosto che con Cassette a lungo termine.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top