Tải bản đầy đủ (.doc) (41 trang)

Tìm hiểu mô hình và công nghệ wf 4.0

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.1 MB, 41 trang )

Window Workflow Fowdation 4.0
TRƯỜNG ĐẠI HỌC SƯ PHẠM KĨ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
TÌM HIỂU MÔ HÌNH VÀ
CÔNG NGHỆ WF 4.0
GVHD: NGUYỄN MINH ĐẠO
SVTH:
NGUYỄN HỮU TRUNG 07110144
NGUYỄN HỮU TÀI 07110108
NGUYỄN HỮU THANH 07110116
NGUYỄN VĂN PHONG 07110089
NGUYỄN PHÚ CƯỜNG 07110019
THÁNG 11/2011
1
Window Workflow Fowdation 4.0
Contents
1. Ứng dụng workflow đơn giản đầu tiên với WF4 ....................................................... 14
17
2.Làm việc với các Activity được xây dựng sẵn ........................................................... 17
If Activity ............................................................................................................ 19
Assign activity ..................................................................................................... 20
While activity ...................................................................................................... 20
Kết quả thu được khi chạy ứng dụng workflow trên: ............................................ 23
3.Xây dựng workflow bằng code .................................................................................. 23
Xây dựng ứng dụng workflow bằng code C# .................................................... 24
Expression ............................................................................................................. 27
Variables ............................................................................................................... 27
4.Xây dựng Flowchart workflow: ................................................................................. 27
FlowDecision activtity ......................................................................................... 28
FlowSwitch<T> activity ...................................................................................... 29


5.Arguments : ............................................................................................................... 31
Tạo workflow project mới .................................................................................... 32
Định nghĩa Arguments cho workflow .................................................................. 32
Một số activities trong namespace System.Activities.Expressions ........................ 34
Đưa Arguments vào workflow và chạy workflow ................................................ 37
6.Xây dựng custom activity: ......................................................................................... 38
Kế thừa từ Activity<TResult> .............................................................................. 38
Kế thừa từ CodeActivity<TResult> ..................................................................... 40
2
Window Workflow Fowdation 4.0
I. Tổng quan về mô hình luồng công việc
1. Luồng công việc:
Vào những năm tám mươi của thế kỷ hai mươi, khái niệm luồng công việc
(Workflow) mới được sử dụng lần đầu tiên trong ngành công nghệ phần mềm. Tuy thế,
sự xuất hiện của luồng công việc và mô hình luồng công việc trong cuộc sống của con
người hẳn đã từ rất lâu. Giữa vô vàn các hoạt động của mình trong cuộc sống, có nhiều
công việc mà con người lặp đi lặp lại nhiều lần. Một hoặc một số các công việc có thể
được lặp lại theo chu kỳ nhiều giờ, nhiều ngày, nhiều tháng v.v… hoặc xảy ra bất kỳ lúc
nào. Dựa vào kinh nghiệm đúc kết được, con người vạch ra các bước phải làm và dần
3
Window Workflow Fowdation 4.0
dần hoàn thiện chúng cho các lần thực hiện sau. Nói khác hơn, dựa vào kinh nghiệm và
sự hiểu biết của mình, con người có thể vạch ra các kế hoạch; xác định thành phần con
người, cũng như công cụ cần có để thực hiện công việc nhằm đạt được mục đích nhất
định. Các bước cần thực hiện trong các kế hoạch đó có mối quan hệ với nhau và tạo
thành luồng công việc.
Luồng công việc là một tập có thứ tự các công việc tuân theo các quy tắc nhất định,
được định sẵn sao cho việc thực hiện theo đó sẽ đạt được các mục đích công việc đã đề
ra.
Khái niệm về luồng công việc là một khái niệm tương đối. Cùng tham gia vào một hệ

thống trong cùng một môi trường, nhưng những đối tượng với vai trò khác nhau sẽ có
các luồng công việc khác nhau. Hình vẽ dưới đây là ví dụ về các luồng công việc trong
hệ thống tổ chức thi tuyển sinh đại học tại Việt Nam. Dưới góc nhìn của các thí sinh,
luồng công việc thi tuyển sinh gồm 3 việc chính phải làm. Thực hiện luồng công việc
này, các thí sinh đạt được mục đích là dự thi đại học thành công. Dưới góc nhìn của đơn
vị tổ chức tuyển sinh thì lại khác, luồng công việc tổ chức thi tuyển sinh gồm có 9 công
việc chính phải làm, thực hiện luồng công việc này sẽ đạt được mục đích là tổ chức
thành công một kỳ tuyển sinh đại học.
Hình 1. Luồng công việc Thi tuyển sinh đại học dưới góc nhìn của thí sinh
Hình 2. Luồng công việc Tổ chức tuyển sinh đại học dưới góc nhìn của đơn vị tổ
chức tuyển sinh
2. Sự thực thi các LCV
4
Window Workflow Fowdation 4.0
Ứng với một quá trình thực thi LCV là một thể hiện của LCV đó. Một LCV có thể có
nhiều thể hiện khác nhau do quá trình thực thi khác nhau. Mỗi LCV khi thực thi sẽ phải
tuân thủ các quy tắc nhất định. Đó là các quy định về quy trình nghiệp vụ thực tế của tổ
chức, doanh nghiệp tạo ra và thực thi LCV đó như các ràng buộc về sự tương tác với
người thực hiện công việc, ràng buộc về thời gian thực thi, các điều kiện cho phép xảy
ra sự kiện chuyển đổi trạng thái v.v… Ngoài ra, từng công việc thành phần bên trong
một LCV cũng có các ràng buộc riêng của nó trong quá trình thực thi.
Ví dụ, công việc “Nhận đăng ký thi” trong ví dụ về LCV Tổ chức tuyển sinh đại học
ở phần trước có thể có một số ràng buộc như: bắt đầu từ ngày t
1
và kết thúc vào ngày t
2
;
chỉ cho phép đăng ký khi các giấy tờ đều hợp lệ, thí sinh đăng ký phải tốt nghiệp trung
học phổ thông trước đó, v.v…
3. Tầm quan trọng trong việc đưa LCV và Mô hình LCV vào ứng dụng

Hiện nay, trên thế giới, đã có rất nhiều ứng dụng hỗ trợ thực thi và quản lý LCV.
Những ứng dụng loại này được xem là các Hệ quản trị luồng công việc (HQT LCV).
Các HQT LCV ngày càng được sử dụng rộng rãi trong doanh nghiệp và ngày càng trở
nên quan trọng hơn bởi:
 Các ứng dụng thường chỉ hỗ trợ người dùng thực hiện đúng công việc của mình.
Các công việc này thường được thiết kế một cách tách biệt, giữa chúng thường
không có mối quan hệ nào về thứ tự thực hiện, cũng như không có những ràng
buộc quan trọng liên quan đến quy luật hoạt động của doanh nghiệp. Trên thực
tế, những ứng dụng này thật sự giúp ích cho doanh nghiệp, nhưng xét cho cùng,
vì nó không thể hiện được các quy luật kinh doanh thực tế của doanh nghiệp, nên
ngày càng khó đáp ứng được các nhu cầu ngày càng cao của họ. Sự xuất hiện của
các HQT LCV giúp giải quyết những vấn đề này.
 HQT LCV đồng thời hỗ trợ người dùng thực hiện công việc của mình, theo một
quy luật cụ thể. Trên thực tế, các công việc được hoàn tất không độc lập với nhau
mà có mối quan hệ nhất định. Công việc này phải được thực hiện trước công việc
kia, để thực hiện công việc này đòi hỏi phải theo những quy định... Tất cả hoàn
thành sẽ đạt được một mục tiêu nhất định. Chẳng hạn như hoàn thành việc nhận
5
Window Workflow Fowdation 4.0
và kí hồ sơ, tổ chức thành công kì thi tuyển sinh đại học... Nó có một quy trình,
một LCV cụ thể ứng với từng mục tiêu. Các LCV có thể tách biệt hoặc có trình
tự thực hiện riêng... HQT LCV giúp thực thi những LCV trong doanh nghiệp,
đảm bảo thứ tự và quy tắc thực hiện, đồng thời giảm thiểu những rủi ro có thể có
khi thực hiện các công việc thủ công...
 HQT LCV đồng thời cung cấp chức năng quản lý LCV hỗ trợ người quản lý của
doanh nghiệp nắm bắt tình hình hoạt động của các LCV nhanh chóng, kịp thời,
nhằm đưa ra những xử lý thích hợp, giảm thiểu tình trạng gặp rắc rối mà không
biết sớm dẫn đến công việc bị thất bại; vì thế cũng góp phần giảm thiểu rủi ro
thực thi cho doanh nghiệp.
Ngoài ra, theo thời gian, các HQT LCV được các công ty lập trình thiết kế phát triển,

mở rộng nhiều tính năng nên ngày càng phù hợp với quy luật hoạt động tự nhiên của
doanh nghiệp, đồng thời tăng cường tối đa sự hỗ trợ, nên ngày càng trở nên quan trọng
hơn.
4. Đặc điểm:
Hiện nay, trên thế giới, có rất nhiều nền tảng công nghệ được thiết kế nhằm hỗ trợ
việc xây dựng các sản phẩm mô hình hóa LCV, cũng như các phần mềm mã nguồn mở
khác với mục đích tương tự. Trong đó, Windows Workflow Foundation là một nền tảng
công nghệ do Microsoft nghiên cứu, xây dựng và đóng gói trong bộ .Net Framework (từ
phiên bản 3.0 trở lên). WF cho phép người dùng định nghĩa, thực thi và quản lý LCV
với các những điểm khác biệt so với các hệ thống khác như sau:
 WF cho phép điều khiển các công việc thực thi trong thời gian dài (nhiều ngày,
nhiều tháng, …).
 WF có thể chỉnh sửa động khi đang thực thi.
 WF là một phương pháp lập trình khai báo kết nối các thành phần được định
nghĩa sẵn (activity).
 WF cho phép người dùng định nghĩa các LCV.
6
Window Workflow Fowdation 4.0
 WF hỗ trợ nhiều kiểu ứng dụng khác nhau.
Đồng thời, WF cũng có một số đặc điểm ưu việt sau:
 Cung cấp một kiến trúc mạnh mẽ và linh hoạt cho việc phát triển ứng dụng LCV
 Thúc đẩy sự nhất quán trong phát triển ứng dụng, giúp cải thiện năng suất trong
việc tạo ra ứng dụng mới cũng như sửa chữa, nâng cấp ứng dụng cũ
 Cung cấp dịch vụ Persistence, cho phép thực thi LCV trong một thời gian dài.
 Có khả năng mở rộng vô hạn; nghĩa là Microsoft cung cấp một số điểm mở rộng
cho phép chúng ta có thể sửa đổi những thuộc tính mặc định của LCV. Chẳng
hạn như khi dịch vụ SQL Persistence nêu trên không đáp ứng được nhu cầu của
chúng ta, chúng ta có thể tự xây dựng dịch vụ riêng của mình
5. Kiến trúc cơ bản của WF
Kiến trúc cơ bản của WF gồm có 3 thành phần chính: BAL (Base Activity Library),

Runtime Engine và Runtime Services; có thể được mô tả như hình sau:
7
Window Workflow Fowdation 4.0
Hình 3. Cấu trúc luồng công việc
5.1 Activity và Custom Activity
Một LCV trong WF được tạo thành từ các Activity, là các đối tượng được xây dựng
sẵn tương tự các đối tượng quen thuộc (button, textbox…) trong ứng dụng dành cho
Windows. Mỗi đơn vị công việc trong thực tế khi mô hình hóa sẽ thành một đối tượng
Activity. Đây cũng chính là thành phần nhỏ nhất trong mô hình LCV định nghĩa bởi
WF.
Để xây dựng ứng dụng WF, Microsoft cung cấp một thư viện các Activity cơ bản, gọi
là Base Activity Library (gọi tắt là BAL). Ngoài ra, người sử dụng có thể tự định
nghĩa các Activity khác nhằm phục vụ cho nhu cầu đặc trưng của từng quy trình nghiệp
vụ - gọi là các Custom Activity. Các Activity này cũng như cả LCV có thể được thiết
8
Window Workflow Fowdation 4.0
kế, định nghĩa thông qua Workflow Designer tích hợp sẵn trong công cụ Visual Studio
hoặc bằng cách viết mã XAML trực tiếp.
5.2WF Runtime
Cung cấp các thành phần cơ bản để thực thi và quản lý thể hiện LCV, cung cấp chức
năng trả về tình trạng thực thi của thể hiện, đồng thời lưu trú các thể hiện LCV độc lập.
6. XAML:
Ngoài cách sử dụng C# hay VB.net để định nghĩa LCV (thường được gọi là
imperative definition), WF còn có khả năng thực thi LCV dựa trên declarative
definition, nghĩa là định nghĩa LCV bằng ngôn ngữ Markup XML.
Mỗi cách đều có những lợi điểm và nhược điểm riêng của nó. Việc sử dụng C#,
VB.Net sẽ giúp chương trình thực thi nhanh hơn. Tuy nhiên, điểm yếu của nó chính là
việc LCV phải được định nghĩa lúc buildtime. Nếu có sự thay đổi trong tiến trình
nghiệp vụ, chương trình cần được thiết kế lại, biên dịch lại. Điều này khiến cho LCV trở
nên thiếu linh hoạt. Trong khi nhu cầu thay đổi LCV đối với các doanh nghiệp ngày

càng cần thiết (nhất là những doanh nghiệp có tiến trình nghiệp vụ thay đổi theo thời
gian). Việc sử dụng XML để định nghĩa LCV có thể giải quyết được vấn đề này.
Vì Workflow Runtime có thể chấp nhận gần như tất cả các dạng định nghĩa LCV (phụ
thuộc vào người lập trình), tức là lập trình viên chỉ cần thông dịch định nghĩa LCV được
cung cấp thành định dạng mà Workflow Runtime có thể hiểu và thực thi. Tuy nhiên,
điều may mắn ở đây là WF hỗ trợ định nghĩa LCV sử dụng ngôn ngữ nền tảng xml
(XML-based Workflow Definition), đó là XAML (Extensive Application Markung
Language). Việc định nghĩa LCV theo cấu trúc xml giúp LCV có thể dễ dàng được sửa
đổi và triển khai. Thay vì phải biên dịch lại trong Visual Studio, người dùng chỉ cần
chỉnh sửa lại file định nghĩa LCV bằng bất kì trình Editor nào (ngay cả notepad), và đưa
vào Workflow Runtime trước khi nó tạo lại mô hình LCV.
XAML ban đầu được đưa vào sử dụng trong WPF (Windows Presentation
Foundation, một công nghệ được Microsoft đưa vào sử dụng từ .Net Framework 3.0 trở
đi, trong đó giao diện chương trình thiết kế bằng WPF được định nghĩa thông qua file
9
Window Workflow Fowdation 4.0
XAML). Một file *.xaml về bản chất không cần phải được biên dịch, mà bản thân nó có
thể chạy được trên bất kì trình duyệt nào ở bất kì máy tính Windows nào có cài đặt .Net
3.0 trở lên. Chẳng hạn như, với file a.xaml sau đây thể hiện 1 button có chữ Helloworld:
Dùng trình duyệt mở File a.xaml sẽ hiển thị kết quả như sau:
Hình 4. HelloWorld
7. Sự lưu trú của WF trên ứng dụng:
10
<?xml version="1.0"?>
<Button
xmlns=" />ml/presentation"
Margin="36" Foreground="Blue"
FontSize="36pt">Hello, World!
</Button>
Window Workflow Fowdation 4.0

WF không phải là ứng dụng chạy độc lập nên nó cần được lưu trú trong một ứng
dụng chủ (host application).NET nào đó như Winform, ASP.NET, Console, Web
Service… Với đặc tính này, WF chỉ cần tập trung vào xử lý các nghiệp vụ, những phần
còn lại được giao cho ứng dụng chủ xử lý.
Để tương tác với ứng dụng chủ WF cung cấp cơ chế cho phép truyền tải dữ liệu vào
ra từ LCV cùng với các phương thức để điều khiển sự kiện nhằm tương tác với bên
ngoài.
Dưới đây là danh sách một số dịch vụ quan trọng nhằm phục vụ cho sự lưu trú cũng
như thực thi LCV trong ứng dụng chủ:
Persistence : Là cơ chế cho phép lưu trữ LCV xuống bộ nhớ một cách bền bỉ và khôi
phục lại bất cứ khi nào. Nhờ cơ chế này, các LCV có thể được thực thi trong một
khoảng thời gian dài (nhiều ngày, nhiều tháng…) đồng thời làm giảm gánh nặng cho hệ
thống phần cứng khi có nhiều LCV cùng lưu trú trong các ứng dụng.
II. Window WorkFlow Foudation 4.0
1. Tổng quan:
Như các bạn đã biết, xây dựng nên một ứng dụng có thể là một thách thức, và chúng
ta không ngừng tìm kiếm các công cụ và các framework để đơn giản hóa quá trình và
giúp chúng ta tập trung giải quyết những thách thức thuộc về nghiệp vụ
(bussiness). Chúng ta đã chuyển từ viết mã bằng ngôn ngữ máy như ngôn ngữ assambler
đến ngôn ngữ cấp cao hơn như C # và Visual Basic, bởi vì nó dễ dàng cho sự phát triển
ứng dụng của mình, nó đã loại bỏ các mối quan tâm ở cấp thấp như quản lý bộ nhớ và
tăng hiệu suất của chương trình. Việc di chuyển đến. NET cho phép Common Language
Runtime (CLR) để cấp phát bộ nhớ, dọn dẹp những đối tượng không cần thiết và loại bỏ
xử lý cấp thấp như con trỏ.
Phần lớn sự phức tạp của một ứng dụng thể hiện trong logic và quá trình xử lý phía
sau ứng dụng. Các vấn đề như thực hiện không đồng bộ hoặc song song và phối hợp các
task để đáp ứng các yêu cầu người sử dụng hoặc yêu cầu dịch vụ một cách nhanh chóng,
làm cho các nhà phát triển ứng dụng phải quay trở lại việc viết mã ở cấp thấp. Chúng ta
cần một mô hình lập trình khai báo (a declarative programming model) mạnh mẽ và linh
hoạt giống như chúng ta đã có trong giao diện người dùng trong Windows Presentation

Foundation (WPF). Windows Workflow Foundation (WF) cung cấp một framework cho
11
Window Workflow Fowdation 4.0
việc xây dựng ứng dụng và cung cấp cho ta một ngôn ngữ cấp cao hơn để xử lý các task
không đồng bộ, song song và xử lý các task phức tạp khác.
Có một runtime để quản lý bộ nhớ và các đối tượng, đã giúp chúng ta tập trung
nhiều hơn vào các khía cạnh nghiệp vụ quan trọng. Tương tự như vậy, có một runtime
có thể quản lý tính phức tạp của công việc không đồng bộ, nó cung cấp một bộ các tính
năng cải thiện hiệu suất phát triển. WF là một bộ công cụ cho việc khai báo công việc,
các activity giúp xác định logic công việc và kiểm soát luồng công việc, và runtime để
thực thi các ứng dụng. Một cách ngắn gọn, WF sử dụng một ngôn ngữ cấp cao hơn để
viết các ứng dụng, với mục tiêu làm cho các nhà phát triển phần mềm làm việc tốt hơn,
các ứng dụng dễ dàng hơn để quản lý, và dễ dàng thay đổi hơn. Runtime WF không chỉ
thực hiện các luồng công việc cho mình, nó cũng cung cấp các dịch vụ và tính năng
quan trọng khi viết ứng dụng logic như bảo toàn trạng thái (persistence of state), đánh
dấu trạng thái (bookmarking), tất cả đều dẫn đến luồng (thread) và xử lý linh hoạt cho
phép mở rộng quy mô của quy trình nghiệp vụ.
2. Những điểm khác biệt so với WF 3.5:
WF 4.0 khác hoàn toàn so với các phiên bản trước đó. Những ứng dụng WorkFlow
trước đó chỉ có thể chạy được với .NET framework dưới 4.0. WF 4.0 được thiết kế lại
mới hoàn toàn: những activity và service trong WF 4.0 không thể thay thế được với các
phiên bản trước đó.
-Trong WF 3.5 có cả code class và designer class: Code class chứa đựng bản cài đặt
cho những đối tượng CodeActivity. Nó cũng chứa đựng định nghĩa thành viên lớp và bộ
thụ lý sự kiện. Trong WF 4.0 không có code class trong phiên bản này. Bù lại WF 4.0
cung cấp những activity được xây dựng sẵn như WriteLine, Assign...Nếu những activity
xây dựng sẵn này không đủ thì ta có thể tạo các custom activity bằng cách sử dụng
CodeActivity.
-Một điểm khác nữa là việc sử dụng variable và argument rõ ràng hơn. Bởi vì không
có code file nên bạn không thể thêm các biến thành viên vào theo cách bình thường

mình làm. Thay vào đó bạn phải định nghĩa nó theo cách của Workflow.
-Cuối cùng ta xem lại file Program.cs là không có lớp WorkflowRuntime. Ở phiên
bản trước ta phải tạo lớp WorkflowRuntime và gọi phương thức CreateWorkflow của
nó. Trong WF 4.0 ta chỉ đơn giản gọi: WorkflowInvoker.Invoke(new Workflow1())
-Không còn workflow state machine trong phiên bản này.
3. Những điểm mới trong WF4
12
Window Workflow Fowdation 4.0
Trong phiên bản 4 của Microsoft ® NET Framework, Windows Workflow
Foundation giới thiệu một số lượng đáng kể của sự thay đổi so với phiên bản trước đó
như NET 3.0 và 3.5. Trong thực tế, người ta đã xem xét lại phần cốt lõi của mô hình lập
trình, runtime và công cụ và đã thiết kế lại tất cả những cái đó để tăng hiệu suất và năng
suất so với các phiên bản trước đó. Những thay đổi quan trọng là cần thiết để cung cấp
công cụ tốt nhất cho các developer áp dụng WF và cho phép WF tiếp tục là một thành
phần nền tảng mạnh mẽ mà ta có thể xây dựng trong các ứng dụng của mình.
Trong WF3, dòng chảy của dữ liệu trong luồng công việc không rõ ràng. WF4 cung
cấp một mô hình rõ ràng, chính xác cho luồng dữ liệu và tầm vực sử dụng của các đối
số (argument) và các biến. Những khái niệm này quen thuộc làm đơn giản hóa cả định
nghĩa về lưu trữ dữ liệu, cũng như dòng chảy của dữ liệu vào và ra của workflow. Mô
hình luồng dữ liệu cũng làm cho các đầu vào dự kiến và kết quả đầu ra của một activity
rõ ràng hơn, cải thiện hiệu suất vào lúc runtime.
III. Bắt đầu với WF4:
13
Window Workflow Fowdation 4.0
1. Ứng dụng workflow đơn giản đầu tiên với WF4
Tạo một project Workflow Console Application trong Visual Studio 2010 với tên là
TheFirstSimpleWorkf low
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.
14
Window Workflow Fowdation 4.0
Đâ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
15
Window Workflow Fowdation 4.0
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
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:

16
1. namespace TheFirstSimpleWorkflow
2. {
3. class Program
4. {
5. static void Main(string[] args)
6. {
7. WorkflowInvoker.Invoke(new Workflow1());
8.
9. Console.WriteLine("Press Enter to exit");
10. Console.ReadLine();
11. }
12. }
13.}

×