کار با Reactive Extensions

در این مقاله در مورد کتابخانه rx صحبت خواهیم کرد. در واقع rx یک کتابخانه برای ساخت برنامه های مبتنی بر asynchronous و event با استفاده از مجموعه قابل مشاهده است. این کتابخانه در مواردی مناسب است که داده های ناهمگام(asynchronous) را از منابع مختلف مورد استفاده قرار میدهید

کار با Reactive Extensions

یک پروژه #C در محیط کنسول ایجاد کنید، ما در مورد کتابخانه Rx  صحبت میکنیم. در واقع، Rx به یک کتابخانه برای ساخت برنامه های مبتنی بر asynchronous و event با استفاده از مجموعه قابل مشاهده نیاز دارد.

این  موارد که در آن شما  داده های ناهمگام از منابع مختلف را دریافت و سپس همان داده ها را دستکاری میکنید و در نهایت چاپ میکنید در نتیجه بسیار مفید است. در این نوع از حالات، شما باید برای ارسال تعداد زیادی از glue code و off-course  را داشته باشید.

به این ترتیب، شما واقعا نیاز به انجام بسیاری از مسائل دارید برای اینکه همه چیز خوب کار کند. از این رو، RX پاسخ به این نوع وضعیت، را دارد که چیزی ساده در عین حال سبک وزن است. همچنین با استفاده از پرس و جو RX LINQ در مجموعه قابل مشاهده است.

اما، این امر می تواند  صحبت کمی در مورد مجموعه ها قبل از شروع RX. IEnumerables که یکی از پر استفاده ترین مجموعه ها بر اساس نگه داری داده، داشت ، که همزمان در طبیعت هستند. در زیر قطعه نمونه برای همین است.

و بیایید فرض کنیم به هر دلیلی، منبع داده قطع شود،  چه اتفاقی خواهد افتاد؟ این انتظار را حفظ خواهد کرد تا زمانی که پایگاه داده انلاین باشد. و به شما  یک خطای شرم آور  مانند زیر نشان داده می شود.

با این حال، شما می توانید همین based interface  تبدیل به Push based interface. در زیر نمونه برای همان است.

<script src="https://gist.github.com/rahulsahay19/6b2d7f0b1c6073f322e9.js"></script>

بسیار کامل، دقیق و با ثبات است. ما چند نمونه در حدود همان لحظه را ببینید. در زیر برنامه سی شارپ نمونه، شما می توانید ببینید که IObservable و IObserver به طور پیش فرض در دات نت 4.0 و بالاتر در دسترس هستند.

در حال حاضر، اجازه دهید  نصب افزونه Rx  از NuGet را انجام دهیم

در نصب موفقیت آمیز، شما می توانید مجموعه را بررسی کنید.

در حال حاضر این 3 فاز برای گرفتن مشاهدات(observables) هستند.

اجازه بدهید با یک نسخه ی نمایشی ساده همان را توضیح دهیم. در حال حاضر، به عنوان مثال شما می توانید در تصویر زیر در اسرع وقت   ایجاد observable را مشاهده کنید.

<script src="https://gist.github.com/rahulsahay19/fd061218c47ea4ce91ce.js"></script>

آموزش سی شارپ

فایل های ضمیمه