Já vi vários lugares que mostram o que é WorkFlow, porém achei poucos com informações de como ele se comporta, portanto para quem ainda não conhece ou ainda não mecheu, eu colocando algumas coisas aqui:
Parte 1- Criando um novo Projeto Workflow
Vamos criar agora um projeto Workflow, para um maior entendimento de todos.
Passos
- Abra o Visual Studio 2005
- No Visual Studio 2005 selecione Arquivo > Novo > Projeto.
- Visual Studio 2005 will display the New Project dialog window.
- Na caixa de dialogo do novo projeto, selecione Projetos do Visual C# > WorkFlow
- Selecione pelo nome “Aplicação Console WorkFlow Sequencial” e coloque os seguintes valores:
Nome: HelloWorldWorkflow
Localização: …(root)\work\wf\before
- Agora você tem uma nova solução e um Projeto WorkFlow
- Por default do projeto, existe o arquivo WorkFlow1.cs, sera removido para criarmos um novo desde o 0.
- Clique com o botão direito no Projeto HelloWorldWorkFlow, e Adicione um novo item.
- Na caixa de dialogo Adicione um novo item, selecione pelo nome WorkFlow Sequencial ( sendo que o código irá ficar separado ) e adicione o seu workflow.
- O novo projeto WorkFlow sequencial agora contém dois arquivos novos: Workflow1.xoml and Workflow1.xoml.cs. Workflow1.xoml contém toda a marcação XML que representa o tipo do WorkFlow. Workflow1.xoml.cs contém o código da classe que representa o workflow.

Parte 2- Adicionando uma atividade de código
Steps
- Abra o arquivo WorkFlow1.xoml onde sera exibido no modo designer.
- No designer do WorkFlow, selecione View | Toolbox.
- Você vai precisar expandir as categorias de Atividades do Windows Workflow Foundation na toolbox.
- Selecione a atividade Code na toolbox.
- Arraste a atividae Code na area Sequencial do Workflow.
· Irá aparecer uma exclamação dizendo que existe uma propriedade do Code que não está correta.
- Selecione a Smart tag que existe uma propriedade que está inválida, a ExecuteCode e a propriedade será selecionada.
- Entre com o valor codeActivity1_CodeHandler no campo da propriedade ExecuteCode e pressione ENTER.
- Isso causará um novo método ou handler que sera adicionado no código do arquivo WorkFlow1.xoml.cs. O Visual studio automaticamente abrirá o arquivo Workflow1.xoml.cs e mostrará o método codeActivity1_CodeHandler.
- O Classe gerada é uma extensão da classe SequentialWorkFlowActivity. A Classe do código contém o mesmo nome do Workflow. Você deve estar com a sua classe parecida com esta:
- Insira o seguinte código no método codeActivity1_CodeHandler para retornar a string “Hello Y'all!” no console:
- Selecione no menu de commandos Build | Build Solution. Verifique se não existe nenhum erro ou warning de compilação.
Parte 3- Rodando um novo WorkFlow com opção de debug
Para este exercício nós precisaremos configurar o host no arquivo program.cs que vem junto com o projeto inicial. Uma alternativa, você pode executar o build da aplicação usando uma API da namespace System.WorkFlow.Runtime, que já está referenciada no seu código.
Passos
- Abra o visual studio e dê um duplo-clique no arquivo Workflow1.xoml no solution explorer.
- Clica no objeto codeActivity1 e insira um breakpoint.
- Para adicionar um breakpoint, pressione com o botão direito no codeActivity1 e escolha Breakpoint | Insert Breakpoint.
- Você vai ver uma imagem como esta:

- Compile e rode sua aplicação em modo debug.
· Você verá que o Console sera iniciado e que a instancia do workflow sera pausada na atividade que você colocou o breakpoint, a marcação em amarelo indica a atividade que o debugger parou.
- Escolha Debug | Step Into(F10) no menu e você verá o código fonte sendo executado, como os breakpoints que inserimos nos nossos dia-a-dia.

- Escolha novamente Debug | Step Into(F10) mais um pouco de vezes e você verá a mensagem “Hello, Y'All” no console de quem está executando a aplicação, no caso o host.
- Este workflow está completo e o programa está encerrado.
