Para um aplicativo corporativo de grande porte, todos sabem que ser capaz de se adaptar às mudanças é um dos aspectos mais importantes do design. Eu uso uma abordagem baseada em regras a maior parte do tempo para lidar com a alteração da lógica de negócios, com cada regra sendo armazenada em um banco de dados. Isso permite que alterações fáceis sejam feitas sem entrar em detalhes desagradáveis. Agora, como o C # não pode Eval ("foo (bar);"), isso é feito usando cadeias formatadas armazenadas em linhas que são processadas em JavaScript no tempo de execução. Isso funciona bem, no entanto, é menos do que elegante e não seria o mais agradável para alguém entender depois que se tornar legado.
Existe uma solução mais elegante para isso? Quando você adota milhares de regras que mudam com bastante frequência, isso se torna um problema real, mas isso não pode ser tão incomum em um problema que alguém não pensou em uma maneira melhor de fazer isso. Alguma sugestão? Esse método atual é defensável? Quais são as alternativas?
Edit: Apenas para esclarecer, este é um aplicativo corporativo de grande porte, portanto, não importa qual solução funcione, haverá muitas pessoas constantemente mantendo suas regras e dados (cerca de 10). Além disso, os dados são alterados com frequência suficiente para dizer que algum tipo de sistema de servidor centralizado é basicamente necessário.