سؤال

بصرف النظر عن وثائق Microsoft ، هل هناك مقدمة جيدة وتعليمي لإطار Microsoft Reactive (RX)؟

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

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

المحلول 2

إليك موقع Wiki مع الكثير من أمثلة التعليمات البرمجية التي توضح كيفية استخدام ميزات مختلفة لإطار .NET RX: http://rxwiki.wikidot.com/101samples

لقد وجدت أن هذا هو الموقع الأكثر شمولاً هناك ، والموقع الأسرع للبدء معه.

نصائح أخرى

تحديث: تم استبدال منشورات المدونة أدناه من خلال كتابي على الإنترنت www.introtorx.com. إنه كتاب شامل 19 فصل متاح مجانًا. يمكنك تصفحه على الويب ، أو تنزيل إصدار Mobi لـ Kindle. يمكنك أيضًا الحصول عليها مباشرة من Amazon مقابل رسوم صغيرة (~ 99c / 77p). إذا كان الكتاب لا يلبي احتياجاتك أو توقعاتك ، فدعني (المؤلف) أعرف وسنفعل أفضل ل V2.

شكرا على الرابط إلى المنشور الساخن/البارد. هذا جزء واحد فقط من سلسلة كاملة,

  1. مقدمة إلى RX
  2. أساليب ثابتة وطرق التمديد
  3. إدارة مدى الحياة - إكمال وإلغاء الاشتراك
  4. التحكم في التدفق
  5. الجمع بين تيارات متعددة قابلة للرسوم
  6. الجدولة والخيوط
  7. الملاحظات الساخنة والباردة
  8. اختبار RX
  9. المخزن المؤقت ، النافذة ، الانضمام والانضمام إلى المجموعة

سأستمر في تحديث هذه المدونة مع المزيد من الأشياء التمهيدية RX.

للحصول على المزيد من الأشياء المتقدمة التي تريد الذهاب إلى منتدى RX (MSDN).

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

var pen = new Pen(Color.Red, 3);
var graphics = this.CreateGraphics();

var mouseMoveWhileDown = 
    from md in this.GetMouseDown()
    from mv in this.GetMouseMove().Until(this.GetMouseUp())
    select new Point(mv.X, mv.Y);

mouseMoveWhileDown
    .Pairwise()
    .Subscribe(tup => graphics.DrawLine(pen, tup.Item1, tup.Item2)); 

(يجب أن أعترف أنه في هذا المثال ، يتم زراعة Pairwise () ...)

أهم شيء في iobservable هو أنه "قابلية للتأليف" ، تمامًا مثل Ienumerable.

أوصي بشكل كبير بالفيديو المذكور في إجابة أخرى. في الواقع ، هناك العديد من مقاطع الفيديو المختلفة حول هذا الموضوع على القناة 9:

بمجرد أن تمر ببعض الأشياء الأساسية بما في ذلك HandsonLabتأكد من تسجيل الخروج ملاحظات لي كامبل الساخنة والباردة الذي أخذ بعض الغموض الغامضة من Rx بالنسبة لي :)

قد تجد هذه السلسلة من المقالات (هناك أربعة) حول LINQ التفاعلية مفيدة:البرمجة التفاعلية (II.) - تقديم LINQ التفاعلي.

لديه مثال على كتابة لعبة تستخدمها ، لذلك نأمل أن يكون ما تبحث عنه.

لقد وجدت أيضا تقديم إطار التفاعل الجزء الأول على CodeBetter.com. هناك تكملة للجزء الأول على نفس الموقع.

آمل أن يكون هذا سيساعدك.

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

العب مع RX Sandbox للحصول على رؤية بديهية للغاية لما تعنيه المخططات المختلفة. هذه هي أفضل أداة تعليمية رأيتها.

انتقل من خلال هذه المقالات ، وعلى وجه الخصوص ، قم بتنزيل رمز المصدر ذي الصلة واللعب معها.

الثقة في هذا سوف يساعد

للإجابة على السؤال الثاني ، إليك مشكلة يمكن أن تستفيد كثيرًا من RX. يطلق عليه "Get Rich Quick".

لقد طورت لعبة بنفس الاسم وهي تبيع جيدًا. لكنه متوفر فقط في متاجرك للجملة. لجعل المعالجة النقدية أسهل ، لديك حزام ناقل يتدفق نحوك.

(لا تتردد في تغيير القصة أعلاه :))

يضع موظفي المبيعات حشوات من النقود مع عدم وجود علامات تشير إلى مبلغ ونوع الفواتير في WAD. مهمتك هي فرز المال وحسابه. في وقت لاحق ، عندما تحصل على المزيد من المال ، يمكنك استئجار الآخرين لمساعدتك.

في هذه الحالة ، يكون المصدر مصدرًا غير متزامن لـ Wads of Cash (المنتج). يتوقع موظفوك ومورديك المال ، ولكن عليك أن تستهلك WADs ، وفكها واستخدام منطق عملك المخصص لإعادة التعبئة حسب الاقتضاء لدفعها.

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

هل يمكن أن تمثل كل WAD بواسطة بايت [].

هذا هو الوضع الحقيقي الشائع إلى حد ما. عندما تقوم باسترداد أي مورد [على سبيل المثال ، صفحات الويب لمحركات البحث أو الصور أو مقاطع الفيديو] على شبكة أو بيانات من الأجهزة الطرفية ، فإنك تحصل عليها في أجزاء من البايت (ربما مع الرؤوس). في موضوع واحد ، أو في بيئة متعددة الخيوط يصعب العمل معها ، تميل إلى تجميعها ومعالجتها. ليس بعد الآن!!

Jesse Liberty لديها كتاب خارج ، تم نشره في أكتوبر 2011:

Amazon.com: البرمجة التفاعلية و LINQ

وهناك مقاطع فيديو Rxworkshop على القناة 9:

القناة 9: Rxworkshop

هل تمتد بند "استبعاد وثائق Microsoft" إلى مقاطع الفيديو على القناة 9؟

من خالق الإطار التفاعلي Erik Meijer: - خبير للخبير: براين بيكمان وإريك ميجير - داخل إطار .NET التفاعلي (RX)

علامة تجارية جديدة: البدء مع امتدادات RX لـ .NET

بالإضافة إلى روابط أندرياس هوفمان (وجدت لها مفيدة للغاية عندما كنت أتعلم RX)

فيما يلي بعض مقاطع الفيديو Bart de Smet (رجل ذكي جدًا يشرح الأشياء جيدًا):

نوعا ما من خلال RX:
RX - علاج البلوز غير المتزامن الخاص بك

بعض الدواخل المجردة + بعض الفلسفة ، هذه مقاطع الفيديو هذه تنوير حقًا:
Min Linq - جوهر Linq
(يتعامل الفيديو أعلاه مع كيفية ارتباط Linq Kinda بأشياء أخرى ، مثل RX)

الملاحظات على iqbservable - مزدوج iqueryable

Devhol202 - علاج البلوز غير المتزامن مع امتدادات التفاعلية لـ .NET (PDF ، 2 MB) هو أفضل مختبر/تعليمي رأيته حتى الآن. إنه يرشدك من خلال أساسيات المكتبة ، بحيث يمكنك بناء وتصميم ما تعلمته.

هناك أيضا نسخة جافا سكريبت. ابحث عن Google عن "الامتدادات التفاعلية على المختبر".

أحببت مقدمة إلى RX الجزء 1 - أنواع المفاتيح, ، وأظهرت الميزات الرئيسية.

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