1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

41 900 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 41
Dung lượng 1,64 MB

Nội dung

I. Tổng quan về mô hình luồng công việc. 1. Luồng công việc: 2. Sự thực thi các LCV 3. Tầm quan trọng trong việc đưa LCV và Mô hình LCV vào ứng dụng. 4. Đặc điểm:

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KĨ THUẬT THÀNH PHỐ HỒ CHÍ MINHKHOA 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

Trang 2

I Tổng quan về mô hình luồng công việc 3

1 Luồng công việc: 3

2 Sự thực thi các LCV 5

3 Tầm quan trọng trong việc đưa LCV và Mô hình LCV vào ứng dụng 5

4 Đặc điểm: 6

5 Kiến trúc cơ bản của WF 7

5.1 Activity và Custom Activity 8

5.2 WF Runtime 9

6 XAML: 9

7 Sự lưu trú của WF trên ứng dụng: 11

II Window WorkFlow Foudation 4.0 11

1 Ứng dụng workflow đơn giản đầu tiên với WF4 14

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

Tạo workflow project mới 32

Định nghĩa Arguments cho workflow 32

Một số activities trong namespace System.Activities.Expressions 34

Trang 3

6 Xây dựng custom activity: 38Kế thừa từ Activity<TResult> 38Kế thừa từ CodeActivity<TResult> 40

Trang 4

I Tổng quan về mô hình luồng công việc1 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ệccó 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 rabấ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ảilàm và dần 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àokinh 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 địnhthà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 đượcmụ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ôngviệ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ôngviệ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ìncủ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ồmcó 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.

Trang 5

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 sinh2 Sự thực thi các LCV

Ứ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ươngtá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 chophé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ầnbê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 t1 và kết thúc vào ngàyt2; 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ệptrung 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ủamì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

Trang 6

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 doanhnghiệ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 caocủ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ớinhau mà có mối quan hệ nhất định Công việc này phải được thực hiện trướccô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ànthành việc nhận 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áchbiệt hoặc có trình tự thực hiện riêng HQT LCV giúp thực thi những LCVtrong doanh nghiệp, đảm bảo thứ tự và quy tắc thực hiện, đồng thời giảm thiểunhữ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ịpthờ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ểurủ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áttriể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êncủ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 quantrọ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ở

Trang 7

tảng công nghệ do Microsoft nghiên cứu , xây dựng và đóng gói trong bộ NetFramework (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. 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ụngLCV

 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 trongviệ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 nhucầ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:

Trang 8

Hình 3 Cấu trúc luồng công việc5.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 choWindows 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

Để 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

Trang 9

được thiết 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.

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 declarativedefinition, 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 LCVtrở nên thiếu linh hoạt Trong khi nhu cầu thay đổi LCV đối với các doanh nghiệpngà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 theothờ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ĩaLCV đượ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ườidù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 PresentationFoundation, một công nghệ được Microsoft đưa vào sử dụng từ Net Framework 3.0

Trang 10

trở đi, trong đó giao diện chương trình thiết kế bằng WPF được định nghĩa thông qua

file 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ữ

Margin="36" Foreground="Blue"

FontSize="36pt">Hello, World! </Button>

Trang 11

7 Sự lưu trú của WF trên ứng dụng:

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ữngphầ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àora 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ênngoà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ũngnhư 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ộtkhoả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 chohệ 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.01 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 chosự 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ảnlý bộ nhớ và tăng hiệu suất của chương trình Việc di chuyển đến NET cho phépCommon Language Runtime (CLR) để cấp phát bộ nhớ, dọn dẹp những đối tượngkhô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íasau ứng dụng Các vấn đề như thực hiện không đồng bộ hoặc song song và phối hợpcá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 nhanhchó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

Trang 12

mẽ và linh hoạt giống như chúng ta đã có trong giao diện người dùng trong WindowsPresentation Foundation (WPF) Windows Workflow Foundation (WF) cung cấp mộtframework cho 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 trungnhiề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 runtimecó 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áctí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ôngviệ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ấpcao 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àmviệ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 RuntimeWF 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 ofstate), đá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 WorkFlowtrước đó chỉ có thể chạy được với NET framework dưới 4.0 WF 4.0 được thiết kế lạimới hoàn toàn: những activity và service trong WF 4.0 không thể thay thế được vớicá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ớpvà bộ thụ lý sự kiện Trong WF 4.0 không có code class trong phiên bản này Bù lạiWF 4.0 cung cấp những activity được xây dựng sẵn như WriteLine, Assign Nếunhững activity xây dựng sẵn này không đủ thì ta có thể tạo các custom activity bằngcá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ìnhthườ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ênbản trước ta phải tạo lớp WorkflowRuntime và gọi phương thức CreateWorkflow củanó 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.

Trang 13

3 Những điểm mới trong WF4

Trong phiên bản 4 của Microsoft ® NET Framework, Windows WorkflowFoundation 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ìnhlậ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ủamình

Trong WF3, dòng chảy của dữ liệu trong luồng công việc không rõ ràng WF4cung 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ủacá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óacả đị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ủaworkflow 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 racủa một activity rõ ràng hơn, cải thiện hiệu suất vào lúc runtime.

Trang 14

III.Bắt đầu với WF4:

Tạo một project Workflow Console Application trong Visual Studio 2010 với tênlà TheFirstSimpleWorkf low

Project mới sẽ bao gồm các file là Program.cs là tập tin chứa code C# (hoặcVB), 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ấtquen 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ể khaibáo các activity trong một workflow Visual Studio 2010 hỗ trợ giao diện đồ họa trựcquan 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.

Trang 15

Đây là một trong những cải tiến đáng kể trong WF4 Có thể hiểu Variablestrong WF4 một cách đơn giản như sau, nếu xem workflow là một class, thì Variableslà class members được dùng để lưu trữ các data của workflow, hoặc các data sẽ đượcchia 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 methodparameters Có một điểm chú ý là đối với arguments, chúng ta phải quy định Directionlà In hay Out đồng nghĩa với quy định rằng argument dùng để truyền dữ liệu vàoworkflow 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 trongToolbox 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ếptụ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

Trang 16

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ầnthê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:

1.namespace TheFirstSimpleWorkflow2.{

Trang 17

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ựngmột workflow bằng designer được cung cấp bởi Visual Studio 2010, hãy xem qua fileWorkflow1.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.

2.Làm việc với các Activity được xây dựng sẵn

WF4.0 cung cấp cho người dùng rất nhiều các activity được xây dựng sẵn nhằm hỗtrợ tối đa cho việc xây dựng các ứng dựng workflow Các activity xây dựng sẵn tiêubiểu có thể kể đến như If, While, Assign, Pick, Switch<T> … Bên cạnh những activitycơ bản như trên, WF4.0 còn cung cấp rất nhiều các activity cao cấp hơn hỗ trợ việc xửlý message, tính toán song song như Send, Receive, RecieveAndSendReply, Paralell,… Ví dụ mô phỏng một đồng hồ gõ chuông sau đây sẽ giúp chúng ta làm việc với cácactivity có sẵn Quay trở lại với project TheFirstSimpleWorkflow

Trong WF4.0, để lưu trữ data cần thiết trong workflow, chúng ta cần định nghĩacác variables để lưu trữ các data đó Trong ví dụ này, chúng ta cần tạo ra 2 variables,một được dùng để xác định số tiếng chuông tương ứng với thời gian tương ứng, mộtđược dùng để ghi nhớ rằng đã có bao nhiêu tiếng chuông đã được gõ.

Để tạo một variable, có thể sử dụng control Variable và điền các thông tin cần thiếtvào như hình dưới:

Trang 18

Ngoài việc sử dụng control Variables như trên, để tùy chỉnh một variable,chúng ta vẫn có thể sử dụng Properties để tùy chỉnh các thông tin cho variable đó.

Ở đây, chúng ta tạo ra 2 variable là counter và numberBells Đối với counter thìgiá trị mặc định ban đầu cho variable là 1, tuy nhiên đối với numberBells thì giá trịmặc định của variable này phụ thuộc vào thời gian, có nghĩa là chúng ta cần quy địnhgiá trị này theo thời điểm mà nó chạy.

Chọn vào variable numberBells, sau đó click vào button “…” của Default trongProperties windows để mở hộp thoại Expression Editor.

Trang 19

Và kết quả thu được sau khi đã tạo ra 2 variables trên như sau:

If Activity

Giá trị của numberBells variable sẽ là giá trị của Hour của thời điểm hiện tại,tuy nhiên, Hour lại đưa về kiểu giờ 24 Do đó, nếu numberBells có giá trị lớn hơn 12,tức những giờ ở PM thì cần chuyển về lại những số nhỏ hơn 12 Để kiểm tra điều kiệnnày, chúng ta sử dụng If activity bằng cách kéo thả If activity từ toolbox vào sauWriteLine activity trong Sequence ban đầu, và Condition của If activity này sẽ lànumberBells > 12.

Trang 20

Assign activity

Sau khi đã xác định Condition cho If activity ở trên Nếu như numberBells thỏacondition ở trên thì cần phải thay đổi giá trị phù hợp cho numberBells Để làm đượcviệc này, WF4.0 cung cấp cho chúng ta một activity có tên là Assign dùng để thay đổigiá trị của variables trong workflow Đối với Assign activity chúng ta cần quy địnhvariable nào sẽ bị ảnh hưởng và giá trị thay đổi.

While activity

Để mô phỏng việc đổ chuông ứng với thời gian tương ứng, chúng ta sử dụngWhile activity While activity bao gồm 2 phần là Condition và Body, giống với cấutrúc While thông thường mà chúng ta thường hay sử dụng Số lần đổ chuông sẽ bằngvới số giờ tương ứng, do đó, chúng ta cần quy định Condition cho While là counter <=numberBells

Ở phần body, chúng ta sẽ thực hiện việc mô phỏng các lần đổ chuông bằng việc xuấtra màn hình những dòng text đồng thời thực hiện việc cập nhật các thông tin như sốlần đã đổ chuông …

Ngày đăng: 02/11/2012, 11:51

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w