مثال جيد على استخدام الامتدادات التفاعلية [مغلق

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

  •  23-09-2019
  •  | 
  •  

سؤال

أنا أفهم أساسيات RX. من أين أواجه كيف ستستخدم هذا بالفعل ما وراء الأمثلة الأكاديمية؟ ما هي بعض السيناريوهات الشائعة والبسيطة في العالم الحقيقي حيث RX هو حل أفضل بكثير مما لدينا اليوم في .NET؟

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

المحلول

للحصول على مجموعة من الأمثلة الجيدة ، انظر عينات 101 RX wiki

نصائح أخرى

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

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

الإفصاح ، قابس وقح: الكتاب الذي كتبته وأنا جيسي ليبرتي عن RX تم تصميمه لحل هذا السؤال بالضبط ، "كيف يمكنني استخدام RX في عملي اليومي؟" ؛ "ماذا استطيع ان فعل مع هذا؟"

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

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

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

  • قياسات الجهاز
  • البيانات القادمة فوق حافلة الرسائل

في كلتا الحالتين الآن ، تكون الطريقة القياسية لتلقي البيانات عبر الأحداث ، ولكن إذا أردت بناء جملة الاستعلام ، أو التكوين ، فإن RX يعطيها لي أين لا تفعل الأحداث.

RX عامة جدًا ، لذا فهو يحتوي على فائدة غير محدودة ، تمامًا مثل Ienumerable/ienumerator لديها فائدة غير محدودة. IE يسحب القيم ، IO يدفع القيم.

يعد Foreach مثالًا ملموسًا على المكان الذي يأتي فيه Ienumerables في متناول يدي ، لكن هذا لا يفسر غير قابلة للتطبيق أو العائد أو أي شيء. الشيء نفسه ينطبق مع RX.

أن تكون قادرًا على النظر إلى شيء ما من وجهة نظر السحب ، أو وجهة نظر الدفع ، والقدرة على التحكم في الاتجاه أو الوسائل ، أمر قوي للغاية ، لأنه يمكنك الآن دفع وسحب الحسابات حول الإرادة ، باستخدام LINQ Query مشغلي "مجاني" ، ضد IO ، لأنه مزدوج رياضي من IE.

لقد ألقيت نظرة أولى على RX ، لكن مشروعًا ممتعًا سأستخدمه هو إنشاء عنصر واجهة مستخدم Silverlight يعرض النشاط في تطبيق الويب الخاص بـ ASP.NET MVC (ما هو أساليب الإجراء ، والتي تم استدعاؤها من قبل المستخدم ، إلخ) . يبدو أن RX يمكن أن تساعد في الكثير من الأشياء في هذا المشروع ، مثل إدارة التزامن والاختناق.

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