Que vantagens são o de utilizar a localização .resx para uma aplicação ASP.NET MVC?

StackOverflow https://stackoverflow.com/questions/609324

  •  03-07-2019
  •  | 
  •  

Pergunta

Há uma série de perguntas neste site relacionado a como acessar resx em uma aplicação ASP.NET MVC, e melhores práticas de usá-los.

No entanto, depois de ler (para a primeira vez que eu poderia acrescentar) a MSDN artigo sobre recursos estou deixado querer saber se há mesmo nenhum vantagens do uso de arquivos RESX desde que eu não vou estar usando controles de servidor. Há toda essa conversa de 'implícita' e 'explícita' localização, mas eu não estou indo para beneficiar de que, com MVC.

Em última análise, a minha candidatura terá recursos de cadeia para os botões e itens de menu e também muito mais HTML itens de conteúdo mais diversas. Gostaria de usar um CMS para os itens mais longos becuase eu tenho certeza que eu não quero ir colando-os em um arquivo RESX.

Existem razões para usar ou não usar recursos do ASP.NET em um new aplicação. Eu estou indo supor que quaisquer futuras melhorias MVC ou melhorias RESX irá trabalhar juntos em harmonia, mas por agora estou apenas começando um glorificado IDictionary, tanto quanto eu posso ver.

Devo prosseguir com RESX ou procurar em outro lugar? Devo mesmo ser considerando um CMS para os tipos de recursos que RESX é projetado para?

Qualquer lições aprendidas seria apreciada.

Foi útil?

Solução

Existem algumas vantagens para a infra-estrutura RESX:

  • você não tem que carregar os recursos de linguagem por adequadas. Uma vez que a localidade do thread é estabelecida, o CLR se encarrega de encontrar a adequada montagem e carregar os recursos.
  • é fácil de mão fora os recursos específicos da localidade para localizações a terceiros.
  • existe um mecanismo de retorno padrão para recursos não localizadas.

Há também uma desvantagem nomeadamente, à abordagem RESX:

  • é difícil modelo de tradução de apoio, onde os usuários traduzir seus recursos para você.

Eu gostaria de elaborar um pouco sobre esse último ponto. Tomemos por exemplo o modelo de tradução Facebook. Facebook tem forma bastante simples para as pessoas para fornecer e votar em traduções de vários recursos. Se estes são armazenados em um banco de dados, seria possível usá-los após o processo editorial adequada sem reconstruir e reimplantar o aplicativo. Com o modelo RESX, os conjuntos de recursos terá de ser reconstruir e reimplantado, o que poderia ter custado alta o suficiente, dependendo do processo de implantação.

Assim, antes de decidir o processo de localização de usar, eu iria olhar para a decisão de quem vai fazer a localização e que o processo de implantação para os recursos localizaed seria após a aplicação principal já está implantado.

EDIT:. eu esqueci de mencionar que estas considerações são ortogonais à escolha framework ASP.NET MVC (ou WebForms)

Outras dicas

Eu diria "sim", resx ainda são uma boa opção para novas aplicações. Eu não acho que ASP.NET MVC em particular mudanças qualquer coisa sobre o armazenamento de suas cordas.

O que é grande sobre o uso de recursos é

  • eles são muito fáceis de gerenciar
  • localizar o seu site é uma tarefa muito mais fácil do que sem recursos (e sublinho muito mais fácil)
  • você pode substituir a loja de recursos a qualquer momento porque os recursos usar o modelo de provedor. Você pode mudar a resx para entradas db sem alterar a implementação de seu site.

Eu recomendo arquivos de recursos para as "cordas do site", que são diferentes do que os grandes blocos de dados que você pode editar em uma base freqüente. Assim, para uma recomendação completa, eu diria que arquivos de recursos uso (resx para começar) para os botões, etiquetas, etc, e um CMS para o conteúdo de carne.

Se você estiver indo para usar Resx e não usar controles de servidor como você está no MVC, por que não estender os métodos MVC auxiliares de modo que você pode criar rótulos e texto localizadas? Em seguida, basta chamar o texto de recurso no método auxiliar.

por exemplo. '<% = Html.CultureLabel ( "ResouceId")%>'

ou '<% = Html.CultureButton ( "Nome", "ResouceId", HtmlButtonType.Button)%>'

Apenas um pensamento.

Também gerir a globalização de um site é muito mais fácil com resx para o texto.

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