Alguém usou com sucesso o Windows Workflow para um mecanismo de Regras de Negócios / Validação?


11

Gostaria de saber se alguém usou com sucesso o Windows Workflow Foundation para um mecanismo BusinessRules / Validation ou se você conhece algum código de exemplo ou artigos sobre isso.

Se você já usou antes, o que você acha disso? Como é comparado com outros sistemas BusinessRule / Validation?

Estou pensando em regras como

if (A, B, and C) 
    AllowAccess();

Ou

if (Value between X and Y)
    return true;

Respostas:


6

Comecei a construir um mecanismo usando o WWF WCF há vários meses. Não sei quão complexa é sua base de regras, mas a nossa era bastante grande. Quando você tem potencial para algo como 40.000 agências, o WWF não é um bom ajuste. Como alternativa, acabei construindo um mecanismo que usava tabelas de exceção lógica no SQL. As linhas armazenariam os valores básicos, bem como seqüências de caracteres formatadas para fórmulas que variavam entre exceções. Combinada com uma linguagem dinâmica (usei um mecanismo ironpython incorporado com um invólucro e você poderia usar um mecanismo JScript incorporado), a lógica pode ser determinada em um nível altamente abstrato em tempo real. Estou tão feliz por ter seguido esse caminho.A lógica de arrastar e soltar parece ótima, mas os empresários nunca serão capazes de usá-la, apesar do marketing, e isso apenas atrasará o desenvolvedor no IMHO, tornando-se rapidamente um ninho de ratos .

Atualização: se você ainda estiver interessado, aqui está o guia para iniciantes . Certamente não é expansivo, mas tem alguns vídeos decentes. Quanto à configuração, nossos engenheiros de rede fizeram a configuração para mim (política da empresa para manutenção do servidor, segurança etc.), mas supostamente era quase idêntico à configuração de um serviço WCF básico. Basicamente, jogue-o em um diretório virtual no ISS. Como geralmente é um processo de execução demorada, tenha cuidado extra com o gerenciamento de memória ao escrever o serviço. Não dispor de algum recurso repetidamente por 6 meses realmente aumentará e seu servidor não ficará satisfeito.


Como foi configurado? Você conhece algum artigo on-line para começar ou que contenha código de exemplo?
Rachel

Obrigado. Como foi o desempenho da execução das regras de negócios?
Rachel

E muito honestamente, eu sou contra a idéia de usar WWF para isso, no entanto o meu companheiro de equipe é tudo para ele assim que eu gostaria de pelo menos dar uma chance :)
Rachel

1
@ Rachel- o desempenho era razoável (rápido o suficiente para ser executável em uma configuração de interface do usuário com um pouco de multi-threading, se isso significa alguma coisa). Também não é incrivelmente rápido, mas também não há nada com um serviço WCF distribuído.
Morgan Herlocker

Ainda existe algum material disponível na Internet que demonstre seu mecanismo lógico e a abordagem IronPython? (O link "guia do iniciante" não funciona mais).
Robert Harvey

1

Eu tenho que concordar com o ironcode. Escrevemos um sistema no estilo de fluxograma de arrastar e soltar alguns anos antes do lançamento do novo Biztalk (por incrível que pareça). A idéia era que não programadores pudessem programar e o sistema seria facilmente sustentável e modificável.

O resultado: você ainda precisava de 'analistas de negócios', que precisavam ser tão treinados quanto um programador, mas na nova 'linguagem' do sistema WWF. Então você não ganhou muito por lá. O depurador não estava nem de longe tão bom quanto um verdadeiro sistema de desenvolvimento, então você perdeu lá. Você também precisava de programadores para escrever os módulos complicados que eram o núcleo dos dados e o processamento da GUI. A escalabilidade também diminuiu muito rapidamente. Regras simples de negócios eram fáceis de montar, mas, depois de passar por uma dúzia, você usava espaguete.

Eu acho que teve alguns benefícios, mas basicamente seria melhor você usar um mecanismo de script para unir módulos personalizados.

Parecia muito legal para os tipos de marketing, porém, fez uma ótima demonstração :)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.