Pregunta

Estoy desarrollando mi primer sitio multilingüe C # y todo va bien, excepto por un aspecto crucial. No estoy 100% seguro de lo que es la mejor opción para el almacenamiento de cadenas (por lo general palabras sueltas) que será traducido por el código de mi código detrás de las páginas.

En la parte delantera del sitio que voy a utilizar archivos de recursos de ASP.NET para la redacción de las páginas. Esta parte está muy bien. Sin embargo, este sitio va a hacer llamadas XML y las respuestas XML son sólo alguna vez en Inglés. Se me ha dado una hoja de Excel con todas las palabras que serán devueltos por el XML roto en los diferentes idiomas, pero no estoy seguro de cuál es la mejor para almacenar / acceso a esta información. Hay aproximadamente 80 palabras x 7 idiomas.

Estoy pensando en la creación de un objeto de diccionario para cada idioma que se crea por mi archivo Global.asax en tiempo de ejecución de la aplicación y simplemente mantenerla almacenada en la memoria. El lado positivo de esto es que el objeto de diccionario solamente tendrá que ser creada una vez (hasta que se reinicia IIS) y puede ser visitada por cualquier usuario sin necesidad de ser reconstruida, pero el inconveniente es que tengo 7 objetos diccionario almacenan permanentemente en la memoria. El servidor de 64 bits es un Win 2008 con 4 GB de RAM por lo debería incluso estar preocupado con la memoria ocupada por el uso de este método?

¿Qué piensan ustedes sería la mejor manera de almacenar / recuperar diversas clases de palabras de la lengua que serían utilizados por todos los usuarios?

Gracias por tu aportación.

Rich

¿Fue útil?

Solución

Por lo que dice, que busca a 560 palabras que deben ser diferentes según la configuración regional. Esta es una gota en el océano. El método de archivo de recursos que ha contemplado es adecuado para el propósito y lo recomendaría usarlos. Se integran con los controles por lo que se van a realizar el máximo provecho de ellos.

Si lo hiciera problemas para usted, usted podría contar con ellos en una memoria caché de deslizamiento, es decir, la memoria caché de 20 minutos, por ejemplo, deslizamiento, pero no ver nada malo con su elección en esta solución.

OMO

Saludos,

Andrew

P.s. Tiene una lectura a través de este, para ver cómo se puede encontrar y unir los valores en diferentes archivos de recursos a los controles y literales y utilizar mediante programación.

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

Otros consejos

Mientras que son conscientes del impacto de hacerlo entonces sí, el almacenamiento de estos datos en la memoria estaría bien (siempre y cuando tenga suficiente para hacerlo). Una vez que sepa lo que es apropiado para el usuario actual y luego lo arrojó en la memoria estaría bien. Lo podría hacer en algo así como MemCached Win32 o Velocidad aunque para descargar el almacenamiento a otro servidor de aplicaciones. Utilice esta aun en su aplicación local por el momento, de esa manera cuando es el momento de empujar esto a otro servidor o hacer crecer su aplicación que haya una clara separación de las capas definidas en la capa de almacenamiento en caché. Y tenga en cuenta que cuantos más idiomas que apoyan la más cosas que está almacenando en la memoria. Mantenga un ojo en la cantidad de datos que se almacenan en la memoria en el servidor de aplicación solitario ya que esto podría llegar a ser abrumador en el tiempo. Además, asegúrese de que las llaves que está utilizando son específicas del lenguaje. De lo contrario, podría encontrar que usted está almacenando un menú en alemán para un usuario Inglés.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top