Windows Workflow Foundation là một thành phần trong .NET Framework 4.0 (WF4). Một điều đặc biệt trong phiên bản 4.0 là WF4 được xây dựng mới hoàn toàn so với các phiên bản trước của nó là WF3 và WF3.5. Tuy nhiên, WF4 vẫn cung cấp các thành phần để cho các ứng dụng được xây dựng trên các phiên bản cũ hơn vẫn có thể chạy được trên WF4.
Một trong những thay đổi tiêu biểu đầu tiên là trong WF4 không còn phân biệt giữa 2 loại workflow là Sequence và StateMachine như ở các phiên bản trước. Các Activity trở thành các thành phần cơ bản cấu thành nên một workflow.
Xây dựng một Workflow đơn giản với VS 2010
Tạo một project Workflow Console Application trong Visual Studio 2010 với tên là TheFirstSimpleWorkflow

Project mới sẽ bao gồm các file là Program.cs là tập tin chứa code C# (hoặc VB), Workflow1.xaml là file dùng để định nghĩa các activity trong workflow. Nếu đã từng làm việc với Windows Presentation Foundation thì các file XAML trở nên rất quen thuộc, đây là một dạng cấu trúc giống với XML cho phép người dùng có thể khai báo các activity trong một workflow. Visual Studio 2010 hỗ trợ giao diện đồ họa trực quan cho phép người dùng có thể tùy chỉnh các activity và các workflow.
Khi làm việc với WF4, có một điểm đáng chú ý trong IDE là các control là Variables, Arguments và Imports.
Đây là một trong những cải tiến đáng kể trong WF4. Có thể hiểu Variables trong WF4 một cách đơn giản như sau, nếu xem workflow là một class, thì Variables là class members được dùng để lưu trữ các data của workflow, hoặc các data sẽ được chia sẽ giữa các activity trong workflow. Các variable có thể được quy định mức độ như tồn tại trong toàn bộ workflow hoặc chỉ tồn tại trong một thành phần nhỏ hơn.

Arguments cũng tương tự như Variables nhưng arguments được dùng để trao đổi dữ liệu ra hoặc vào trong workflow. Có thể xem arguments như các method parameters. Có một điểm chú ý là đối với arguments, chúng ta phải quy định Direction là In hay Out đồng nghĩa với quy định rằng argument dùng để truyền dữ liệu vào workflow hay truyền dữ liệu từ workflow ra ngoài.
Xây dựng Workflow
Để xây dựng workflow, ta có thể kéo thả các activity đã được xây dựng trong Toolbox vào designer. Trong ví dụ này, workflow sẽ chỉ xuất ra màn hình dòng “Hello, world”.
Để thực hiện, kéo thả một Sequence activity vào vùng designer và sau đó tiếp tục kéo thả WriteLine activity vào Sequence activity vừa mới tạo ra ở trước. Kết quả thu được là sơ đồ sau

Sau đó, quy định Text sẽ in ra trong WriteLine activity trên

Tuy nhiên, nếu chú ý những gì chúng ta đang làm thì khi chạy ứng dụng này, chúng ta sẽ không thấy được kết quả. Do đó, để thấy được kết quả như thế nào, cần thêm vào một số dòng lệnh bằng các thêm vào ở tập tin Program.cs như sau
Code Snippet
- namespace TheFirstSimpleWorkflow
- {
- class Program
- {
- static void Main(string[] args)
- {
- WorkflowInvoker.Invoke(new Workflow1());
-
- Console.WriteLine("Press Enter to exit");
- Console.ReadLine();
- }
- }
- }
Sau khi đã thực hiện các bước trên, kết quả thu được khi chạy ứng dụng như sau:

Workflow được thể hiện trong XAML như thế nào?
Để có thể hiểu rõ hơn đẳng sau những gì mà chúng ta có thể thấy khi xây dựng một workflow bằng designer được cung cấp bởi Visual Studio 2010, hãy xem qua file Workflow1.xaml.
Như chúng ta thấy, tất cả những gì chúng ta làm ở designer đều được thể hiện đằng sau bằng XAML.