ساخت دو پروژه ActivityLibrary و WorkflowConsoleApp
قبل از اینکه مطالعه این بخش را آغاز نمایید باید دو پروژه ی ActivityLibrary برای ذخیره اکتیویتی ها و WorkflowConsoleApp برای تست اکتیویتی ها را ایجاد نمایید.
یکی از اجزاء اصلی Workflowها اکتیویتی ها هستند. حتی خود Workflow نیز یک اکتیویتی است.
در WF4.5 اکتیویتی های build-in زیادی وجود دارد که براحتی می توانید از آنها در طراحی Workflow خودتان استفاده نمایید. اما بعضی مواقع اکتیویتی های build-in پاسخ گوی نیازهای ما نیستند و مجبور می شویم اکتیویتی های سفارشی خودمان را ایجاد کنیم. بعنوان مثال اکتویتی ای را در نظر بگیرید که قرار است، ایمیلی را به شخصی ارسال کند و وی را از پایان یافتن کاری مهم باخبر کند.
قبل از اینکه مطالعه این بخش را آغاز نمایید باید دو پروژه ی ActivityLibrary برای ذخیره اکتیویتی ها و WorkflowConsoleApp برای تست اکتیویتی ها را ایجاد نمایید.
همان طور که در انتهای مطلب قبل (پیش نیازهای این بخش) مشاهده فرمودید، کلاس Activity که از نوع abstract است بعنوان ریشه تمام subactivity ها محسوب می شود. در این قسمت از آموزش Workflow قصد داریم یک اکتیویتی سفارشی ایجاد کنیم که از کلاس Activity ارثبری می کند.
کلاس CodeActivity متدی بنام Execute دارد که می توانیم با override کردن آن در اکتیویتی سفارشی مان کد دلخواهمان را داخل آن قرار دهیم. در این قسمت از آموزش Workflow قصد داریم اکتیویتی سفارشی ای ایجاد کنیم که داخل یک فایل Text می نویسد.
در این قسمت از آموزش Workflow، قصد داریم یک اکتیویتی سفارشی ایجاد کنیم، وظیفه این اکتیویتی ارسال یک Email به یک آدرس مشخص است.
زمانی که Workflow در حال اجرا است و می خواهیم در حین گردش کار، اطلاعاتی را به آن ارسال کنیم چه باید کرد؟ یکی از روش های دریافت اطلاعات در Workflow قابلیت Bookmark است. در این قسمت از آموزش Workflow با استفاده از Bookmark اکتیویتی ای ایجاد خواهیم کرد که یک متن را بعنوان ورودی دریافت می کند.
با استفاده از کلاس WebRequest می توانیم یک درخواست HTTP در کدمان ایجاد کنیم. اما همانطور که می دانید اجرای هر درخواست وبی حداقل چند ثانیه و یا حتی چند دقیقه طول می کشد. اگر فقط یک درخواست اینچنینی وجود داشته باشد، می توانیم صبر کنیم اما اگر تعداد این مدل درخواست ها افزایش پیدا کند چه باید کرد؟ در بعضی مواقع اگر تعداد آنها بیش از حد باشید، ممکن است اجرای سیستم گردش کار با مشکل مواجه شود.
در WF4.5، اکتیویتی های مرکب زیادی مانند: Sequence و While و Parallel و ... وجود دارد. آیا روشی برای ساخت یک اکتیویتیِ سفارشیِ مرکب وجود دارد؟ جواب این سوال بله است. در این قسمت از آموزش Workflow، اکتیویتی سفارشی MySequence را خواهیم ساخت.
Activity Designer در واقع نمایی از یک اکتیویتی در محیط طراحی Workflow است. در مطالب قبلی، سیستم گردش کاری برای ارسال Email طراحی کردیم (ارسال ایمیل در Workflow) اما در این قسمت از آموزش Workflow، قصد داریم همان اکتیویتی را بصورتی تغییر دهیم که دارای نمایی خاص برای ارسال ایمیل باشد.