هل يمكن أن يتم كل شيء برمجيا في WCF أو هي ملفات التكوين لميزات معينة؟

StackOverflow https://stackoverflow.com/questions/1724268

  •  19-09-2019
  •  | 
  •  

سؤال

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

ملاحظة: أنا أستخدم .NET 3.5.

يمكنك أن تفعل "كل شيء" مع WCF برمجيا أو هي ملفات التكوين المطلوبة لمجموعة ميزة WCF كاملة؟

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

المحلول

يمكنك القيام بحوالي 99.8٪ من الأشياء في التعليمات البرمجية وكذلك التكوين.

يمكن إجراء بعض الأشياء فقط في Code - مثل إعداد اسم المستخدم وكلمة المرور في مكالمة تتطلب هذين المصادقة.

ويبدو أن هناك بعض الأشياء التي يمكن القيام بها في التكوين فقط - انظر هذا الآخر الأخيرة حتى السؤال مثال واحد.

لكنني أعتقد، إذا كنت تفضل الكود، يجب أن تكون على ما يرام للغالبية العظمى من الحالات.

مارك

نصائح أخرى

تعليق مكثف ...

إجابة Marc_s وجهة نظر السؤال هو جيد (اثنان + 1s مني).

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

الانتقال إلى التكوين البرنامجي من الإعداد المستند إلى ملف التكوين

  • تفقد القدرة على ضبط (اقرأ: Hack!) الأشياء في الحقل - سيكون طريقك الوحيد للرجل هو إعادة ترجمة الثنائيات وإعادة نشرها. بالنسبة للعديد من السيناريوهات (بما في ذلك أحد الألغام) هذا ليس ن.
  • تفقد القدرة على التبديل بين مجموعات متعددة من التكوينات عن طريق شعوذة لهم في ملف التكوين.

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

تحديث: لقد قمت بتنفيذ آلية حيث استخدمت ChannelFactory<T> لكن التقاط تكوين مخصص من App.config إذا كان موجودا، أو تقديم افتراضي إذا لم يكن (سيناريو الخاص بي هو أنني ضيف في عملية شخص آخر، وبالتالي لا يمكن أن تفترض أن تكوين FUILE سهل تم تحديث UPDATE / حتى الآن لا تريد أن تفقد خيار إعدادات التغيير والتبديل بعد النشر)

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