【发布时间】:2012-03-13 01:32:07
【问题描述】:
我目前正在开发一个原型 ASP.NET MVC 3 解决方案,该解决方案将用作多个项目重写(来自 Web 表单)的基础。
我的目标之一是跨应用程序实现一些脚本管理,而我们目前没有。
MVC 3 恕我直言:如果您需要在局部视图或模板视图上指定特定脚本 - 您最终可能会失去对脚本块在呈现的 HTML 中的位置的控制,或者不得不在父视图上指定每个依赖的 javascript 文件。
我一直在认真考虑使用http://getcassette.net/ 作为解决所描述问题的框架。然而,MVC4 beta 的最新版本让我再次怀疑自己:MVC 的 Bundles 看起来与 Cassette 的 Bundles 非常相似,我再次感到困惑:
我应该现在实施盒式磁带而不是迁移到 MVC4 捆绑包吗?
我是否应该自己实现一些简化的脚本管理器(比如 MVC4 预览版中的 Scripts 助手类),然后迁移到 MVC4
1234563 /p>
我没有使用 Cassette 本身的经验,我发现自己很难进行比较,希望得到任何答案或提示。
编辑: 我只是认为还有另一种选择:为 MVC 捆绑安装 beta nuget 包:https://nuget.org/packages/Microsoft.Web.Optimization
结论: 我对 MVC4 捆绑包实现的研究越多,我注意到的差异就越大:MVC4 捆绑包没有解决上述 MVC3 问题——它们只是进行捆绑和缩小。此外,盒式磁带不仅能够在特定位置呈现脚本标签,它还能够以正确的顺序对它们进行排序,这不是微不足道的。 因此,目前我对这两种解决方案都不满意,我会尝试提出自己的简约实现,希望将来这种情况会有所改善。
但是,如果您不害怕在您的项目中添加 5+ 依赖项和大量 web.config 更改 - 那就选择盒式磁带。我希望它会在某个时候更新,以利用内部的 MVC 捆绑来减少功能重复,并希望它变得更加模块化。
更新: 从 Cassette 2.0 版开始,如果您只需要 bundle 和 js 依赖解析,则不再需要包含咖啡脚本和 Cassette 的其他功能。所以在这一点上,Cassette 对我来说是一个明显的赢家。
【问题讨论】:
-
感谢您的所有更新,仅此问题就有很大帮助! :)
-
是的,感谢您的更新,这比答案更有帮助,因为它包含了实际经验。
标签: javascript asp.net asp.net-mvc asp.net-mvc-4 asp.net-optimization