سؤال

لقد كنت أستخدم WWF لفترة من الوقت كجزء من تطبيق مركز الاتصال الداخلي (ASP.NET)، وأثناء تعلمه كان ذلك بمثابة ممارسة جيدة في فهم كيفية عمل نظام سير العمل القائم على آلة الحالة يجب في العمل، أنا بالتأكيد لا أحب الصندوق العالمي للطبيعة نفسه.في رأيي هو عليه:

  1. معقدة للغاية، خاصة للاستخدام داخل تطبيقات الويب (كل تلك الأشياء المرتبطة بوقت التشغيل)
  2. غير ناضج (سبق أن عملت مع ذلك المصمم الفظيع؟)
  3. فقر الدم في مجموعة الميزات الحالية

هل لدى أي شخص اقتراح لإطار عمل أفضل يستند إلى .NET؟على وجه التحديد، أنا أبحث عن الميزات التالية:

  1. تعتمد على آلة الحالة (تعيين الحالات للإجراءات المتاحة)
  2. التركيز على أذونات المستخدم (التحكم في من يمكنه الوصول إلى الإجراءات)
  3. القدرة على تشغيل مهام سير العمل كمهام خلفية محددة بوقت (على سبيل المثال، لإرسال تذكيرات للعناصر التي ظلت في حالة معينة لمدة x من الأيام)

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

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

المحلول

بامكانك ان تحاول آلة الدولة البسيطة.سيتعين عليك تنفيذ التحكم في الوصول ومؤقتات الخلفية بنفسك، ولكن لا ينبغي أن يكون ذلك مشكلة كبيرة.تم إنشاء SSM أيضًا بسبب الإحباط من WF. هناك بعض تطبيقات أجهزة الحالة الأخرى على Codeplex أيضًا.إذا لم يكن أحدها مناسبًا، فهو مفتوح المصدر ويجب أن يجعلك قريبًا بدرجة كافية.

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

نصائح أخرى

سأبقى بعيدًا عن Drools.Net نظرًا لأن آخر التزام بـ SVN كان في سبتمبر 2007.يبدو جميلًا ولكن يبدو أن جعل مثل هذه المكتبة الكبيرة جزءًا من مشروعك أمر محفوف بالمخاطر بعض الشيء عندما تعلم أنها لم تعد تحظى بأي اهتمام بعد الآن.

جرب Drools.NET

القي نظرة على محرك سير العمل.إنه إطار عمل خفيف الوزن لحلول .NET وJava.يحتوي على مصمم مرئي HTML5، والتحكم في الإصدار، وواجهة مستخدم مناسبة، ويدعم مجموعة واسعة من قواعد البيانات.

هل لديك خيار النظر في BizTalk Server؟

لقد استمتعت جدًا بالعمل مع Oracle BPEL Process Manager.إنه جزء من JDeveloper.

http://www.Oracle.com/technology/bpel/index.html http://gemsres.com/story/dec06/313602/jellema-fig1.jpg

قد ترغب في إلقاء نظرة على موسيقى الجاز - http://jazz.codeplex.com/

جرب WF4.5.تمت إعادة تصميمه بالكامل منذ .NET4.0.

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

موجهة نحو المهام

هذه المحركات (على سبيل المثال. جي بوس بي بي إم - جي بي إم) مصممة لمعالجة بيانات الإدخال من خلال نموذج عملية محدد جيدًا.تمنح كل مهمة في النموذج التحكم في جزء من التعليمات البرمجية - إما تنفيذ قياسي أو فردي.تنتهي العملية عندما يصل الرمز المميز للعملية إلى نهاية نموذج العملية (حدث النهاية).هذا النوع من المعالجة يستغرق ميلي ثانية.يمكن استخدام المحرك للمهام المجمعة أو معالجة البيانات بتدفق معقد موجه للعملية.

الحدث مدفوعة

محركات سير العمل التي تركز على الإنسان تعتمد على الأحداث (على سبيل المثال. Imixs-سير العمل).يعد هذا نوعًا من أجهزة الحالة ولكنه يوفر عادةً وظائف أكثر بكثير.يمكنك بدء مثيل عملية جديد عن طريق تعيين كائن الأعمال الخاص بك بالمهمة الأولية (المحددة بواسطة حدث البداية).يتيح لك محرك سير العمل تشغيل الأحداث المخصصة لكل مهمة، محددة في النموذج الخاص بك.يقوم كل حدث (Intermediate CatchEvent) بتشغيل محرك سير العمل لنقل مثيل العملية قيد التشغيل إلى المهمة التالية (الحالة).حتى لا يتم تشغيل أي حدث جديد، تنتظر نسخة العملية في المهمة (الحالة) الحالية.تعد عملية الموافقة مثالًا نموذجيًا لهذا النوع من سير العمل الذي يتمحور حول الإنسان.

يمكنك العثور على قائمة المحركات هنا.

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