10

このサイトには、ASP.NET MVC アプリケーションで RESX ファイルにアクセスする方法と、それらを使用するベスト プラクティスに関連する多くの質問があります。

ただし、リソースに関する MSDN の記事を(初めて追加する可能性があります) 読んだ後、サーバー コントロールを使用しないため、RESX ファイルを使用する利点があるかどうか疑問に思います。「暗黙の」ローカリゼーションと「明示的な」ローカライゼーションについてのこのすべての話がありますが、MVC でその恩恵を受けるつもりはありません。

最終的に、私のアプリケーションには、ボタンとメニュー項目用の文字列リソースと、その他の長いコンテンツ用のはるかに長い HTML 項目が必要になります。RESXファイルに貼り付けたくないので、長いアイテムにはCMSを使用したいと思います。

新しいアプリケーションで ASP.NET リソースを使用する、または使用しないという説得力のある理由はありますか。将来の MVC の機能強化や RESX の機能強化は、調和して機能すると思いますが、今のところ、私が見る限り、見栄えのする IDictionary を取得しているだけです。

RESX を続行するか、他の場所を探す必要がありますか? RESX が設計されている種類のリソース用の CMS を検討する必要がありますか?

学んだ教訓は高く評価されます。

4

3 に答える 3

10

RESX インフラストラクチャにはいくつかの利点があります。

  • 適切な言語ごとのリソースをロードする必要はありません。スレッドのロケールが確立されると、CLr は適切なアセンブリを見つけてリソースをロードします。
  • ローカリゼーション用のロケール固有のリソースをサードパーティに渡すのは簡単です。
  • ローカライズされていないリソースには、デフォルトのフォールバック メカニズムがあります。

RESX アプローチには、1 つの特定の欠点もあります。

  • ユーザーがリソースを翻訳する翻訳モデルをサポートするのは困難です。

その最後の点について少し詳しく説明したいと思います。たとえば、Facebook の翻訳モデルを考えてみましょう。Facebook には、人々がさまざまなリソースの翻訳を提供し、投票するためのかなり簡単な方法があります。これらがデータベースに格納されている場合、アプリケーションを再構築および再デプロイすることなく、適切な編集プロセスの後にそれらを使用することができます。RESX モデルでは、リソース アセンブリを再構築して再展開する必要があり、展開プロセスによっては十分なコストがかかる可能性があります。

したがって、どのローカリゼーション プロセスを使用するかを決定する前に、誰がローカリゼーションを行うかを決定し、メイン アプリケーションが既にデプロイされた後にローカライズされたリソースのデプロイ プロセスがどうなるかを確認します。

編集:これらの考慮事項は、ASP.NET フレームワークの選択 (MVC または WebForms) と直交していることを忘れていました。

于 2009-03-04T05:53:15.770 に答える
4

私は「はい」と思います.resxファイルは、新しいアプリケーションにとって依然として良い選択肢です. 特に ASP.NET MVC が文字列の保存に関して何かを変えるとは思いません。

リソースを使用することの優れている点は、

  • それらは管理が非常に簡単です
  • サイトのローカライズは、リソースがない場合よりもはるかに簡単な作業です (私は強調しますが、はるか簡単です) 。
  • リソースはプロバイダー モデルを使用するため、いつでもリソース ストアを置き換えることができます。サイトの実装を変更せずに、db エントリの resx ファイルを切り替えることができます。

頻繁に編集する可能性のある大きなデータ ブロックとは異なる "サイト文字列" のリソース ファイルをお勧めします。したがって、完全な推奨事項として、ボタン、ラベルなどにはリソース ファイル (resx を開始) を使用し、コンテンツには CMS を使用することをお勧めします。

于 2009-03-04T05:25:24.433 に答える