Estado global no aplicativo ASP.NET MVC
-
18-09-2019 - |
Pergunta
Problema: Nosso console da web mostra uma lista de todos os computadores nos quais nosso aplicativo está instalado. Cada máquina possui algumas informações de identificação que podem ser associadas a ela. Strings simples, como nome do departamento, nome da equipe etc. Precisamos fazer de tal forma que o usuário possa alterar o nome desses campos de identificação e adicionar/remover quantos quiser. Como podemos implementar melhor isso?
Inicialmente, pensei que poderia implementar isso como um singleton. No início do aplicativo, eu poderia ler a última identidade do conjunto nomes de campo A partir do banco de dados e crie uma instância de singleton de uma lista de strings. Isso pode ser transmitido a todas as funções que precisam exibir ou acessar as informações de identidade. O apelo nesta opção é que, se o usuário alterar o nome dos campos de identidade da interface do usuário ou adicionar ou remover os campos, posso simplesmente modificar o objeto Singleton e a alteração será refletida.
No entanto, sinto que deve haver uma maneira melhor de alcançar o que eu quero. Porque existem muitas informações que o usuário pode modificar à vontade e precisamos rastreá -las.
Alguma sugestão?
Solução
Basta usar os objetos do seu ORM para manter e usar essas informações no aplicativo. Muitos ORMs têm a capacidade de armazenar em cache esse tipo de coisa, por isso não é como se você perdesse qualquer velocidade sobre ela.
Não sou um grande fã de usar um singleton para fazer isso. É difícil testar o teste de unidade e você ainda terá que persistir no banco de dados eventualmente.