ایجاد Workflow با استفاده از #C

چاپ

ایجاد Workflow با استفاده از کدهای #C

در اینجا قصد داریم، همان برنامه "HelloWorkflow" را با استفاده از دستورات #C ایجاد نماییم.


مراحل انجام کار

 پروژه گردش کار HelloCodeWorkflow شامل چهار مرحله زیر است:

  1. اضافه کردن یک پروژه جدید از نوع Workflow Console Application
  2. ایجاد Workflow با استفاده از کدهای #C
  3. اجرای Workflow
  4. پروژه HelloCodeWorkflow چگونه کار می کند؟

1 اضافه کردن یک پروژه جدید از نوع Workflow Console Application

در پنل Solution Explorer مطابق شکل زیر روی Solution راست کلیک کرده و از گزینه ADD زیر منوی New Project را انتخاب نمایید:

در پنجره Add New Project گزینه workflow را انتخاب کرده و سپس از سمت راست پنجره گزینه Workflow Console Application را انتخاب نمایید. حالا قسمت Name را با مقدار HelloCodeWorkflow تنظیم نمایید و نهایتاً روی دکمه OK کلیک کنید:


2 ایجاد Workflow با استفاده از کدهای #C

بصورت پیشفرض یک پروژه از نوع Workflow Console Application در Visual Studio 2013 شامل namespaceهای System.Activities و System.Activities.Statements هست اما در Visual Studio 2010 بصورت خودکار اضافه نمی شود بخاطر همین مجبوریم که خودمان بصورت دستی آنها را اضافه نماییم.

اما در ادامه فایل Program.cs را باز کنید و مطابق زیر کدها را تغییر دهید (قسمت قرمز رنگ):

فایل Program.cs

using System;
using System.Linq;
using System.Activities;
using System.Activities.Statements;

namespace HelloCodeWorkflow
{

    class Program
    {
        static void Main(string[] args)
        {
            HelloWorkflow workflow1 = new HelloWorkflow();
            WorkflowInvoker.Invoke(workflow1);
        }
    }
    public class HelloWorkflow : Activity
    {
        public HelloWorkflow()
        {
            this.Implementation = () => new Sequence
            {
                Activities = {
                    new WriteLine(){Text="Hello Workflow"}
                }
            };
        }
    }
}

3 اجرای Workflow

پروژه HelloCodeWorkflow را بعنوان پروژه StartUp تنظیم کرده و برای اجرای Workflow دکمه های میانبر Ctrl+F5 را فشار دهید. با این کار Workflow ذخیره شده و بدون عملیات debugging نتیجه نشان داده خواهد شد. همان طور که می بینید، نتیجه دقیقاً مشابه مطلب ایجاد اولین برنامه Workflow است:


4 پروژه HelloCodeWorkflow چگونه کار می کند؟

در فایل Program.cs از namespaceهای زیر استفاده شده است:

فایل Program.cs

using System;
using System.Linq;
using System.Activities;
using System.Activities.Statements;

باید بدانید که کلاس WorkflowInvoker متعلق به namespace سوم یعنی System.Activities است و اکتویتی های Sequence و WriteLine نیز به namespace آخر یعنی System.Activities.Statements تعلق دارند:

فایل Program.cs

using System;
using System.Linq;
using System.Activities;
using System.Activities.Statements;

namespace HelloCodeWorkflow
{

    class Program
    {
        static void Main(string[] args)
        {
            Activity workflow1 = new Workflow1();
            WorkflowInvoker.Invoke(workflow1);
        }
    }
    public class HelloWorkflow : Activity
    {
        public HelloWorkflow()
        {
            this.Implementation = () => new Sequence
            {
                Activities = {
                    new WriteLine(){Text="Hello Workflow"}
                }
            };
        }
    }
}

در کد بالا، کلاس HelloWorkflow از Activity ارثبری دارد و به این ترتیب می توانیم در کلاس HelloWorkflow از کدهای #C برای ایجاد Workflow استفاده نماییم.

نهایتاً در متد main، با اجرای متد ()invoke سیستم گرش کار یا Workflow بصورت اتوماتیک اجرا می شود. این متد synchronous است یعنی Workflow را داخل همان thread ای که آنرا صدا زده فراخوانی می کند.

{module خرید و دانلود فصل اول آموزش Workflow}