javascript - net - script mvc
Paquetes de casetes frente a paquetes MVC4 (4)
Actualmente estoy trabajando en una solución prototipo ASP.NET MVC 3 que se utilizará como base para varias reescrituras de proyectos (desde formularios web).
Uno de los objetivos que tengo es implementar alguna administración de scripts en la aplicación en comparación con ninguna que tengamos actualmente.
MVC 3 tiene un defecto en mi humilde opinión: si necesita una secuencia de comandos específica en una vista parcial o plantilla, puede terminar perdiendo el control sobre dónde se encuentra la secuencia de comandos en HTML procesado o tener que especificar cada archivo javascript dependiente en la vista principal. .
He estado considerando seriamente usar http://getcassette.net/ como un marco para resolver el problema descrito. Sin embargo, el último lanzamiento de MVC4 beta me hizo dudar de mí: los paquetes de MVC se parecen mucho a los paquetes de Cassette y estoy confundido de nuevo:
¿Debería implementar el casete ahora y luego migrar a los paquetes MVC4?
¿Debería implementar algún administrador de scripts simplificado (por ejemplo, clase de ayuda Scripts en la vista previa de MVC4) y luego migrar a MVC4?
¿O debería integrar cassette en el proyecto y espero que sea más a prueba de futuro que la imlementación de MVC (realmente no me gusta esta opción en este momento solo por la cantidad de dependencias que viene con cassette).
No tengo experiencia con Cassette y me cuesta mucho hacer la comparación y agradecería cualquier respuesta o sugerencia.
EDITAR: Acabo de imaginar que hay otra opción: instalar el paquete beta nuget para la agrupación de MVC: https://nuget.org/packages/Microsoft.Web.Optimization
CONCLUSIÓN: Cuanto más observo la implementación del paquete MVC4, noto la mayor diferencia: los paquetes MVC4 no abordan el problema de MVC3 descrito anteriormente; solo hacen paquetes y minificación. Además, Cassette no solo es capaz de representar etiquetas de script en un lugar específico sino que también es capaz de ordenarlas en el orden correcto, lo que no es trivial. Por el momento, no estoy satisfecho con ninguna de las soluciones y trataré de llegar a mi propia implementación minimalista esperando que la situación mejore en el futuro.
Pero si no tiene miedo de agregar más de 5 dependencias y muchos cambios de web.config en su proyecto, vaya a cassette. Espero que se actualice en algún momento para utilizar el agrupamiento de MVC en el interior para reducir la duplicación de la funcionalidad y, con suerte, será más modular.
ACTUALIZACIÓN: a partir de la versión 2.0 de Cassette, ya no es necesario incluir el script de café y otras funciones de Cassette si solo necesita la resolución de dependencia de paquetes y js. Entonces, en este punto, Cassette es un claro ganador para mí.
Cassette sigue siendo una alternativa interesante ya que tiene soporte nativo para less y coffescript. También tiene soporte para plantillas HTML, si le interesan los frameworks mvc del lado del cliente (backbone, knockout, etc.)
Puede encontrar información acerca de la agrupación ASP.NET MVC aquí: http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series.aspx .
ASP.NET está agregando una función que facilita "agrupar" o "combinar" múltiples archivos CSS y JavaScript en menos solicitudes HTTP. Esto hace que el navegador solicite muchos menos archivos y, a su vez, reduce el tiempo de recuperación.
La próxima versión de ASP.NET también agrega una nueva función que facilita reducir o "minimizar" el tamaño de descarga del contenido.
Parece que es esencialmente lo mismo que Cassette. En igualdad de condiciones, use la solución nativa de ASP.NET MVC.
Solo como una actualización de esto, se agregó soporte LESS y CoffeeScript en el paquete de Actualización 2 para Visual Studio 2012, por lo que cada vez se ve más como que sería mejor agregar las transformaciones que necesita a la implementación nativa de Bundling / Minificación respaldada en MVC4 que ir con Cassette a largo plazo.
Terminé usando Cassette en mi último proyecto y está funcionando bastante bien. Realmente no hay mucha configuración si usas NuGet, entonces mi idea es que no sería muy difícil usar Cassette ahora y luego cambiar más tarde si quisieras.
Otra cosa a considerar es que Cassette hace menos compilación. No estoy seguro de si el agrupamiento MVC4 hace eso o no, ya que no he tenido tiempo de leerlo.