43 votes

Faisceaux de cassettes contre faisceaux MVC4

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 :

  1. Dois-je mettre en œuvre la cassette maintenant et ensuite migrer vers les bundles MVC4 ?

  2. 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 ?

  3. 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.

10voto

Robert Harvey Points 103562

Des informations sur le regroupement ASP.NET MVC sont disponibles ici : http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx .

ASP.NET ajoute une fonction qui permet de "regrouper" ou de "combiner" plusieurs fichiers CSS et JavaScript en moins de requêtes HTTP. "combiner" plusieurs fichiers CSS et JavaScript en moins de requêtes HTTP. Ainsi, le navigateur demande beaucoup moins de fichiers, ce qui réduit le temps d'attente. réduit le temps nécessaire pour les récupérer.

La prochaine version d'ASP.NET ajoute également une nouvelle fonction qui permet de de réduire ou de "minifier" la taille de téléchargement du contenu.

On dirait que c'est essentiellement la même chose que Cassette. Toutes choses étant égales par ailleurs, utilisez la solution qui est native à ASP.NET MVC.

9voto

Shea Daniels Points 1723

J'ai fini par utiliser Cassette sur mon dernier projet et ça marche plutôt bien. Il n'y a vraiment pas beaucoup de configuration à faire si vous utilisez NuGet, donc je pense qu'il ne serait pas trop difficile d'utiliser Cassette maintenant et de changer plus tard si vous le souhaitez.

Une autre chose à considérer est que Cassette fait Moins de compilation. Je ne sais pas si l'offre groupée MVC4 le fait ou non, car je n'ai pas eu le temps de me documenter à ce sujet.

4voto

Sinbadsoft.com Points 1510

Cassette reste une alternative intéressante car elle prend en charge de manière native less et coffescript. Il supporte également les modèles HTML, si vous êtes intéressé par les frameworks mvc côté client (backbone, knockout, etc.).

1voto

worldlee78 Points 76

À titre de mise à jour, la prise en charge de LESS et CoffeeScript a été ajoutée dans le package Update 2 de Visual Studio 2012. Il semble donc de plus en plus préférable d'ajouter les transformations dont vous avez besoin à l'implémentation native de Bundling/Minification soutenue dans MVC4 plutôt que d'utiliser Cassette à long terme.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X