ويندوز ووركفلو فونداشن

**Windows Workflow Foundation (WF)** هي تقنية من مايكروسوفت والتي تمد واجهة برمجة التطبيقات، ومحرك عملية سير العمل، ومصمم مضيف لتنفيذ عمليات طويلة الأمد كسير بداخل تطبيقات إطار عمل دوت نت. وقد أُصدر الإصدار الحالي من WF كجزء من إصدار 4 من إطار عمل دوت نت ويُشار إليه بـ (WF4)..

ان سير العمل، على النحو المحدد هنا، هو عبارة عن سلسلة من الخطوات أو مراحل البرمجة المتميزة. وكل خطوة تعتبر في WF كنشاط. ويوفر إطار عمل دوت نت مكتبة من الأنشطة (مثل WriteLine، وهو النشاط الذي يكتب النص إلى وحدة التحكم أو أي شكل آخر من الناتج). ويمكن أيضا تطوير أنشطة حسب الطلب للحصول على وظائف إضافية. كما يمكن تجميع الأنشطة بصريا إلى سير عمل باستخدام مصمم سير عمل، وهو التصميم الذي يعمل من خلال فيجوال ستوديو. ويمكن أيضا استضافة المصمم في تطبيقات أخرى.
ويسمح تغليف وظائف البرمجة إلى أنشطة للمطور في خلق المزيد من تطبيقات سهلة الانقياد؛ ويمكن تطوير كل عنصر من عناصر التنفيذ ككائن وقت التنفيذ المشترك للغات والذي سيتحكم في تنفيذه وقت تشغيل سير العمل.

## محرك سير العمل
يعطي محرك سير العمل الخصائص التالية.
* جدولة وتنفيذ سير العمل والأنشطة. يمكن تنفيذ مهام سير العمل باستخدام واحدة من ثلاث طرق :
** استخدام Workflowlnvoker والذي ينفذ سير أعمال على رابط الاستدعاء (أي، لا يتم إنشاء رابط جديد لسير العمل). وهذا يعني أن عملية الاستدعاء سوف ننتظر حتى إكمال سير العمل.
** استخدام WorkflowApplication، والذي ينفذ العمل على رابط جديد (بحيث لن يتوقف تطبيق الاستدعاء عن التنفيذ في حين تدير سير العمل).
** استخدام WorkflowServiceHost، والذي سيقوم بتنفيذ سير العمل كخدمة ويندوز كوميونيكاشن فاونداشن. وسوف تستخدم خدمة سير العمل بيانات من الشبكة كمدخلات للأنشطة الواردة.
* إدارة تدفق التنفيذ بين الأنشطة. يمكن تجميع تنفيذات سير العمل بصريا في المصمم، وذلك باستخدام أنشطة مثل Flowchart، وIf، وSequence، وPick، وParallel.
* استمرار سير العمل. استمرار سير العمل يحفظ بيانات سير العمل في وسط دائم (مثل خادم SQL) ويفرغ سير العمل من الذاكرة. ويمكن إعادة تحميل سير العمل بعد فترة زمنية محددة، أو عندما يتلقى سير العمل رسالة. وسير العمل المبين أعلاه، إذا استمر في حين أن نشاط التأخير كان قيد التشغيل، سيتم إعادة تحميله إما استجابة لتلقي نشاط التلقي رسالة، أو استجابة لانتهاء نشاط التأخير. وعن طريق إزالة سير العمل العاطلة من الذاكرة، يمكن لمحرك سير العمل زيادة عدد مسارات العمل التي يمكن للنظام التعامل معها، وبالتالي زيادة تطويره.
* إدارة البيانات لتنفيذ الأنشطة. تُستهلك البيانات عن طريق الأنشطة التي تستخدام الحجج والمتغيرات، والتي حافظ عليها وقت التشغيل. فاستخدام حجج ومتغيرات لتخزين البيانات للأنشطة يعني أن وقت التشغيل له مدخل لحالة النشاط الكاملة في حالة وجوب استمراره. ويمكن لوقت التشغيل أن يربط الرسائل الواردة والبيانات إلى سير عمل محدد في حالة عمل عدة مسارات في وقت واحد.
* مزود إتباع ذاتي يعمب على أحداث سير العمل (مثل بدء النشاط، أواستكماله، أو الخطأ)، أو أحداث مخصصة (مثل تطبيق تعقب النشاط المخصص للبيانات الخاصة). ومزود الإتباع الافتراضي في إطار عمل دوت نت إصدار 4 يسجل تعقب الأحداث إلى سجل أحداث ويندوز، ولكن يمكن وضع مزود تتبع خاص لتتبع الأحداث إلى مخازن الأحداث الآخرى.
* إعطاء تمددية في شكل امتدادات سير العمل. الامتدادات هي كائنات مخصصة تضاف إلى وقت التشغيل الذي يوفر وظائف مخصصة، مثل اتصالات معززة مع عملية المضيف أو استمرارية ووظيفة تتبعية.
* توفير قدرات تصحيح بصرية باستخدام مصمم سير العمل. يمكن تنفيذ مهام سير العمل في بيئة التطوير، وتصحيحها باستخدام نفس النقطة وعمليات الخطى المستخدمة في تصحيح الرمز.

## إصدارات Workflow Foundation
* صدر أول إصدار لـ Workflow Foundation في إطار عمل دوت نت إصدار 3، ويستخدم في المقام الأول مساحات System.Workflow.Activities، و System.Workflow.ComponentModel، وSystem.Workflow.Runtime. وقد إنشاء مسارات العمل في إصدار 3 باستخدام إما نموذج Sequential (حيث تنفذ الأنشطة بتسلسل، الانتهاء من نشاط يؤدي إلى التالي)، أو نموذج State Machine (حيث تنفذ الأنشطة استجابة لأحداث خارجية).
* وفي إطار عمل دوت نت إصدار 3.5، تم تقديم أنشطة الرسائل والتي دمجت Workflow مع ويندوز كوميونيكاشن فاونداشن (WCF). ومع نشاط ReceiveActivity الجديد، يمكن لمسارات العمل الرد على رسائل WCF الواردة. وتستخدم الخصائص الجديدة لـ Workflow في إصدار 3.5 مساحة System.ServiceModel.
* وفي إطار عمل دوت نت إصدار 4، تم تحديث Windows Workflow Foundation إلى حد كبير، مع إدخال خصائص جديدة مثل Data Control Resolver، وFlowchart، وغيرها من أنشطة التحكم في التدفق المضافة. ويستخدم Workflow في دوت نت 4 مساحة System.Activities. وعلى الأخص، لم يعد هناك كائن سير عمل وقت تشغيل في إصدار 4؛ يتم تنفيذ مسارات العمل مباشرة باستخدام WorkflowApplication أو Workflowlnvoker.
* يمكن تنفيذ الأنشطة التي تم إنشاؤها في الإصدارات السابقة من إطار عمل دوت نت. بواسطة مسارات عمل دوت نت 4 عن طريق استخدام نشاط Interop.
* الإصدارات المستقبلية لـ WF سوف تشمل State Machine وDynamic Update.

## حالات استخدام Workflow
تستخدم Workflow لتكوين تطبيقات تقوم بتنفيذ عمليات تجارية مرتبة، مثل الخطوات اللازمة لاعتماد مستند أو تعيين مرشح لوظيفة معينة أو لتنفيذ أمر شراء. يمكن تنفيذ هذه العمليات في وقت قصير، ولكنها عملياً طويلة الأجل، حيث يحتاج التطبيق إلى إغلاقه للحفاظ على الذاكرة بين الخطوات. ومن الناحية العملية تتسم العمليات التجارية التي يمكن نمذجتها لتصبح Workflow بالخصائص التالية :
* لها منطق تجاري محدد قد يحتاج إلى التعديل بصفة دورية، مثل الضرائب أو حساب مصاريف الشحن اللازمة لتحديد سعر الشراء لمنتج ما، أو سلسلة الخطوات اللازمة لاعتماد أمر شراء أو تعيين موظف ما أو عملية معالجة.
* لها عدد من المدخلات لل workflowالتي قد يأتي كل منها على حدة في خلال ساعات أو أيام.
* لها منطق تجاري متقدم الذي قد يتطلب workflow للانتقال إلى فروع مختلفة اعتماداً على الظروف المختلفة.
* تحتاج إلى التفاعل مع أنظمة أخرى، مثل قواعد بيانات أو موقع إلكتروني أو أي تطبيق لعميل أو خدمة شبكية.

## تصميم Workflow
تُخلق Workflow إما عن طريق تعريفها في XAML باستخدام مصممم أو بتجميعها برمجياً في أحد لغات دوت نت مثل C أو VB.NET. إذا تم استخدام المصمم، يتم تجميع الأنشطة على لوحة مصمم Workflow عن طريق سحبهم من صندوق الأدوات. تخلق معاملات ومتغيرات Workflow وتعين داخل المصمم. إذا كان Workflow مجمع داخل الكود، فيتم تمثيل الأنشطة مثل كائنات CLR، ثم تجمع داخل مجموعات تتبع نشاط مفرد، عادة ما تصبح متتابعة أو خرائط تدفق. ثم يتم تنفيذ النشاط المفرد باستخدام WorkflowApplicationأو WorkflowInvoker ويتم تشغيله كـ workflow. ويشير المصطلح "workflow" دائماً إلى النشاط الجذري الذي ينفذه المضيف. قد يستخدم workflow كلاً من أنشطة خارجية أو أنشطة مخصصة. تشمل الأنشطة الخارجية أنشطة التحكم في المسار مثل DoWhile، أنشطة خرائط التدفق مثل FlowDecision وأنشطة رسائل WCF مثل Send والأنشطة الأولية التي تؤدي مهام بسيطة مثل Assign و WriteLine. أما الأنشطة المخصصة فهي كائنات CLR منشأة من قبل المستخدم التي تشتق من فصيلة System.Activities.Activity. وتمنح إعلان وظيفي عن طريق السماح للمطور بتعريف سلوك تنفيذ النشاط في الكود. قد تستفيد الأنشطة المخصصة من الحصول على مصممم نشاط مخصص مرتبط بهم لتحسين خبرة التصميم المرئي في فيجوال ستوديو.

## البرامج التي تستخدم Workflow Foundation
* مايكروسوفت شير بوينت بدءاً من إصدار 2007، أما الإصدارات السابقة فلا تستخدم Workflow.
* مايكروسوفت سبيتش سيرفر بدءاً من إصدار 2007، أما الإصدارات السابقة فلا تستخدم Workflow.
* فورفرونت أي دينتيتي منجر بدءاً من إصدار 2010، أما الإصدارات السابقة فلا تستخدم Workflow.
* مايكروسوفت ديناميك CRM بدءاً من إصدار 4.0، أما الإصدارات السابقة فلا تستخدم Workflow.
* مايكروسوفت ديناميك AX بدءاً من إصدار 2009، أما الإصدارات السابقة فلا تستخدم Workflow.
* ليزر فيش بدءاً من إصدار 2007، أما الإصدارات السابقة فلا تستخدم Workflow.
* تيم بيلد بدءاً من إصدار 2010، لتعريف عمليات البناء.
* جيمس سكيديلور للتصميم والجداول والمراقبة.

## المصادر

* Hands On Lab: Introduction To WF4
* Visual Studio 2010 Training Kit Hands On Labs
* Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for.NET Framework 4
* MSDN Code Gallery Samples with tag WF4

## كتب عن Workflow في دوت نت 3.0 و 3.5
* Dharma Shukla, Bob Schmidt: *Essential Windows Workflow Foundation*, Addison-Wesley Professional, 13 October 2006, ISBN 0-321-39983-8
* Michael Stiefel: *Building Applications with Windows Workflow Foundation (WF): Basics of Windows Workflow Foundation (Digital Short Cut)*, June 5, 2007, Kindle, ISBN 0-321-51454-8
* Brian Noyes: *Developing Applications with Windows Workflow Foundation (WF) (Video Training)*, June 7, 2007, Brian Noyes, ISBN 0-321-50313-9
* Brian R. Myers: *Foundations of WF*, Apress, 23 October 2006, ISBN 1-59059-718-4
* Bruce Bukovics: *Pro WF: Windows Workflow in.NET 3.0*, Apress, 19 February 2007, ISBN 1-59059-778-8
* Todd Kitta: *Professional Windows Workflow Foundation*, Wrox, 12 March 2007, ISBN 0-470-05386-0
* Kenn Scribner: *Microsoft Windows Workflow Foundation Step by Step*, Microsoft Press, 28 February 2007, ISBN 0-7356-2335-X

## كتب عن Workflow في دوت نت 4.0
* Mark Collins: *Beginning WF: Windows Workflow in.NET 4.0*, Apress, March 19, 2010, ISBN 978-1-4302-2485-3
* Bruce Bukovics: *Pro WF: Windows Workflow in.NET 4*, Apress, June 29, 2010, ISBN 978-1-4302-2721-2
* Matt Winkler: *Windows Workflow Foundation 4.0 Unleashed*, Sams, September 20, 2010, ISBN 978-0-672-33068-1
* Andrew Zhu: *Microsoft Windows Workflow Foundation 4.0 Cookbook*, Packt Publishing, September 24, 2010, ISBN 978-1-84968-078-3

## وصلات خارجية
* Windows Workflow Foundation Developer Center
* MSDN Library: Windows Workflow Foundation
* endpoint.tv (Video Podcast)
* Workflow Foundation Team Blog
* Ron Jacobs (Sr. Program Manager) Blog

تصنيف:دوت نت فريموورك
تصنيف:ويندوز فيستا