Pergunta

Estou desenvolvendo meu primeiro site multilíngue C# e tudo está indo bem, exceto por um aspecto crucial. Não tenho 100% de certeza de qual é a melhor opção para armazenar strings (normalmente palavras únicas) que serão traduzidas pelo código do meu código atrás das páginas.

Na extremidade frontal do site, usarei arquivos de recursos do ASP.NET para a redação nas páginas. Esta parte está bem. No entanto, este site fará chamadas XML e as respostas XML são apenas em inglês. Recebi uma planilha do Excel com todas as palavras que serão devolvidas pelo XML divididas nos diferentes idiomas, mas não tenho certeza da melhor forma de armazenar/acessar essas informações. Existem aproximadamente 80 palavras x 7 idiomas.

Estou pensando em criar um objeto de dicionário para cada idioma criado pelo meu arquivo global.ASAX no tempo de execução do aplicativo e apenas mantê -lo armazenado na memória. O lado positivo para fazer isso é que o objeto de dicionário só precisará ser criado uma vez (até que o IIS reinicie) e possa ser acessado por qualquer usuário sem precisar ser reconstruído, mas a desvantagem é que tenho 7 objetos de dicionário constantemente armazenados na memória. O servidor é um Win 2008 64bit com 4 GB de RAM, então devo me preocupar com a memória adotada usando esse método?

O que vocês acham que seria a melhor maneira de armazenar/recuperar palavras de linguagem diferentes que seriam usadas por todos os usuários?

Obrigado pela sua contribuição.

Rico

Foi útil?

Solução

Pelo que você diz, você está olhando para 560 palavras que precisam diferir com base no local. Esta é uma gota no oceano. O método de arquivo de recursos que você contemplou é adequado ao objetivo e eu recomendaria usá -los. Eles se integram aos controles para que você aproveite ao máximo eles.

Se isso o incomodasse, você poderia tê -los em um cache deslizante, ou seja, cache deslizante de 20 minutos, por exemplo, mas não vejo nada de errado com sua escolha nesta solução.

Omo

Saúde,

Andrew

PS tem uma leitura sobre isso, para ver como você pode encontrar e vincular valores em diferentes arquivos de recursos a controles e literais e usar programaticamente.

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

Outras dicas

Contanto que você esteja ciente do impacto de fazê -lo, então, armazenar esses dados na memória ficaria bem (desde que você tenha o suficiente para fazê -lo). Depois que você souber o que é apropriado para o usuário atual, jogá -lo na memória ficaria bem. Você pode olhar para algo como Win32 ou velocidade de Memcached, embora para descarregar o armazenamento para outro servidor de aplicativos. Use isso mesmo no aplicativo local por enquanto, quando chegar a hora de empurrar isso para outro servidor ou aumentar seu aplicativo, você tem uma separação clara de preocupações definidas na sua camada de armazenamento em cache. E lembre -se de que quanto mais idiomas você apoia, mais coisas está armazenando na memória. Fique de olho na quantidade de dados armazenados na memória no seu servidor de aplicativos solitários, pois isso pode se tornar esmagador no tempo. Além disso, verifique se as chaves que você está usando são específicas para o idioma. Caso contrário, você poderá achar que está armazenando um menu em alemão para um usuário inglês.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top