Frage

Ich entwickle meine erste mehrsprachige C# -Seite und alles läuft in Ordnung, bis auf einen entscheidenden Aspekt. Ich bin mir nicht zu 100% sicher, was die beste Option für das Speichern von Zeichenfolgen (normalerweise einzelne Wörter) ist, die durch Code aus meinem Code hinter Seiten übersetzt werden.

Am vorderen Ende der Website verwende ich ASP.NET -Ressourcendateien für den Wortlaut auf den Seiten. Dieser Teil ist in Ordnung. Diese Seite wird jedoch XML -Anrufe tätigen und die XML -Antworten sind immer nur in englischer Sprache. Ich habe ein Excel -Blatt mit allen Wörtern erhalten, die von der XML in die verschiedenen Sprachen eingebaut werden, aber ich bin mir nicht sicher, wie ich diese Informationen am besten speichern/zugreifen kann. Es gibt ungefähr 80 Wörter x 7 Sprachen.

Ich denke darüber nach, ein Wörterbuchobjekt für jede Sprache zu erstellen, die von meiner global.asax -Datei zur Anwendungslaufzeit erstellt wurde und es einfach im Speicher speichert. Die positive Seite dafür ist, dass das Wörterbuchobjekt nur einmal erstellt werden muss (bis IIS neu startet) und von jedem Benutzer zugegriffen werden kann, ohne wieder aufgebaut zu werden, aber der Nachteil ist, dass ich 7 Wörterbuchobjekte habe, die ständig im Speicher gespeichert werden. Der Server ist ein Gewinn 2008 64bit mit 4 GB RAM. Sollte ich mich also sogar mit dem Speicher befassen, der mit dieser Methode aufgenommen wird?

Was denkst du, wäre der beste Weg, verschiedene Sprachwörter zu speichern/abzurufen, die von allen Benutzern verwendet würden?

Danke für deinen Beitrag.

Reich

War es hilfreich?

Lösung

Soweit Sie sagen, sehen Sie 560 Wörter an, die sich auf der Grundlage des Gebietsschemas unterscheiden müssen. Dies ist ein Tropfen im Meer. Die von Ihnen in Betracht gezogene Ressourcendateimethode ist für den Zweck geeignet und ich würde empfehlen, sie zu verwenden. Sie integrieren sich in Steuerelemente, sodass Sie das Beste daraus machen werden.

Wenn es Sie beunruhigt, könnten Sie sie auf einem Schieber -Cache haben, dh zum Beispiel mit einem Schieber von 20 Minuten, aber ich sehe nichts falsches an Ihrer Wahl in dieser Lösung.

Omo

Prost,

Andrew

PS haben dies lesen, um zu sehen, wie Sie Werte in verschiedenen Ressourcendateien an Steuerelemente und Literale finden und binden können und programmatisch verwenden können.

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

Andere Tipps

Solange Sie sich der Auswirkungen dessen bewusst sind, dann wäre es in Ordnung, diese Daten im Speicher zu speichern (solange Sie genug dafür haben). Sobald Sie wissen, was für den aktuellen Benutzer angemessen ist, wäre es in Ordnung, ihn in den Speicher zu werfen. Sie können sich so etwas wie Memcached Win32 oder Velocity ansehen, um den Speicher auf einen anderen App -Server abzuleiten. Verwenden Sie dies auch bei Ihrer lokalen Anwendung vorerst, wenn es Zeit ist, dies auf einen anderen Server zu bringen oder Ihre App zu erweitern. Und denken Sie daran, dass je mehr Sprachen Sie unterstützen, je mehr Dinge Sie im Gedächtnis speichern. Behalten Sie die Menge an Daten im Auge, die auf Ihrem einzigen App -Server im Speicher gespeichert werden, da dies rechtzeitig überwältigend werden kann. Stellen Sie außerdem sicher, dass die von Ihnen verwendeten Schlüssel spezifisch für die Sprache sind. Andernfalls stellen Sie möglicherweise fest, dass Sie ein Menü auf Deutsch für einen englischen Benutzer speichern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top