
MỤC LỤC
1 Workflow là gì? ............................................................................................................................. 2
2 Giới thiệu Windows Workflow Foundation ................................................................................. 3
2.1. Lý do nên sử dụng WF ................................................................................................................................... 3
2.2. Kiến trúc của Windows Workflow Foundation ............................................................................................. 4
2.2.1 Hai loại activity ................................................................................................................................. 6
2.2.2 Lưu trú ............................................................................................................................................... 6
2.2.1 Các dịch vụ chạy (runtime service) trong WF .................................................................................. 8
2.3. Mô hình xây dựng workflow ....................................................................................................................... 11
2.4. Các loại workflow trong WF ....................................................................................................................... 11
2.5. Công cụ phát triển WF ................................................................................................................................. 12
3 So sánh WF với WCF ................................................................................................................. 13
4 Bắt đầu với WF ........................................................................................................................... 13
Ví dụ đầu tiên với WF ........................................................................................................................ 14
Câu hỏi ôn tập .................................................................................................................................... 17
Tài liệu tham khảo ............................................................................................................................. 18

Microsoft Vietnam – DPE Team | WF – Bài mở đầu: Giới thiệu về Windows Workflow Foundation
2
Bài mở đầu
GIỚI THIỆU VỀ WINDOWS WORKFLOW FOUNDATION
Bài này giới thiệu tổng quan về Windows Workflow Foundation (WF). Phần đầu bàn về khái niệm
workflow (luồng công việc) trong các hoạt động nghiệp vụ. Từ sự phức tạp của các luồng công việc, chúng ta
thấy rằng cần có các công cụ phát triển phần mềm giúp mô hình hóa và tiến hành lập trình các ứng dụng tập trung
vào các luồng công việc một cách thuận tiện và đơn giản nhất. Windows Workflow Foundation (WF) là một
thành phần phần mềm như thế. Phần tiếp theo sẽ đi vào chi tiết giới thiệu WF, kiến trúc WF, công cụ phát triển
và cuối cùng là một ví dụ cơ bản ban đầu về WF giúp cho người đọc làm quen với WF.
1 Workflow là gì?
Một workflow (luồng công việc) là thứ tự các bước, tác vụ, sự kiện hoặc tương tác làm nên một quy trình
để thực hiện một công việc nào đó. Quy trình này có thể có nhiều bộ phận, cá nhân tham gia. Nguồn gốc luồng
công việc có lẽ bắt nguồn từ công tác xử lý văn bản: văn bản cần phải được di chuyển từ nơi này sang nơi khác
để thực hiện các công việc khác nhau (đọc, sửa đổi, góp ý, xem lại, phê chuẩn…).
Ví dụ, một luồng công việc thực hiện mua bán hàng hóa đơn giản nhất gồm một chuối các bước như sau:
Đầu tiên người mua xem tính năng sản phẩm và giá, nếu cảm thấy thỏa mãn thì chọn mua sản phẩm đó, tiếp
theo điền thông tin cá nhân vào phí thanh toán và cuối cùng là thanh toán đơn hàng
Hình 1. Ví dụ về một quy trình công việc
Thực tế cho thấy, các hệ thống quản lý thông tin chứa rất nhiều nghiệp vụ cần thực hiện như một luồng
công việc. Vì vậy có rất nhiều sản phẩm workflow tự động cho phép tạo mô hình luồng công việc và các thành
phần như là các form online, người dùng dùng chúng để đảm bảo tính nhất quán của công việc. Chẳng hạn như ở
ví dụ trên, luồng công việc đảm bảo rằng người mua hàng phải thực hiện bước chọn sản phầm và điền thông tin
khách hàng trước khi thực hiện thanh toán.

Microsoft Vietnam – DPE Team | WF – Bài mở đầu: Giới thiệu về Windows Workflow Foundation
3
2 Giới thiệu Windows Workflow Foundation
Windows Workflow Foundation (WF) là một công nghệ của Microsoft cho phép định nghĩa, thực thi và
quản lý các workflow. Công nghệ này được ra đời vào tháng 11 năm 2006 như là một phần của nền tảng .NET
framework 3.0 (còn gọi là WinFX).
WF, không chỉ cho phép bạn phối hợp các công việc như các chương trình truyền thống, nó có có một vài
điểm khác biệt quan trọng sau:
WF có thể điều khiển các công việc chạy trong thời gian dài bằng cách lưu trữ
(persisting) workflow vào chỗ lâu bền (trái với bộ nhớ chỉ tồn tại khi hệ điều hành chạy) như là đĩa cứng,
cơ sở dữ liệu khi workflow không làm gì và nạp trở lại khi workflow tiếp tục làm việc.
Thể hiện của workflow có thể được chỉnh sửa động khi đang chạy (thêm điều kiện mới,
cách xử lý khác với khi nó được tạo ra).
WF là mộ phương pháp lập trình khai báo (trái với lập trình viết mã lệnh) bằng cách kết
nối các thành phần được định nghĩa sẵn (gọi là “hành động” - activity).
WF cho phép bạn khai báo các luật nghiệp vụ, chúng tách rời mã vì vậy bạn dễ dàng sửa
đổi chúng về sau.
WF hỗ trợ các kiểu hệ thống khác nhau với hai loại workflow: workflow trình tự
(sequential) và workflow máy trạng thái.
2.1. Lý do nên sử dụng WF
Tại sao lại dùng luồng công việc (workflow): Lý do lớn nhất là vì luồng công việc cho phép bạn mô
hình hóa một cách trực quan và rõ ràng các luồng điều khiển của một ứng dụng. Thay vì biểu diễn logic ứng dụng
của bạn bằng một mớ mã phức tạp, thì khai báo logic đó bằng luồng công việc rõ ràng là làm đơn giản hơn. Nhờ
đó, bạn có thể kiểm tra logic ứng dụng của bạn, làm trực quan hóa nó, theo vết nó khi thực thi và kể cả thay đổi
nó khi đang chạy. Điều này rõ ràng là tuyệt vời.
Ngoài ra workflow cho phép phối hợp làm việc giữa con người và phần mềm bằng các loại giao diện
tương tác khác nhau: email, web-form, winform, instant message
Tại sao nên dùng WF: WF là nền tảng cho phép các nhà phát triển xây dựng các ứng dụng có các luồng
công việc trở nên đơn giản hơn. Thực tế, có rất nhiều nhà phát triển đã phát triển framework của riêng họ, điều
này cho thấy sự cần thiết phải có một framework đủ tốt hỗ trợ cho các ứng dụng về luồng công việc. Sự ra đời
của WF đã giải quyết được nhu cầu này. Một workflow trong WF được cấu thành từ các activity. Theo quan điểm
của người lập trình thì workflow hay activity đều là các đối tượng được hình thành từ các lớp, do vậy có thể định
nghĩa được các workflow hay activity tùy ý. Cũng giống winform hoặc webform có điều khiển chuẩn thì
Microsoft cũng cung cấp các activity cơ bản gọi là BAL (Base Activity Library), hầu hết các workflow đều được
xây dựng chỉ từ các activity này. Nhà phát triển có thể thiết kế workflow rất trực quan qua công cụ thiết kế

Microsoft Vietnam – DPE Team | WF – Bài mở đầu: Giới thiệu về Windows Workflow Foundation
4
workflow đồ họa trên (Workflow Designer) Visual Studio. Rất nhiều người thích tính trực quan và dễ dàng nắm
bắt của giao diện đồ họa này nhưng cũng có người thích những dòng mã hơn, vì thế WF cho phép họ làm như thế
hoặc phối hợp cả hai cách. Như vậy WF cho hiệu quả phát triển workflow luôn ở mức cao nhất, thuận tiện nhất
với tất cả mọi người. Workflow được WF hỗ trợ phát triển nhanh chóng và dễ dàng như vậy nên chi phí phát
triển sẽ giảm đáng kể mà chất lượng vẫn được đảm bảo.
2.2. Kiến trúc của Windows Workflow Foundation
Như đã giới thiệu ở trên, WF là một thành phần nằm trong nền tảng .NET 3.0. Bên cạnh WF, .NET 3.0
còn có một số mô hình lập trình mới như là WCF, WPF, CardSpace.
Hình 2. Vị trí WF trong .NET 3.0

Microsoft Vietnam – DPE Team | WF – Bài mở đầu: Giới thiệu về Windows Workflow Foundation
5
Hình 3. Kiến trúc của WF
WF là một mô hình lập trình, trang bị một cơ chế và các công cụ để xây dựng các ứng dụng thiên về
luồng công việc. Như trong hình… một workflow trong WF được cấu thành từ các activity, các activity này
thường là được tạo ra từ BAL - thư viện activity cơ bản của WF hoặc cũng có thể là các activity tùy biến của
người dùng. Một workflow sẽ chạy trong Runtime Engine, trong Runtime Engine có thể bao gồm cả các dịch vụ
chạy (Runtime Service). Đến lượt Runtime Engine lại được lưu trú ở một tiến trình của ứng dụng chủ (host
process), ứng dụng chủ có thể là bất cứ loại ứng dụng nào của .NET chạy phía client hay server: winform,
winservice, webform, web service.

