通过ASP.NET 4.5 WebForms中的bundle.config与BundleConfig.cs捆绑资源

kma*_*man 36 asp.net webforms asp.net-4.5

关于ASP.NET 4.5的新System.Web.Optimization/Microsoft.AspNet.Web.Optimization:

任何人都可以解释使用BundleConfig.cs类文件而不是bundle.config xml文件使用捆绑资源的区别吗?

我看过一些文章显示在BundleConfig.cs中捆绑了js和css,而其他文章则显示BundleConfig.cs中的捆绑js和bundle.config中的css.

我想我不明白#1)为什么你不会为了简单而以一种特殊的方式做到这一点 - 以及#2)为什么有人宁愿在类文件中对这些资源进行硬编码呢?将它们放在一个xml文件中似乎是一种更加动态的方法,可以在必要时即时更改.

似乎更多的文章实际上倾向于使用BundleConfig.cs而不是其他任何东西.是否有某些特定的赞成或赞成鼓励这一点?

另外,如果有关于System.Web.Optimization的任何真实文档,我很想知道位置(因为我肯定找不到它).

谢谢-

Ele*_*zar 22

据我所知,接受的答案实际上并没有回答这个问题.它讨论了捆绑框架的好处,但没有讨论如何使用BundleConfig.cs与使用bundle.config文件不同.

很大程度上取决于您是喜欢使用代码还是使用标记,但每个都有一些特定于该方法的专业人员.

对于bundle.config,实际上只有一个好处,但它是一个很大的好处.通过使用它,您可以管理捆绑包而无需触摸代码.这意味着您无需重新编译即可进行更改,从而使快速部署变得更加容易.此外,这意味着您最熟悉应该捆绑的文件的前端开发人员可以定义捆绑包,而无需使用任何后端代码.

但是,您可以在Bundle.config中指定的内容有很多限制.例如,您无法指定要应用于单个项目或包的任何自定义转换.那你能设置的唯一的包属性是Path,CdnPathCdnFallbackExpression.您无法设置OrdererEnableFileExtensionReplacements属性.您无法包含包含所有子目录的目录(就像您可以使用该IncludeDirectory方法一样).基本上,有很多功能只能通过后端代码获得.当然,通过使用后端代码来检索bundle.config中定义的包,然后进行操作,可以设置很多这样的功能.但是如果你要这样做,你也可以在后端创建捆绑包.

我的个人理念是使用bundle.config,除非我需要对那些不可能的bundle做一些事情.但是,我确实同意将它们放在一个地方是理想的.如果我决定需要使用该类,那么我将把它用于我所有类型的bundle(我有时会将我的JS包放在类中,而我的CSS包放在.config文件中).不过,我确信一些完全合理的人会不同意这个过程.

  • 此外,显式编写代码可以让您准确了解代码的执行时间,设置断点,检查输入,输出和其他环境变量.建议使用bundle.config,但代码更灵活(放在IF/ELSE中),甚至可测试. (2认同)

Eri*_*edt 6

这篇文章比我更好地解释了这一切

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

最好的事情之一是:

捆绑框架遵循几个常见的约定,例如:

当存在"FileX.min.js"和"FileX.js"时,选择".min"文件进行发布.

选择非".min"版本进行调试.忽略仅由IntelliSense使用的"-vsdoc"文件(例如jquery-1.7.1-vsdoc.js).


Bel*_*014 6

任何人都可以解释使用BundleConfig.cs类文件而不是bundle.config xml文件使用捆绑资源的区别吗?

不同之处在于您必须在运行时读取,解析和加载bundle.config的内容.因此,使用BundleConfig.cs类文件可能更简单.

1)为什么你不会为了简单而以一种特殊的方式做它们

完全同意.

2)为什么有人愿意在类文件中硬编码资源?

简单地说:易于理解.

将它们放在一个xml文件中似乎是一种更加动态的方法,可以在必要时即时更改.

是的,但您必须编写更多代码来检测何时发生更改,然后添加/删除/替换现有设置.如果做得不好,可能会在运行时导致UI问题.

另外,如果有关于System.Web.Optimization的任何真实文档,我很想知道位置(因为我肯定找不到它).

已在上面回答,但我会重复:http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

  • **您**不需要编写代码来检测更改,添加/删除/替换或解析.config文件.框架为您做到了这一点.此外,我个人认为具有所有资源的单个XML文件比指定它们的代码更容易理解. (3认同)