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

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

MVC 3 有一个缺陷恕我直言:如果您需要在局部视图或模板视图上指定特定的脚本,则可能最终无法控制脚本块在渲染HTML中的位置,或者不得不在父视图上指定每个依赖的javascript文件。

我一直在认真考虑使用 http://getcassette.net/ 作为解决上述问题的框架。但是,最新版本的MVC4 Beta让我再次怀疑:MVC的捆绑包看上去与Cassette的捆绑包非常相似,我再次感到困惑:

  1. 我现在应该实施盒式磁带,然后再迁移到MVC4捆绑软件吗?

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

  3. 或者我应该将卡式盒集成到项目中,并希望它比MVC的实现更具前瞻性(我真的不喜欢此选项,只是因为附带了很多依赖式卡式盒)。 / p>

    我对Cassette本身没有经验,发现自己很难进行比较,希望能得到任何答案或提示。

    编辑: 我只是想出了另一种选择:为MVC捆绑安装beta nuget软件包: https:// nuget。 org / packages / Microsoft.Web.Optimization

    结论: 我对MVC4捆绑软件实现的研究越多,我注意到的差异就越大:MVC4捆绑软件无法解决上述的MVC3问题-它们只是捆绑和缩小。而且,盒式磁带不仅能够在特定位置呈现脚本标签,而且还能够以不平凡的正确顺序对其进行排序。 因此,目前我对这两种解决方案都不满意,我将尝试提出自己的极简主义实现方案,希望将来情况会有所改善。

    但是,如果您不怕添加 5 + 依赖项并将大量的web.config更改添加到您的项目中,请使用卡带。我希望它将在某个时候进行更新,以利用内部的MVC捆绑来减少功能重复,并希望它将变得更加模块化。


    更新: 从Cassette的2.0版开始,如果只需要bundle和js依赖项解析,就不再需要包含coffee脚本和Cassette的其他功能。因此,在这一点上,Cassette对我来说显然是赢家。

有帮助吗?

解决方案

有关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,它运行得很好。如果您使用NuGet,实际上并没有太多的配置,因此我的想法是,现在使用Cassette并随后再切换就可以了。

要考虑的另一件事是,Cassette可以进行更少的编译。我不确定MVC4捆绑软件是否能做到这一点,因为我还没有时间阅读它。

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

作为对此的更新,在Visual Studio 2012的Update 2软件包中添加了对LESS和CoffeeScript的支持,因此开始看起来越来越像最好将所需的转换添加到Java的本地实现中从长远来看,捆绑/缩小支持MVC4,而不是像Cassette那样。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top