Cassette捆绑包与MVC4捆绑包

bus*_*hed 43 javascript asp.net asp.net-mvc asp.net-mvc-4 asp.net-optimization

我目前正在研究ASP.NET MVC 3原型解决方案,该解决方案将用作多个项目重写的基础(来自Web表单).

我的目标之一是跨应用程序实现一些脚本管理,而不是我们现在拥有的任何脚本管理.

MVC 3有一个缺陷恕我直言:如果您需要在部分视图或模板视图上指定特定脚本 - 您可能最终要么失去对呈现HTML中脚本块所在位置的控制,要么必须在父视图上指定每个依赖的javascript文件.

我一直在认真考虑使用http://getcassette.net/作为解决所述问题的框架.然而,MVC4 beta的最新版本让我再次怀疑自己:MVC的Bundles看起来与Cassette的Bundles非常相似,我又感到困惑:

  1. 我现在应该实现盒式磁带而不是迁移到MVC4捆绑包吗?

  2. 我应该自己实现一些简化的脚本管理器(比如MVC4预览中的Scripts helper类)然后迁移到MVC4

  3. 或者我应该将盒式磁带集成到项目中,并希望它比MVC的实现更具有前瞻性(我现在真的不喜欢这个选项,仅仅因为盒式磁带附带了大量的依赖性).

我没有Cassette本身的经验,发现很难自己进行比较,并且会欣赏任何答案或提示.

编辑: 我只是想到还有另一种选择:为MVC捆绑安装beta nuget包:https://nuget.org/packages/Microsoft.Web.Optimization

结论: 我对MVC4捆绑实现的看法越多,我注意到的差异越大:MVC4捆绑包不能解决上面描述的MVC3问题 - 它们只是捆绑和缩小.此外,盒式磁带不仅能够在特定位置呈现脚本标签,而且还能够以正确的顺序对它们进行排序,这不是一件容易的事.所以目前我对这两种解决方案都不满意,我会尝试提出自己的简约实施,希望将来情况有所改善.

但是,如果你不害怕在你的项目中添加5个以上的依赖项和一堆web.config更改 - 去卡带.我希望它会在某些时候更新,以利用内部的MVC捆绑来减少功能重复,并且希望将变得更加模块化.


更新: 从Cassette 2.0版开始,如果你只需要捆绑和js依赖解析,就不再需要包含咖啡脚本和Cassette的其他功能.所以在这一点上,卡塞特对我来说是一个明显的赢家.

Rob*_*vey 10

有关ASP.NET MVC捆绑的信息,请访问:http://weblogs.asp.net/scottgu/archive/2011/11/27/new-bundling-and-minification-support-asp-net-4-5-series. aspx.

ASP.NET正在添加一项功能,可以轻松地将多个CSS和JavaScript文件"捆绑"或"组合"到更少的HTTP请求中.这会导致浏览器请求更少的文件,从而减少了获取文件所需的时间.

ASP.NET的下一个版本还添加了一项新功能,可以轻松减少或"缩小"内容的下载大小.

看起来它与Cassette基本相同.在所有其他条件相同的情况下,使用ASP.NET MVC本机的解决方案.

  • 知道Cassette的一小部分,它似乎比MVC4的原生捆绑/压缩唯一真正的功能是能够解析所提到的脚本/工作表之间的分辨率.现在捆绑之外还有更多功能,就像将HTML模板压缩成JS代码一样.看起来像一个漂亮的框架,但比MVC4 + dotLess重得多 (2认同)

She*_*els 9

我最后在上一个项目中使用了Cassette,它运行得很好.如果你使用NuGet,它真的没有很多配置,所以我的想法是现在使用Cassette然后如果你想要切换后不太难.

另一件需要考虑的事情是Cassette进行Less编译.我不确定MVC4捆绑是否会这样做,因为我没有时间阅读它.