Quando usar a Fundação Windows Workflow? [fechado]

algumas coisas são mais fáceis de implementar apenas à mão (Código), mas algumas são mais fáceis através do WF. Parece que WF pode ser usado para criar (quase) qualquer tipo de algoritmo. Então (teoricamente) eu posso fazer toda a minha lógica em WF, mas provavelmente é uma má ideia fazê-lo para todos os projetos.

Em que situações é boa ideia usar o WF e quando é que vai tornar as coisas mais difíceis? Quais são os prós e contras / custo do WF vs. codificação à mão?

Author: Panos, 2008-09-19

11 answers

Só poderá necessitar de WF se alguma das seguintes informações for verdadeira:

    Tens um processo a longo prazo.
  1. tem um processo que muda frequentemente.
  2. Queres um modelo visual do processo.

Para mais detalhes, veja o post de Paul Andrew: para que usar a Fundação Workflow do Windows?

Por favor, não confunda ou relacione WF com qualquer tipo de programação visual. É errado e pode levar a decisões de arquitetura/design muito ruim.
 120
Author: Panos, 2016-08-24 09:25:18
Nunca. Provavelmente vais arrepender-te.
  • curva de aprendizagem íngreme
  • difícil de depurar
  • difícil de manter
  • não fornece energia suficiente, flexibilidade ou ganho de produtividade para justificar a sua utilização
  • pode e irá corromper o estado de aplicação que não pode ser recuperado

A única vez que eu poderia conceber de usar WF é se eu quisesse apresentar o designer para um usuário final e provavelmente nem mesmo nessa altura.

Confia em mim, nada jamais acontecerá. seja tão direto, poderoso ou flexível quanto o código que você escreve para fazer exatamente o que você precisa que ele faça. Afasta-te da WF. Claro, esta é apenas a minha opinião, mas acho que é muito boa. :)
 72
Author: Ronnie Overby, 2018-03-06 15:02:13
O código gerado pela WF é desagradável. O valor que o WF traz está na representação visual do sistema, embora eu ainda não tenha visto nada (6-7 projetos em trabalho agora com o WF que eu estive envolvido) onde eu não teria preferido um projeto mais simples mão codificado.
 47
Author: craigb, 2008-09-19 22:16:19

Em geral, se você não precisa das características de persistência e rastreamento (que na minha opinião são as principais características), Você não deve usar a Fundação Workflow.

Aqui estão as vantagens e desvantagens da Fundação Workflow que recolhi da minha experiência:

Vantagens

    Persistência: se você vai ter muitos processos de longa duração (dias, semanas, meses), então os fluxos de trabalho são ótimos para isso. As instâncias de fluxo de trabalho inactivo persistem no base de dados para não usar a memória.
  • seguimento: o WF fornece o mecanismo para seguir cada actividade executada num fluxo de trabalho
  • *Designer Visual: ponho isto como um*, porque acho que isto só é útil para fins de marketing. Como desenvolvedor, prefiro escrever código em vez de encaixar as coisas visualmente. E quando você tem um não-Desenvolvedor fazendo fluxos de trabalho, você muitas vezes acaba com uma enorme confusão bagunca.

Desvantagens

    Modelo de programação: você é muito limitado em recursos de programação. Pense em todas as grandes características que você tem em C#, em seguida, esqueça sobre eles. Simple one or two line statements in C# becomes a fairly large block activities. Isto é particularmente difícil de validar. Tendo dito isso, se você é realmente cuidadoso para manter apenas a lógica de alto nível em fluxos de trabalho, e tudo o resto em C#, então pode não ser um problema.
  • Desempenho: os fluxos de trabalho consomem uma grande quantidade de memória. Se você está implantando muitos fluxos de trabalho em um servidor, certifique-se de que você tem toneladas de memória. Também esteja ciente de que os fluxos de trabalho são muito mais lentos do que o código C# normal.
  • curva de aprendizagem íngreme, difícil de depurar: como mencionado acima. Vais passar muito tempo a descobrir como fazer as coisas funcionarem, e a descobrir a melhor maneira de fazer alguma coisa.
  • incompatibilidade da versão do fluxo de trabalho: se implantar um fluxo de trabalho com persistência, e você precisa fazer atualizações para o fluxo de trabalho, as instâncias antigas do fluxo de trabalho não são mais compatíveis. Supostamente, isto está fixado em. Net 4.5.
  • tem de usar expressões VB (o.net 4. 5 permite expressões C#).
  • Não flexível: se precisar de alguma funcionalidade especial ou específica não fornecida pela Workflow Foundation, prepare-se para muita dor. Em alguns casos, pode nem ser possível. Quem sabe até tentares? Há muito risco aqui.
  • WCF XAML serviços sem interfaces: normalmente com serviços WCF, você se desenvolve contra uma interface. Com os Serviços WCF XAML, você não pode garantir que um serviço WCF XAML tenha implementado tudo em uma interface. Você nem precisa definir uma interface. (tanto quanto sei...)
 34
Author: Mas, 2013-07-29 11:14:38
A principal razão que encontrei para usar a fundação workflow é o quanto isso te tira da caixa em termos de rastreamento e persistência. É muito fácil colocar o serviço de persistência em funcionamento, o que traz confiabilidade e distribuição de carga entre várias instâncias e hosts. Por outro lado, assim como os formulários de aplicativos, os padrões de código que o designer de fluxo de trabalho empurra você para são ruins. Mas você pode evitar problemas escrevendo nenhum código no fluxo de trabalho e delegando todo o trabalho para outras classes, que podem ser organizadas e unidade testada mais graciosamente do que o fluxo de trabalho. Então você começa o aspecto visual fresco do designer sem o cruft do Código do spaghetti para trás.
 24
Author: Tegan Mulholland, 2008-09-19 18:10:12
Pessoalmente, não estou convencido com a WF. A sua utilidade não era tão óbvia para mim como outras novas tecnologias MS, como WPF ou WCF. Eu acho que o WF será usado pesadamente em aplicações de negócios no futuro, mas eu não tenho planos para usá-lo porque não parece ser a ferramenta certa para o trabalho para meus projetos.
 11
Author: Rob, 2012-01-07 15:44:21

A empresa que eu estou trabalhando atualmente para configurar um Windows Workflow Foundation (WF) e as razões que escolhi para usar foi porque as regras seria freqüentemente mudando e que forçá-los a fazer uma recompilação das várias dll's, etc, e então a sua solução foi colocar as regras no banco de dados e chamá-los de lá. Desta forma, poderiam alterar as regras e não ter de recompilar e redistribuir os dlls, etc.

 6
Author: rae1, 2013-09-09 15:25:58

Os fluxos de trabalho do Windows seduzem os gestores de TI que não codificam, o BAs e outros como o seu primo BizTalk, mas na prática os testes unitários, depuração e cobertura de código são apenas três das muitas armadilhas. Você pode superar alguns deles, mas você tem que investir pesadamente em alcançar isso, enquanto que com um código simples você só consegue isso. Se você realmente tem uma exigência de longa duração, então você provavelmente precisa de algo mais sofisticado. Eu ouvi a discussão sobre ser capaz de lançar novos arquivos xaml em produção sem re-compilar dlls, mas honestamente o tempo que os fluxos de trabalho vão consumir poderia ser melhor usado para melhorar a sua integração contínua ao ponto em que as implementações compiladas não são um problema.

 5
Author: Owain Glyndŵr, 2014-08-15 05:58:38
Eu usá-lo-ia em qualquer ambiente onde precisasse de trabalhar com o workflow, no entanto, ao usá-lo em conjunção com K2 ou mesmo SharePoint 2007, o poder da plataforma é realmente útil. Ao desenvolver aplicações de negócios com bi specialist é recomendado o uso da plataforma e isso normalmente só seria relevante para simplificar e melhorar os processos de negócios. Para que conste, o WF foi desenvolvido em conjunto com a equipa de desenvolvimento do K2 e o novo K2 Blackpearl foi construído em top of WF, so is MOSS 2007 and WSS 3.0's workflow engines.
 2
Author: BinaryMisfit, 2008-09-21 18:13:11
Quando não queres escrever manualmente todos esses códigos para manter a interface visual, o seguimento e a persistência, é uma escolha sábia votar no FM.
 1
Author: sparksustc, 2013-04-15 08:44:54

Tenho usado o workflow do Windows há meses para desenvolver actividades personalizadas e um designer que não-programadores podem usar para construir fluxos de trabalho. WF é muito poderoso, mas é tão bom quanto as atividades customizadas que são construídas pelos desenvolvedores. Quando se trata disso, um desenvolvedor teria que olhar sobre fluxos de trabalho construídos por não-desenvolvedores para testar e depurar, mas a partir do ponto em que eles podem criar fluxos de trabalho rascunho - isso é fantástico.

Além disso, nos casos em que processos longos WF é uma boa pilha de tecnologia para usar quando você precisa atualizar processos dinamicamente-sem ter que reinstalar/baixar ou fazer qualquer coisa, basta adicionar os novos arquivos XAML a um diretório e sua arquitetura deve ser configurada com versionamento para raspar o antigo e usar o novo.

 0
Author: JohnChris, 2018-03-06 08:53:11