37

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

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

BundleConfig.cs に js と css の両方をバンドルすることを示す記事もあれば、BundleConfig.cs にjsバンドルし、bundle.config に css をバンドルすることを示す記事もあります。

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

BundleConfig.cs の使用に実際に傾倒している記事が何よりも多いようです。これを促進する特定の賛否両論はありますか?

また、System.Web.Optimization に関する実際のドキュメントがある場合は、その場所を知りたいです (確かに見つからないため)。

ありがとう-

4

3 に答える 3

23

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

多くの場合、コードで作業するかマークアップで作業するかによって決まりますが、それぞれにその方法に固有の長所があります。

bundle.config のメリットは 1 つだけですが、それは大きなメリットです。これを使用することで、コードにまったく手を加えることなくバンドルを管理できます。つまり、再コンパイルせずに変更を加えることができるため、迅速な展開が容易になります。また、バンドルする必要があるファイルに最も精通しているフロントエンド開発者が、バックエンド コードを操作することなくバンドルを定義できることも意味します。

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

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

于 2014-11-18T18:22:46.753 に答える
7

このドキュメントは、私がこれまでにできたよりもすべてをうまく説明しています

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など)を無視します。

于 2013-01-17T13:05:40.127 に答える
7

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

于 2014-06-16T20:35:47.367 に答える