web-dev-qa-db-ja.com

ASP.NET 4.5 WebFormsのbundle.configとBundleConfig.csを介したリソースのバンドル

ASP.NET 4.5の新しいSystem.Web.Optimization/Microsoft.AspNet.Web.Optimizationについて:

bundle.configxmlではなく、BundleConfig.csクラスファイルを使用して、バンドルリソースの使用の違いを誰でも説明できますか?ファイル?

BundleConfig.csでjsとcssの両方をバンドルする articles を見て、BundleConfig.csでjsとcssをバンドルする others を示す.config。

私は理解していないと思います#1)単純にするために特定の方法の両方を行うだけではない理由-および#2)クラスファイルでそのようなリソースをハードコーディングすることを好む理由必要に応じてオンザフライで変更できるxmlファイルに配置するだけの、はるかに動的なアプローチのようです。

実際、BundleConfig.csを使用する記事は他のどの記事よりも多いようです。これを奨励する特定の賛否両論はありますか?

また、System.Web.Optimizationに実際のドキュメントがある場合は、場所を知りたいと思います(見つけることができないためです)。

ありがとう

36
kman

このドキュメンテーションは、私が今までできたよりもすべてをよく説明しています

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

最も素晴らしいものの1つは次のとおりです。

バンドルフレームワークは、次のようないくつかの一般的な規則に従います。

「FileX.min.js」および「FileX.js」が存在する場合、リリース用の「.min」ファイルを選択します。

デバッグ用に「.min」以外のバージョンを選択します。 IntelliSenseでのみ使用される「-vsdoc」ファイル(jquery-1.7.1-vsdoc.jsなど)を無視します。

6
Erik Bergstedt

私が知る限り、受け入れられた答えは実際には質問にまったく答えていません。バンドルフレームワークの利点について説明しますが、BundleConfig.csの使用がbundle.configファイルの使用とどのように異なるかについては説明しません。

その多くは、コードまたはマークアップのどちらで作業するかによって決まりますが、それぞれにそのメソッドに固有の長所があります。

Bundle.configには、実際には1つの利点しかありませんが、大きな利点があります。これを使用することにより、コードを一切変更せずにバンドルを管理できます。つまり、再コンパイルせずに変更を加えることができ、迅速な展開が容易になります。また、バンドルされるファイルに最も精通するフロントエンド開発者は、バックエンドコードを操作せずにバンドルを定義できることを意味します。

ただし、Bundle.configで指定できるものにはかなりの制限があります。たとえば、個々のアイテムまたはバンドルに適用するカスタム変換を指定することはできません。設定できるバンドルプロパティは、PathCdnPath、およびCdnFallbackExpressionのみです。 OrdererまたはEnableFileExtensionReplacementsプロパティを設定することはできません。すべてのサブディレクトリを含むディレクトリを含める方法はありません(IncludeDirectoryメソッドでできるように)。基本的に、多くの機能がバックエンドコードでのみ利用可能です。確かに、この多くは、バックエンドコードを使用してbundle.configで定義されたバンドルを取得し、操作することで設定できます。ただし、それを行う場合は、バックエンドでバンドルを作成することもできます。

私の個人的な哲学は、その方法では不可能なバンドルで何かをする必要がない限り、bundle.configを使用することです。ただし、それらをすべて1か所に収めることが理想的であることに同意します。クラスを使用する必要があると判断した場合は、そのタイプのバンドルのallに使用します(JSバンドルをクラスに、CSSバンドルを.configに配置することがあります)ファイル)。しかし、完全に合理的な人々の中には、そのプロセスに反対する人もいると思います。

22
Elezar

Bundle.config xmlファイルではなくBundleConfig.csクラスファイルを使用して、バンドルリソースの使用の違いを誰でも説明できますか?

違いは、実行時にbundle.configのコンテンツを読み取り、解析し、ロードする必要があることです。したがって、BundleConfig.csクラスファイルを使用する方が簡単です。

1)単純にするために特定の方法で両方を実行しない理由

完全に同意する。

2)なぜだれかがクラスファイルにそのようなリソースをハードコーディングすることを好むのでしょうか?

簡単に言えば、わかりやすい。

必要に応じてオンザフライで変更できるxmlファイルに配置するだけの、はるかに動的なアプローチのようです。

はい。ただし、変更が発生したことを検出し、既存のセットアップを追加/削除/置換するためのコードをさらに記述する必要があります。不十分な場合、実行時にUIの問題が発生する可能性があります。

また、System.Web.Optimizationに実際のドキュメントがある場合は、場所を知りたいと思います(見つけることができないためです)。

すでに上記で答えましたが、私は繰り返します: http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

6
Believe2014