Reactive Extensions API in depth: Contract
- Posted: Nov 25, 2009 at 8:01 AM
- 52,224 Views
- 6 Comments
Download
How do I download the videos?
- To download, right click the file type you would like and pick “Save target as…” or “Save link as…”
Why should I download videos from Channel9?
- It's an easy way to save the videos you like locally.
- You can save the videos in order to watch them offline.
- If all you want is to hear the audio, you can download the MP3!
Which version should I choose?
- If you want to view the video on your PC, Xbox or Media Center, download the High Quality WMV file (this is the highest quality version we have available).
- If you'd like a lower bitrate version, to reduce the download time or cost, then choose the Medium Quality WMV file.
- If you have a Zune, WP7, iPhone, iPad, or iPod device, choose the low or medium MP4 file.
- If you just want to hear the audio of the video, choose the MP3 file.
Right click “Save as…”
- High Quality WMV (PC, Xbox, MCE)
- MP3 (Audio only)
- MP4 (iPod, Zune HD)
- Mid Quality WMV (Lo-band, Mobile)
Comments Closed
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation,
please create a new thread in our Forums,
or
Contact Us and let us know.
Follow the Discussion
Wes .. (or someboyd else
)
You mentioned in the previous 'Subscribe' video that 'unSubscribe() methods in many event frameworks are not compositional' ...
Why??? What makes dispose() more compositional than unSubscribe()?
Could you explain?
My understanding is that the Dispose() method is more compositional than unsubscribe because if your code doesn't call unsubscribe, the .NET Framework Garbage collector will do it for you (eventually). This can help alleviate issues that Event handlers suffer from, where if you do a += handler and not a -= handler it won't leak memory. Also Dispose() is called automatically when the IObservable completes or errors.
Thanks for the explanation!
Hi all,
Regarding the contract, I'm wondering about the case where an IObservable<> represents a finite source of (uncached) external "events".
Just imagine a postal service that exposes (for each handled letter or parcel) a member of type IObservable<DeliveryStatus>, where DeliveryStatus represents the location of the letter/parcel; whenever the barcode of the parcel is scanned, the location is notified to the subscribed observers; the IObservable<> is done (invocation of observers' OnDone() method) when the recipient receives the letter/parcel.
My idea is that when a client application receives/gets this IObservable<> and subscribes a matching IObserver<>, the letter may already have reached its destination since seconds/minutes/days (my country has a very efficient postal service).
Would each of the following be considered as an acceptable behavior?
1- The observer never gets any of its members invoked.
2- The observer's OnDone() is invoked on subscription.
3- The observer's OnNext() is invoked with the final location, then OnDone() is invoked; both invocations being done on subscription.
4- The observer's OnException() is invoked on subscription ("Parcel already arrived, dummy !")
Is one of these behaviors preferable?
Moreover, as a designer of such a "postal service notification framework", do I have a mean to force implementors to adopt one of the behaviors described above (1-4)? (I guess not)
Thanks for your insight.
Hi JWeber,
Rx allows all of the above options. It really depends on what you're looking for. option 1 would be the default behavior. if you had used a AsyncSubject or ReplaySubject, you could get option 3. option 1 and 4 you'd have to implement manually using Observable.Create.
Hope this helps,
Jeffrey
Hi Jeffrey,
First of all, thanks for your answer: I'm now sure the options I listed are valid implementations from Rx point of view.
And as the behavior of the IObservable depends on the choices made for the concrete type implementation, this also answers my second question.
So yes, your answer helped.
Thanks again (and please don't stop your "Rx in Depth" post series !)
J.
Remove this comment
Remove this thread
close