Pergunta

Estou avaliando WF para uso em aplicativos de linha de negócios na web, e eu gostaria de ouvir alguns recentes relatos em primeira mão desta tecnologia.

O meu principal interesse aqui é na melhoria da capacidade de manutenção de projetos e talvez em aumentar a produtividade do desenvolvedor quando se trabalha em processos complexos que mudam com freqüência.

Eu realmente gosto da idéia de WF, no entanto, parece ser relativamente desconhecido e muitos comentários mais velhos que eu me deparei mencionar que é esmagadoramente complexa, uma vez que você se acostuma.

Se for overdesigned a tal ponto que é inutilizável (ou um mau trade-off) para um pequeno para projeto de médio porte, isso é algo que eu preciso saber.

É claro que foi para fora desde o final de 2006, por isso talvez tenha amadurecido. Se for esse o caso, isso é outra peça de informação que seria muito útil!

Agradecemos antecipadamente!

Foi útil?

Solução

Windows Workflow Foundation é um produto muito capaz, mas ainda muito em sua 1ª versão: - (

As principais razões para o uso incluem:

  1. visualmente modelagem de requisitos de negócios.
  2. Separar a lógica de negócios das regras de negócio e externalização regras como arquivos XML.
  3. Separando o seu fluxo de negócio a partir de sua aplicação, externalizando seus fluxos de trabalho como arquivos XML.
  4. Criação de processos de execução longa com a capacidade automática para reagir se nada tivesse acontecido por algum período de tempo prolongado. Por exemplo, uma factura não ser pago.
  5. persistência automática de longa duração fluxos de trabalho para manter o uso de recursos para baixo e permitir um processo e / ou máquina para reiniciar.
  6. O controle automático de workflows ajudando com requisitos de negócios.

WF vem como uma biblioteca / quadro de modo a maioria do tempo, você precisa escrever o host que instancia o runtime WF. Dito isto, usando WCF hospedado no IIS é uma solução viável e salva um monte de trabalho. No entanto, o acoplamento WCF / WF é menos do que perfeito e precisa de algum trabalho sério. Veja aqui http : //msmvps.com/blogs/theproblemsolver/archive/2008/08/06/using-a-transactionscopeactivity-with-a-wcf-receiveactivity.aspx para mais detalhes. Esperar algumas mudanças / melhorias na próxima versão.

WF (e WCF) são muito central para muitas das coisas novas que saem da Microsoft. Você pode esperar alguns anúncios interessantes durante o PDC.

BTW manter várias versões de um fluxo de trabalho em execução leva um pouco de trabalho, mas que é principalmente .NET padrão. Eu apenas fiz uma série de posts sobre o assunto começando aqui: http://msmvps.com/blogs/theproblemsolver/archive/2008/09/10/versioning-long-running-workfows.aspx

Sobre a modelagem visual requisitos de negócios. Em teoria, isso funciona muito bem com uma separação de intenções e implementação. No entanto, na prática você vai cair algumas atividades extras em um fluxo de trabalho puramente por razões técnicas e que tipo de derrotas o propósito como você tem que dizer a um analista de negócios a ignorar metade das formas e linhas.

Outras dicas

questão relacionada: Quando usar o Windows Workflow Foundation Minha resposta lá? :

Você pode precisar WF somente se qualquer um dos seguinte é verdadeiro:

  1. Você tem um processo de longa duração.
  2. Você tem um processo que muda freqüentemente.
  3. Você quer um modelo visual do processo.

Para mais detalhes, ver Paul Andrew de post: o que usar o Windows workflow Foundation para ?

Por favor, não confunda ou relacionar-WF com programação visual de qualquer tipo. É errado e pode levar a muito ruim arquitetura / decisões de projeto.

Então, se você tem esses requisitos, então WF é um bom candidato. Claro que é relativamente complexo, mas a menção de que os problemas que está tentando resolver também é complexa (e às vezes muito complexo). IMHO, é muito complexo por exemplo, para objetos / reidratar Desidratar que têm manipuladores de eventos ligados (com eventos que podem ser acionados quando o objeto não está na memória).

Eu não posso julgar o que você quer dizer com "pequeno para projeto de tamanho médio", mas, em geral, eu diria que se seu projeto tem pelo menos dois requisitos da lista acima, então você pode considerar WF como uma solução.

Nós usamos WF em um aplicativo SharePoint grande ish e eu posso dizer que é OK. Ele tem muita energia e flexibilidade. e, como Kevin menciona, uma vez que você Grokar os conceitos subjacentes de fluxos de trabalho, você pode fazer praticamente qualquer coisa que quiser com ele.

Por outro lado, ele tem alguns problemas realmente graves, como a falta de controle de versão, que pode realmente prejudicar a sua aplicação no futuro. Nós fomos forçados a implantar até 3 versões paralelas do mesmo fluxo de trabalho nomeado xxx-v1, xxx-v2 e xxx-v3 para manter instâncias antigas correr e ter novas instâncias usar as versões atualizadas. A verdadeira dor na bunda. Oh, e também existem conceitos alguns realmente não-intuitivas lá (fichas de correlação, wtf ??)

Nós tivemos um projeto no trabalho que eu estava envolvido no uso de fluxos de trabalho. A idéia (de gestão), foi que nós programadores iria escrever as atividades de fluxo de trabalho, juntamente com o "motor" e um quadro. Então não-programadores iria cuidar de tudo o resto através da compilação de seus próprios fluxos de trabalho em DLLs que o motor seria automaticamente carregar.

Gestão foi vendido a ideia de não-programadores que utilizam fluxo de trabalho para ajudar a desenvolver software, e foi praticamente uma completa perda de tempo. O problema que estavam tentando resolver com este projeto era relativamente complexo e sabíamos desde o começo que o software teria que ser modificado quase constantemente (os seus cálculos eram dependentes de outras empresas e governements).

O resultado final foi que não fomos capazes de fazer o fluxo de trabalho de módulos bastante genérico para qualquer pessoa usar. Assim, os programadores eram os que foram forçados a trabalhar com os fluxos de trabalho, e todos os fluxos de trabalho fez foi entrar no nosso caminho.

Estou usando o fluxo de trabalho 4.0 para os últimos meses e embora na maior parte impressionado, eu achei extremamente difícil de aprender.

Para a versão mais recente (que vem com .NET 4.0 RC), há seguinte-à-nenhuma documentação na web, em quaisquer livros ou há cursos de formação disponíveis. Eu só encontrados artigos relacionados com a versão já extinto 3.0. Mesmo o documenation MSDN é a luz no chão.

O designer de fluxo de trabalho não é tão intuitiva como deveria ser por qualquer meio para que a aprendizagem é muito difícil. Eu tive que confiar em respostas de uma única pessoa em StackOverflow (graças pelo caminho Maurice!) -. E eu gostaria de ser recheado sem a sua ajuda

Então, em resumo, eu acho que tem potencial, mas você seria completamente louco para aprender ainda - espera para mais treinamento, documentação e livros de outra forma você estará indo para ele cegar

!

No ano passado, completou um aplicativo trabalhando com WF, usado agora como a espinha dorsal de um sistema de enorme incrivelmente que é usada por um grande banco para o seu processo de hipoteca. O processo de PE tem muitos passos a partir de aplicativo cliente para aprovação do crédito.

Apesar de ter sido um sucesso, havia tantos problemas e crise ao longo do caminho. E isso não vai valer a pena para qualquer projeto de tamanho menor.

Eu considero MS WF como uma biblioteca de fluxo de trabalho de baixo nível e não um produto de fluxo de trabalho da empresa de pleno direito, como K2. Ela irá permitir que você construa um aplicativo de fluxo de trabalho habilitado, mas não é em si mesmo uma aplicação de workflow. Meu experiance dele nesta capacidade tem sido positiva, embora nós tivemos que construir um monte de nossa própria infra-estrutura em torno dela (um quadro pub / sub, um gerente worlkflow vida etc). Uma boa parte da documentação lá fora, é bastante simplista e não cobre a construção de uma aplicação de workflow empresarial com base em MS WF.

difícil de aprender. Bastante flexível. Não deve ser confundida com uma ferramenta visual para usuários finais, apenas para programadores. Não tenho certeza se eu gosto da abordagem propriedade dependência.

Ela realmente depende do que você quer fazer com ele. Eu tenho usado apenas um pouco, mas em comparação com mais maduro produtos como METASTORM (eu sei que tecnicamente é um BPM, mas ainda há um componente de fluxo de trabalho), o processo de fluxo de trabalho Choriographer e IBM MQ, não há comparação. Ele só não está maduro o suficiente. Por outro lado, é livre onde os outros não são e provavelmente pode fazer o trabalho. Eu não sei se eu iria colocar uma operação de vários milhões de dólares sobre ele, mas com menores, eu dar-lhe outro tiro. O verdadeiro obstáculo que você está indo para o rosto é a mudança no processo de pensamento que exige. Se você não tem desenvolvedores que trabalharam com sistemas estaduais antes que isso possa ser um verdadeiro obstáculo.

Brian, eu não posso responder ao seu comentário, mas de qualquer maneira, por versionamento i significa fazer alterações no código subjacente do fluxo de trabalho sem quebrar instâncias já em execução, e graciosamente aplicação de atualizações para fluxos de trabalho existentes. Eu não tenho certeza sobre 'estoque' WF, mas pelo menos no ambiente SharePoint não há nenhum conceito de versões de fluxo de trabalho para que as novas versões têm de ser implantado como completamente diferentes fluxos de trabalho que se torna um pesadelo de manutenção. Isto não tem nada a ver com 'reidratação', reidratação é o processo pelo qual você traz um 'dormente' fluxo de trabalho de volta à atividade depois de algum evento ou mudança de estado. Que é tratado de forma transparente pelo tempo de execução do fluxo de trabalho.

WF ist integrado no SharePoint (WSS 3.0), e eu criei algumas fluxos de trabalho para vários SharePoint-sites, para que eu possa dizer sobre a minha experiência de WF no SharePoint. Comparado com outros fluxo de trabalho de quadros WF pontuações bem. É estável (i não tiveram quaisquer erros misteriosos), os fluxos de trabalho são bastante fáceis de projeto (graças ao fluxo de trabalho de designer no Visual Studio) e você pode usar não só sequencial, mas também o estado-máquina fluxos de trabalho.

Não é perfeito, é claro, e um desenvolvedor certamente vou precisar de algum tempo para entender o conceito (de ou seja, o Modelo de treino); mas é definitivamente útil - mesmo para "pequenas tarefas".

Nunca tentou WFF, mas eu lembro de ter lido este artigo sobre WFF por Leon Bambrick onde ele diz basicamente todo o género de ferramentas de desenvolvimento software é um disparate. Pode ajudar você a decidir uma forma ou de outra.

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