盒式磁带捆绑与MVC4捆绑

我目前正在开发一个原型ASP.NET MVC 3解决scheme,它将被用作几个项目重写(从Web表单)的基础。

我的目标之一是在应用程序中实现一些脚本pipe理,而不是我们目前没有的脚本pipe理。

MVC 3有一个缺陷恕我直言:如果你需要在部分视图或模板视图指定特定的脚本 – 你可能会失去控制脚本块位于呈现HTML中的位置或必须指定父视图中的每个单独的JavaScript文件。

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

  1. 我现在是否应该执行磁带并转移到MVC4捆绑包?

  2. 我应该自己实现一些简化的脚本pipe理器(如MVC4预览中的脚本辅助类),然后迁移到MVC4

  3. 还是应该将磁带整合到项目中,并希望它比MVC的实施更加面向未来(我现在真的不喜欢这个选项,只是因为依赖磁带数量庞大)。

我对Cassette本身并没有经验,并且发现自己很难进行比较,也不会感激任何答案或提示。

编辑:我只是觉得有另一种select:安装testing版包的MVC捆绑: https ://nuget.org/packages/Microsoft.Web.Optimization

结论:我越看越MVC4捆绑实施更大的差异,我注意到:MVC4捆绑不解决上述MVC3问题 – 他们只是捆绑和缩小。 此外,盒式磁带不仅能够在特定的位置呈现脚本标签,还能够以正确的顺序对其进行sorting,这不是微不足道的。 所以目前我对这两种解决scheme都不满意,我会试着想出一个我自己的简约实现scheme,希望这种情况在未来会有所改善。

但如果你不害怕添加5+依赖和一堆web.config的变化到你的项目 – 去盒式磁带。 我希望它会在某些时候更新,以便利用MVC捆绑来减lessfunction重复,并希望能够变得更加模块化。


更新:从盒式2.0版开始,不再需要包含咖啡脚本和Cassette的其他function,如果您只需要捆绑和js依赖性解决scheme。 所以在这一点上,卡斯特是我的明显赢家。

关于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正在添加一个function,可以轻松地将多个CSS和JavaScript文件“捆绑”或“合并”为更less的HTTP请求。 这会导致浏览器请求更less的文件,从而减less获取它们所需的时间。

ASP.NET的下一个版本还增加了一项新function,可以轻松减less或“缩小”内容的下载大小。

看起来它和Cassette本质上是一样的。 所有其他的事情都是平等的,使用ASP.NET MVC原生的解决scheme。

我在最后一个项目中使用了Cassette,工作得很好。 如果你使用NuGet的话,实际上并没有太多的configuration,所以我的想法是,现在使用Cassette并不难,如果你愿意的话可以稍后切换。

还有一件事要考虑的是盒式磁带的编译效率较低。 我不确定MVC4捆绑是否做到这一点,因为我没有时间阅读它。

磁带仍然是一个有趣的select,因为它有本地支持less和coffescript。 它也支持HTML模板,如果你对客户端mvc框架感兴趣(主干,挖空等)

就像对此进行更新一样,LESS和CoffeeScript支持已添加到Visual Studio 2012的Update 2软件包中,因此开始越来越多地认为将所需的转换添加到本地Bundling / MVC4中的缩小比长期使用Cassette更有效。