سؤال

أحتاج إلى طريقة لتبادل البيانات بين العملية وخدمة Windows. تحتاج العملية (تطبيق نموذج Windows ، وتطبيق وحدة التحكم ، في المستقبل أيضًا إلى حل ويب) إلى توجيه خدمة Windows والتفاعل معها. أريد أن أعرف أي طريقة هي الأفضل لإنجاز هذا. سأكتب الحل في إصدار C#، .NET Framework لا يهم. في الماضي ، استخدمت عن بُعد (Activator) ، واجهة WCF مع العقود ، Inter Process Exchange IPC وبعض تنفيذ الأنابيب المسماة. ما هي تجربتك؟ طرق أخرى؟

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

المحلول

سأختار WCF. إنه الأكثر حداثة وربما أفضل مقاربة مدعومة في الوقت الحالي. إنه "استبدل" التقنيات القديمة في معظم السيناريوهات. ميزة لطيفة من WCF هي أنه إذا كنت بحاجة إلى نقل خدمتك إلى بروتوكول آخر ، فيمكنك القيام بذلك ببساطة في التكوين.

إذا كنت تتوقع أن يتم تشغيل خدمة Windows دائمًا على نفس الجهاز مثل التطبيق الآخر ، فيمكنك استخدام WCF مع NetNamedBinding. إذا قررت نقل خدمتك إلى جهاز آخر ، فسيتعين عليك تغيير التكوين (ربما إلى nettcpbinding) لأن الأنابيب المسماة في WCF محدودة فقط على IPC.

نصائح أخرى

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

الإجابة الحقيقية الوحيدة على هذا السؤال هي ، أيهما أكثر راحة.

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