سؤال

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

في أي المواقف يكون استخدام WF فكرة جيدة ومتى سيجعل الأمور أكثر صعوبة إذا كان يجب أن تكون كذلك؟ما هي إيجابيات وسلبيات/تكلفة WF مقابل.الترميز باليد؟

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

المحلول

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

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

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

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

نصائح أخرى

أبداً.ربما ستندم على ذلك:

  • منحنى التعلم حاد
  • من الصعب تصحيح الأخطاء
  • من الصعب الحفاظ عليها
  • لا يوفر ما يكفي من القوة أو المرونة أو زيادة الإنتاجية لتبرير استخدامه
  • يمكن أن تفسد حالة التطبيق التي لا يمكن استردادها

المرة الوحيدة التي يمكن أن أتصور فيها استخدام WF هي إذا أردت استضافة المصمم لمستخدم نهائي وربما لا حتى ذلك الحين.

صدقني، لن يكون هناك شيء مباشر أو قوي أو مرن مثل الكود الذي تكتبه للقيام بالضبط بما تحتاج إلى القيام به.ابتعد عن WF.

وبطبيعة الحال، هذا هو رأيي فقط، ولكن أعتقد أنه رأي جيد للغاية.:)

الكود الذي تم إنشاؤه بواسطة WF سيئ.القيمة التي يجلبها WF هي في التمثيل المرئي للنظام، على الرغم من أنني لم أر أي شيء بعد (6-7 مشاريع في العمل الآن مع WF التي شاركت فيها) حيث لم أكن أفضل مشروعًا أبسط مشفرًا يدويًا .

بشكل عام، إذا لم تكن بحاجة إلى ميزات الثبات والتتبع (والتي في رأيي هي الميزات الرئيسية)، فلا يجب عليك استخدام Workflow Foundation.

فيما يلي مزايا وعيوب Workflow Foundation التي جمعتها من تجربتي:

مزايا

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

سلبيات

  • نموذج البرمجة:أنت محدود حقًا في ميزات البرمجة.فكر في كل الميزات الرائعة الموجودة في لغة C#، ثم انساها.تصبح البيانات البسيطة المكونة من سطر أو سطرين في C# أنشطة كتلة كبيرة إلى حد ما.يعد هذا أمرًا صعبًا بشكل خاص للتحقق من صحة الإدخال.بعد قولي هذا، إذا كنت حريصًا حقًا على الاحتفاظ فقط بالمنطق عالي المستوى في سير العمل، وكل شيء آخر في C#، فقد لا تكون هناك مشكلة.
  • أداء:تستهلك عمليات سير العمل قدرًا كبيرًا من الذاكرة.إذا كنت تقوم بنشر الكثير من مهام سير العمل على الخادم، فتأكد من أن لديك قدرًا كبيرًا من الذاكرة.انتبه أيضًا إلى أن سير العمل أبطأ بكثير من كود C# العادي.
  • منحنى التعلم حاد، من الصعب تصحيحه:كما ذكر أعلاه.ستقضي الكثير من الوقت في معرفة كيفية تشغيل الأشياء، ومعرفة أفضل طريقة لفعل شيء ما.
  • عدم توافق إصدار سير العمل:إذا قمت بنشر سير عمل باستمرار، وتحتاج إلى إجراء تحديثات على سير العمل، فلن تعد مثيلات سير العمل القديمة متوافقة.من المفترض أن يتم إصلاح هذا في .NET 4.5.
  • يجب عليك استخدام تعبيرات VB (يسمح .NET 4.5 بتعبيرات C#).
  • غير مرن:إذا كنت بحاجة إلى بعض الوظائف الخاصة أو المحددة التي لا توفرها Workflow Foundation، فاستعد للكثير من الألم.وفي بعض الحالات، قد لا يكون ذلك ممكنًا.ومن يدري حتى تحاول؟هناك الكثير من المخاطر هنا.
  • خدمات WCF XAML بدون واجهات:عادةً مع خدمات WCF، يمكنك التطوير مقابل واجهة.باستخدام خدمات WCF XAML، لا يمكنك التأكد من أن خدمة WCF XAML قامت بتنفيذ كل شيء في الواجهة.لا تحتاج حتى إلى تحديد واجهة.(بقدر ما أعرف...)

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

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

أنا شخصياً لا أباع على WF.لم تكن فائدتها واضحة بالنسبة لي مثل تقنيات MS الجديدة الأخرى، مثل WPF أو WCF.

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

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

تعمل مسارات عمل Windows على إغراء مديري تكنولوجيا المعلومات غير المشفرين، وBAs وما شابه ذلك كما يفعل ابن عمه BizTalk، ولكن في الواقع فإن اختبار الوحدة وتصحيح الأخطاء وتغطية التعليمات البرمجية ليست سوى ثلاثة من المزالق العديدة.يمكنك التغلب على بعضها ولكن عليك أن تستثمر بكثافة في تحقيق ذلك بينما تحصل على ذلك باستخدام التعليمات البرمجية البسيطة.إذا كان لديك حقًا متطلب طويل الأمد، فمن المحتمل أنك تحتاج إلى شيء أكثر تعقيدًا.لقد سمعت الحجة حول القدرة على إسقاط ملفات xaml الجديدة في الإنتاج دون إعادة تجميع ملفات dll ولكن بصراحة، يمكن استخدام الوقت الذي ستستهلكه مهام سير العمل بشكل أفضل لتحسين التكامل المستمر الخاص بك إلى النقطة التي لا تمثل فيها عمليات النشر المجمعة مشكلة.

سأستخدمه في أي بيئة أحتاج فيها للعمل مع سير العمل، ولكن عند استخدامه بالتزامن مع K2 أو حتى SharePoint 2007، تكون قوة النظام الأساسي مفيدة حقًا.عند تطوير تطبيقات الأعمال مع متخصص في ذكاء الأعمال، يوصى باستخدام النظام الأساسي وهذا عادةً ما يكون ذا صلة فقط بتبسيط العمليات التجارية وتحسينها.

للعلم، تم تطوير WF بالتعاون مع فريق تطوير K2 وتم بناء K2 Blackpearl الجديد فوق WF، وكذلك محركات سير العمل الخاصة بـ MOSS 2007 وWSS 3.0.

عندما لا ترغب في كتابة كل هذه الرموز يدويًا للحفاظ على الواجهة المرئية والتتبع والثبات، فمن الحكمة التصويت لصالح WF.

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

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

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