Pergunta

Não tenho certeza se essa pergunta se qualifica para estar aqui, mas não consigo pensar em um lugar melhor para ir.

Estou construindo um aplicativo da Web que tenha vários caminhos alternativos para a maioria dos casos de uso. Esses caminhos que percebo como regras de negócios. Gostaria de codificar meu aplicativo primeiro nos cenários principais e depois aplicar cenários alternativos como regras de negócios (as regras podem ser adicionadas e removidas mesmo quando a aplicação estiver em produção).

Eu acho que meu aplicativo merece um mecanismo de regra. Eu não usei nenhum no passado. Então, eu tenho poucas perguntas, mas antes disso está o perfil do meu aplicativo:

  • Aplicativo baseado na Web (Intensivo de dados)
  • Um tanto crítico (relacionado aos cuidados de saúde) - o dinamismo precisa ser contabilizado
  • Microsoft .NET Plataforma (ASP.NET, MS SQL Server, WCF)

Aqui estão algumas consultas:

  • Qual a melhor forma de externalizar as regras?
  • É possível aplicar regras imediatamente ou em termos de lote é a única possibilidade?
  • Como o usuário comercial pode estar no controle das regras?
  • Qual o melhor motor de regra (adequado)? (Prefiro acomodar um produto de código aberto)

Qualquer experiência adicional é bem -vinda, pois ainda estou perfurando as necessidades.

Foi útil?

Solução

Existem muitos mecanismos de regras de negócios disponíveis para asp.net; Windows Workflow Foundation, BizTalk Engine de regras de negócios, Solver Foundation, Fluxo de insight, e Estrutura reativa. O Google revela muito mais, como Engine de regras simples e Engine de regras personalizadas.

Se houver muitas soluções para um problema, isso é uma pista de nenhuma delas, e essa tem sido minha experiência usando os motores de regra. Investigei o WWF, e minha experiência foi que a implementação do mecanismo e a definição de regras era mais difícil e propensa a erros do que simplesmente codificar as regras na lógica do aplicativo.

Eu desencorajo DSLs de formato binário ou gráficos. Na minha experiência, eles são muito difíceis de mudar, depurar, pesquisar e manter.

Meu conselho é implementar as regras em um idioma familiar, específico para o usuário final, específico de domínio. Em qual idioma dependerá do domínio em que você está trabalhando e em quais idiomas seus usuários finais estão familiarizados. Investigue produtos e implementações concorrentes para ver o que já está sendo usado em seu domínio.

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