سؤال

أقوم بتقييم WF لاستخدامه في تطبيقات الأعمال على الويب، وأود أن أسمع بعض التقارير المباشرة الحديثة عن هذه التكنولوجيا.

اهتمامي الرئيسي هنا هو تحسين إمكانية صيانة المشاريع وربما زيادة إنتاجية المطورين عند العمل على عمليات معقدة تتغير بشكل متكرر.

تعجبني فكرة WF حقًا، ولكن يبدو أنها غير معروفة نسبيًا، وتشير العديد من التعليقات القديمة التي صادفتها إلى أنها معقدة للغاية بمجرد الدخول فيها.

إذا كان مبالغًا في تصميمه إلى درجة أنه غير قابل للاستخدام (أو مقايضة سيئة) لمشروع صغير إلى متوسط ​​الحجم، فهذا شيء أحتاج إلى معرفته.

وبطبيعة الحال، فقد تم إصداره منذ أواخر عام 2006، لذا ربما يكون قد نضج.إذا كان الأمر كذلك، فهذه معلومة أخرى قد تكون مفيدة جدًا!

شكرا لك مقدما!

هل كانت مفيدة؟

المحلول

يعد Windows Workflow Foundation منتجًا قادرًا جدًا ولكنه لا يزال في نسخته الأولى :-(

الأسباب الرئيسية للاستخدام ما يلي:

  1. النمذجة البصرية لمتطلبات العمل.
  2. فصل منطق عملك عن قواعد العمل وإضفاء الطابع الخارجي على القواعد كملفات XML.
  3. فصل تدفق عملك عن التطبيق الخاص بك عن طريق إضفاء الطابع الخارجي على سير العمل الخاص بك كملفات XML.
  4. إنشاء عمليات طويلة الأمد مع القدرة التلقائية على الاستجابة إذا لم يحدث شيء لفترة طويلة من الزمن.على سبيل المثال فاتورة لم يتم دفعها.
  5. الاستمرار التلقائي في سير العمل طويل الأمد للحفاظ على انخفاض استخدام الموارد والسماح للعملية و/أو الجهاز بإعادة التشغيل.
  6. التتبع التلقائي لسير العمل يساعد في تلبية متطلبات العمل.

يأتي WF كمكتبة/إطار عمل، لذلك تحتاج في معظم الأوقات إلى كتابة المضيف الذي يقوم بإنشاء مثيل لوقت تشغيل WF.ومع ذلك، يعد استخدام WCF المستضاف في IIS حلاً قابلاً للتطبيق ويوفر الكثير من العمل.ومع ذلك، فإن اقتران WCF/WF أقل من الكمال ويحتاج إلى بعض العمل الجاد.انظر هنا http://msmvps.com/blogs/theproblemsolver/archive/2008/08/06/using-a-transactionscopeactivity-with-a-wcf-receiveactivity.aspx لمزيد من التفاصيل.توقع بعض التغييرات/التحسينات في الإصدار التالي.

يعد WF (و WCF) عنصرين أساسيين جدًا في الكثير من الأشياء الجديدة الصادرة عن Microsoft.يمكنك أن تتوقع بعض الإعلانات المثيرة للاهتمام خلال مؤتمر PDC.

راجع للشغل، فإن الاحتفاظ بإصدارات متعددة من سير العمل قيد التشغيل يتطلب القليل من العمل ولكن هذا في الغالب هو .NET القياسي.لقد قمت للتو بسلسلة من منشورات المدونة حول هذا الموضوع بدءًا من هنا: http://msmvps.com/blogs/theproblemsolver/archive/2008/09/10/versioning-long-running-workfows.aspx

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

نصائح أخرى

سؤال ذو صلة: متى يجب استخدام Windows Workflow Foundation؟ جوابي هناك:

قد تحتاج إلى WF فقط إذا كان أي مما يلي صحيحًا:

  1. لديك عملية طويلة الأمد.
  2. لديك عملية تتغير بشكل متكرر.
  3. تريد نموذجًا مرئيًا للعملية.

لمزيد من التفاصيل ، راجع منشور بول أندرو: ما الذي يجب استخدامه لـ Windows Workflow Foundation?

يرجى عدم الخلط بين أو ربط WF والبرمجة البصرية من أي نوع.إنه خطأ ويمكن أن يؤدي إلى سيء للغاية قرارات الهندسة المعمارية / التصميم.

لذلك، إذا كان لديك مثل هذه المتطلبات، فإن WF هو مرشح جيد.بالطبع الأمر معقد نسبيًا، لكن أذكر أن المشكلات التي تحاول حلها معقدة أيضًا (وأحيانًا معقدة جدًا).IMHO، إنه أمر معقد للغاية، على سبيل المثال، تجفيف/إعادة ترطيب الكائنات التي تحتوي على معالجات أحداث مرفقة (مع الأحداث التي يمكن تشغيلها عندما لا يكون الكائن في الذاكرة).

لا أستطيع الحكم على ما تقصده بـ "مشروع صغير إلى متوسط ​​الحجم"، ولكن بشكل عام أود أن أقول أنه إذا كان مشروعك يحتوي على متطلبين على الأقل من القائمة أعلاه، فيمكنك اعتبار WF كحل.

لقد استخدمنا WF في تطبيق SharePoint كبير الحجم ويمكنني أن أقول إنه جيد.لديها الكثير من القوة والمرونة.وكما يذكر كيفن، بمجرد فهم المفاهيم الأساسية لسير العمل، يمكنك فعل أي شيء تريده تقريبًا بها.

من ناحية أخرى، فهو يحتوي على بعض المشكلات الخطيرة حقًا، مثل عدم وجود إصدار، مما قد يضر بتطبيقك حقًا في المستقبل.لقد اضطررنا إلى نشر ما يصل إلى 3 إصدارات متوازية من نفس سير العمل المسمى xxx-v1 وxxx-v2 وxxx-v3 للحفاظ على تشغيل المثيلات القديمة وجعل المثيلات الجديدة تستخدم الإصدارات المحدثة.ألم حقيقي في الحمار.أوه، وهناك أيضًا بعض المفاهيم غير البديهية حقًا (رموز الارتباط، وتف؟؟)

كان لدينا مشروع في العمل شاركت فيه في استخدام مهام سير العمل.كانت الفكرة (من الإدارة) هي أننا نحن المبرمجين سنكتب أنشطة سير العمل جنبًا إلى جنب مع "المحرك" وإطار العمل.ثم سيهتم غير المبرمجين بالباقي من خلال تجميع مهام سير العمل الخاصة بهم في ملفات dll التي سيقوم المحرك بتحميلها تلقائيًا.

تم إقناع الإدارة بفكرة استخدام غير المبرمجين لسير العمل للمساعدة في تطوير البرامج، وكان ذلك مضيعة للوقت إلى حد كبير.كانت المشكلة التي كنا نحاول حلها بهذا المشروع معقدة نسبيًا وكنا نعلم منذ البداية أنه يجب تعديل البرنامج بشكل مستمر تقريبًا (كانت حساباته تعتمد على الشركات والحكومات الأخرى).

وكانت النتيجة النهائية أننا لم نتمكن من جعل وحدات سير العمل عامة بما يكفي ليستخدمها أي شخص آخر.لذلك كان المبرمجون هم الذين اضطروا للعمل مع مسارات العمل، وكل ما فعلته مسارات العمل كان في طريقنا.

لقد كنت أستخدم Workflow 4.0 خلال الأشهر القليلة الماضية وعلى الرغم من إعجابي الشديد به، فقد وجدت أنه من الصعب جدًا تعلمه.

بالنسبة للإصدار الأحدث (الذي يأتي مع .NET 4.0 RC)، لا توجد أي وثائق تقريبًا على الويب، في أي كتب أو لا توجد دورات تدريبية متاحة.لقد وجدت فقط المقالات المتعلقة بالإصدار 3.0 البائد الآن.حتى توثيق MSDN خفيف على الأرض.

مصمم سير العمل ليس بديهيًا كما ينبغي بأي حال من الأحوال، لذا فإن التعلم صعب للغاية.لقد اضطررت إلى الاعتماد على إجابات شخص واحد في StackOverflow (شكرًا بالمناسبة موريس!) - وسأشعر بالإرهاق دون مساعدته.

باختصار، أعتقد أن لديها إمكانات ولكنك ستكون متحمسًا جدًا لتعلمها بعد - انتظر المزيد من التدريب والوثائق والكتب وإلا فسوف تدخل فيها دون وعي!

في العام الماضي أكملنا طلب عمل مع WF، والذي يُستخدم الآن باعتباره العمود الفقري لنظام ضخم بشكل لا يصدق والذي يستخدمه بنك كبير جدًا في عملية الرهن العقاري.تشتمل عملية pe على العديد من الخطوات بدءًا من تقديم طلب العميل وحتى الموافقة على الائتمان.

وعلى الرغم من نجاحه، إلا أنه كان هناك الكثير من المشاكل والأزمات على طول الطريق.ولن يستحق الأمر العناء لأي مشاريع أصغر حجمًا.

أنا أعتبر MS WF بمثابة مكتبة سير عمل منخفضة المستوى بدلاً من منتج سير عمل مؤسسي متكامل مثل K2.وسيمكنك من إنشاء تطبيق ممكن لسير العمل، ولكنه ليس في حد ذاته تطبيقًا لسير العمل.لقد كانت تجربتي بهذه الصفة إيجابية، على الرغم من أنه كان علينا بناء الكثير من البنية التحتية الخاصة بنا حولها (إطار عمل/فرعي، ومدير مدى الحياة لسير العمل، وما إلى ذلك).الكثير من الوثائق الموجودة مبسطة إلى حد ما ولا تغطي إنشاء تطبيق سير عمل مؤسسي يعتمد على MS WF.

من الصعب معرفة.مرنة للغاية.لا ينبغي الخلط بينه وبين أداة مرئية للمستخدمين النهائيين، فقط للمبرمجين.لست متأكدًا مما إذا كنت أحب نهج خاصية التبعية.

يعتمد الأمر حقًا على ما تريد القيام به به.لقد استخدمته قليلاً فقط، ولكن مقارنةً بالمنتجات الأكثر نضجًا مثل MetaStorm (أعرف من الناحية الفنية أنها BPM، ولكن لا يزال هناك مكون لسير العمل)، وProcess Choriographer وسير عمل IBM MQ، لا توجد مقارنة.انها ليست ناضجة بما فيه الكفاية.ومن ناحية أخرى، فهو مجاني في حالة عدم تواجد الآخرين، ومن المحتمل أن يتمكن من إنجاز المهمة.لا أعرف إذا كنت سأجري عملية بملايين الدولارات عليها، لكن مع عمليات أصغر، سأعطيها فرصة أخرى.العقبة الحقيقية التي ستواجهها هي التغيير الذي يتطلبه عملية التفكير.إذا لم يكن لديك مطورين عملوا مع أنظمة الدولة من قبل، فقد يكون ذلك عقبة حقيقية.

بريان، لا يمكنني الرد على تعليقك، ولكن على أي حال، من خلال تحديد الإصدار، أعني إجراء تغييرات على التعليمات البرمجية الأساسية لسير العمل دون كسر المثيلات قيد التشغيل بالفعل، وتطبيق التحديثات بأمان على مسارات العمل الحالية.لست متأكدًا من WF "المخزون"، ولكن على الأقل في بيئة SharePoint لا يوجد مفهوم لإصدارات سير العمل، لذا يجب نشر الإصدارات الجديدة كمسارات عمل مختلفة تمامًا مما يصبح كابوسًا للصيانة.هذا لا علاقة له بـ "الإماهة"، فالإماهة هي العملية التي من خلالها تعيد سير العمل "الخامل" إلى النشاط بعد حدث ما أو تغيير في الحالة.ويتم التعامل مع ذلك بشفافية من خلال وقت تشغيل سير العمل.

تم دمج WF في SharePoint (WSS 3.0)، وقد قمت بإنشاء عدد لا بأس به من عمليات سير العمل لمواقع ويب SharePoint المختلفة، حتى أتمكن من التحدث عن تجربتي مع WF في SharePoint.بالمقارنة مع أطر سير العمل الأخرى، يسجل WF نتائج جيدة.إنه مستقر (لم أواجه أي أخطاء غامضة)، ومن السهل إلى حد ما تصميم مسارات العمل (بفضل مصمم سير العمل في Visual Studio) ولا يمكنك استخدام مسارات عمل تسلسلية فحسب، بل يمكنك أيضًا استخدام مسارات عمل آلة الحالة.

إنها ليست مثالية بالطبع، وسيحتاج المطور بالتأكيد إلى بعض الوقت لفهم المفهوم (على سبيل المثال:نموذج النشاط)؛لكنها بالتأكيد صالحة للاستخدام - حتى في "المهام الصغيرة".

لم أحاول أبدا WFF، ولكن أتذكر القراءة هذه المقالة عن WFF بقلم ليون بامبريك حيث يقول بشكل أساسي أن النوع بأكمله من أدوات تطوير البرمجيات هو هراء.قد تساعدك على اتخاذ قرار بطريقة أو بأخرى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top