0

私は最初の多言語C#サイトを開発しており、1つの重要な側面を除いてすべてが順調に進んでいます。ページの後ろのコードからコードによって翻訳される文字列(通常は単一の単語)を格納するための最良のオプションが何であるかを100%確信していません。

サイトのフロントエンドでは、ページの文言にasp.netリソースファイルを使用します。この部分は大丈夫です。ただし、このサイトはXML呼び出しを行い、XML応答は英語のみです。XMLによって返されるすべての単語が異なる言語に分割されたExcelシートが提供されましたが、この情報を保存/アクセスする最善の方法がわかりません。およそ80語x7言語があります。

アプリケーションの実行時にglobal.asaxファイルによって作成される言語ごとに辞書オブジェクトを作成し、それをメモリに保存することを考えています。これを行うことのプラス面は、ディクショナリオブジェクトを一度作成するだけで(IISが再起動するまで)、再構築する必要なしにすべてのユーザーがアクセスできることですが、デメリットは、7つのディクショナリオブジェクトが常にメモリに保存されていることです。サーバーは4GBのRAMを搭載したWin200864ビットなので、この方法を使用して消費されるメモリについても考慮する必要がありますか?

すべてのユーザーが使用するさまざまな言語の単語を保存/取得するための最良の方法は何だと思いますか?

ご入力いただきありがとうございます。

リッチ

4

2 に答える 2

1

あなたが言うことから、あなたはロケールに基づいて異なる必要がある560語を見ています。これは海の一滴です。あなたが考えているリソースファイルの方法は目的に合っているので、それらを使用することをお勧めします。これらはコントロールと統合されているため、それらを最大限に活用できます。

問題が発生した場合は、スライディングキャッシュ、つまりたとえば20分のスライディングキャッシュにそれらを配置できますが、このソリューションでの選択に問題はありません。

OMO

乾杯、

アンドリュー

Psはこれを読み通して、さまざまなリソースファイル内の値を見つけてコントロールやリテラルにバインドし、プログラムで使用する方法を確認します。

http://msdn.microsoft.com/en-us/magazine/cc163566.aspx

于 2009-08-24T16:33:57.513 に答える
0

そうすることの影響を認識している限り、そうです。このデータをメモリに保存することは問題ありません(そうするのに十分な場合)。現在のユーザーにとって何が適切かがわかったら、それをメモリに投げ込むのがよいでしょう。ストレージを別のアプリサーバーにオフロードする場合でも、MemCachedWin32やVelocityのようなものを見るかもしれません。これを別のサーバーにプッシュしたり、アプリを拡張したりするときは、当面はローカルアプリケーションでもこれを使用してください。これにより、キャッシュレイヤーで関心の分離が明確になります。また、サポートする言語が多いほど、メモリに保存するものが増えることに注意してください。時間の経過とともに圧倒される可能性があるため、単独のアプリサーバーのメモリに保存されているデータの量に注意してください。また、使用しているキーがその言語に固有のものであることを確認してください。

于 2009-08-24T16:35:09.180 に答える