Je travaille actuellement sur un prototype de solution ASP.NET MVC 3 qui servira de base à la réécriture de plusieurs projets (à partir de formulaires Web).
L'un de mes objectifs est de mettre en œuvre une certaine gestion des script à travers l'application, alors que nous n'en avons aucune actuellement.
MVC 3 a un défaut IMHO : si vous avez besoin d'un script spécifique spécifié sur une vue partielle ou une vue de modèle - vous pourriez finir par perdre le contrôle sur l'emplacement du bloc script dans le HTML rendu ou avoir à spécifier chaque fichier javascript dépendant sur la vue parent.
J'ai sérieusement envisagé d'utiliser http://getcassette.net/ comme un cadre pour résoudre le problème décrit. Cependant, la dernière version de MVC4 beta m'a fait douter à nouveau : Les Bundles de MVC ressemblent beaucoup aux Bundles de Cassette et je suis à nouveau confus :
-
Dois-je mettre en œuvre la cassette maintenant et ensuite migrer vers les bundles MVC4 ?
-
Devrais-je implémenter moi-même un gestionnaire simplifié de script (quelque chose comme la classe d'aide script dans l'aperçu de MVC4) et ensuite migrer vers MVC4 ?
-
Ou dois-je intégrer cassette dans le projet et espérer qu'il sera plus résistant à l'avenir que l'implémentation de MVC (je n'aime vraiment pas cette option pour le moment, juste à cause du nombre de dépendances avec lesquelles cassette est livré).
Je n'ai aucune expérience de la cassette elle-même et j'ai du mal à faire la comparaison moi-même. J'apprécierais toute réponse ou tout conseil.
EDIT : Je viens de me rendre compte qu'il existe une autre option : l'installation du paquet beta nuget pour le bundling MVC : https://nuget.org/packages/Microsoft.Web.Optimization
CONCLUSION : Plus je me penche sur la mise en œuvre des bundles MVC4, plus je constate une grande différence : Les bundles MVC4 ne traitent pas le problème MVC3 décrit ci-dessus - ils ne font que regrouper et minifier. De plus, la cassette n'est pas seulement capable de rendre les balises script à un endroit spécifique, elle est aussi capable de les ordonner dans le bon ordre, ce qui n'est pas trivial. Donc, pour le moment, je ne suis satisfait d'aucune des deux solutions et je vais essayer de proposer ma propre implémentation minimaliste en espérant que la situation s'améliorera à l'avenir.
Mais si vous n'avez pas peur d'ajouter 5+ et un tas de changements de web.config dans votre projet - optez pour cassette. J'espère qu'elle sera mise à jour à un moment donné pour utiliser le regroupement MVC à l'intérieur afin de réduire la duplication des fonctionnalités, et qu'elle deviendra plus modulaire.
UPDATE : Depuis la version 2.0 de Cassette, il n'est plus nécessaire d'inclure le café script et les autres fonctionnalités de Cassette si vous avez juste besoin de bundles et de la résolution des dépendances js. Donc, à ce stade, Cassette est un vainqueur clair pour moi.