| [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Пельмешко | ||
| Дата: | 17.11.09 20:00 | ||
| Оценка: | 283 (17) | ||
| Сабж зарелизили: http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx Ссылки на скачку: [Для .NET 3.5 SP1] [Для .NET 4 beta2] [Для Silverliqht 3] А так же: Reactive Extensions Team Blog Ура, товарищи, Erik Meijer strikes again! ![]() Много вкуснятины:
Develop with pleasure! |
| Re: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | desco | ||
| Дата: | 19.12.09 06:59 | ||
| Оценка: | 23 (2) | ||
| Здравствуйте, Пельмешко, Вы писали: <skipped/> Build 1.0.2144.0 12/18/2009 DevLabs: Reactive Extensions for .NET (Rx) Release notes: * License changes based on forum feedback * Add FromAsyncPattern to Silverlight * Remove Observable.Context and replace with IScheduler mechanism. * Perf fixes for Last*,First* and Single*. Adding Any, All * Additional StartWith overloads * Fix bug in EnumerableEx.Memoize * Fix bug in EnumerableEx.Retry * Fix bug in EnumerableEx.Merge * Add ObserveOn & SubscribeOn for Control and Dispatcher schedulers * Removed all time based operators which takes an Int instead of a TimeSpan or DateTime * Generalized the Using operator by adding a type parameter TResource constrained to implement IDisposable * Renamed BufferWithTime to Buffer since there is no ambiguity between the two now * Renamed Until to TakeUntil * Renamed WaitUntil to SkipUntil * Added various disposables in System.Disposables * Fixed a bug in Observable.Join * Added Observable.IsEmpty * Changed DateTime to DateTimeOffset * Setup will automatically uninstall previous releases |
| Re[2]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Аlexey | ||
| Дата: | 20.11.09 16:28 | ||
| Оценка: | 16 (2) | ||
| Здравствуйте, Пельмешко, Вы писали: П>Можно как-нибудь переиначить? Вот так можно
Работает если и не с 0 начинается счет. |
| Re[12]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Пельмешко | ||
| Дата: | 23.11.09 16:51 | ||
| Оценка: | 8 (1) | ||
| Здравствуйте, cadet354, Вы писали: C>Здравствуйте, Пельмешко, Вы писали: П>>Только что-то не нравится мне перспектива оборачивания функциональных типов в делегаты... C>чем не нравиться,только из-за чистоты, уж не думаю, что там производительность просядет, или что немцу хорошо то русскому смерть? Прогнал я простой тестик, то ли наврали в той статье, то ли JIT допилили с конца 2008 года:
Что то не видно тут "1000x"... Сойдёт короче Develop with pleasure! |
| Re: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | samius | ||
| Дата: | 17.11.09 20:48 | ||
| Оценка: | 7 (1) | ||
| Здравствуйте, Пельмешко, Вы писали: П>Сабж зарелизили: До кучи http://channel9.msdn.com/posts/Charles/Erik-Meijer-Rx-in-15-Minutes/ |
| Re[4]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Пельмешко | ||
| Дата: | 19.11.09 11:58 | ||
| Оценка: | 2 (1) | ||
| Здравствуйте, cadet354, Вы писали: C>ну так сырой он еще,(хотя идея хороша), вот поэтому и дают использовать, ИМНО именно этим и объясняется. Мне лично непонятно почему System.Unit — это valuetype Это специально чтоль чтобы generic-код компилировался специализированный для Unit? Почему не ref-тип с адресным null в качестве значения? И почему не унифицировали Unit в mscorlib четвёртого .NET, в F# свой class Microsoft.FSharp.Core.unit, тут свой... p.s. порадовал .Memoize(), давно пора было включить... .Remotable(), .Share(), .Do(), .Run() тоже рулят p.p.s. Может кто подкинет ссылки что за зверь такой — этот join calculus, что-то ничего не смог нагуглить внятного, примеры бы. Develop with pleasure! |
| Re: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Аноним 644 | ||
| Дата: | 18.11.09 02:12 |
| Здравствуйте, Пельмешко, Вы писали: Висит груша, нельзя скушать |
| Re: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | z00n | ||
| Дата: | 18.11.09 02:36 |
| Здравствуйте, Пельмешко, Вы писали: П>Сабж зарелизили: Amb! |
| Re[2]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | agos | ||
| Дата: | 18.11.09 04:11 |
| Здравствуйте, Аноним, Вы писали: А>Висит груша, нельзя скушать прочитал соглашение, стало грустно Не переходите улицу на тот свет.. |
| Re[3]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | cadet354 | ||
| Дата: | 19.11.09 06:03 |
| Здравствуйте, agos, Вы писали: А>>Висит груша, нельзя скушать A>прочитал соглашение, стало грустно ну так сырой он еще,(хотя идея хороша), вот поэтому и дают использовать, ИМНО именно этим и объясняется. свежий баг ... << RSDN@Home 1.2.0 alpha 4 rev. 1270>> |
| Re: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Аноним 100 | ||
| Дата: | 19.11.09 12:11 |
| Здравствуйте, Пельмешко, Вы писали: П>Сабж зарелизили: никак не найду примеры использования неужто по chm'ам "учится"? |
| Re[2]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Vladek | ||
| Дата: | 19.11.09 12:58 |
| Здравствуйте, <Аноним>, Вы писали: А>Здравствуйте, Пельмешко, Вы писали: П>>Сабж зарелизили: А>никак не найду примеры использования А>неужто по chm'ам "учится"? Пока есть только скринкасты, на Rx 101 Samples времени не хватило, но обещают. Вот ещё серию статей рекомендуют. Everything is an object ![]() |
| Re[5]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | achmed | ||
| Дата: | 20.11.09 09:49 |
| Здравствуйте, Пельмешко, Вы писали: П>p.p.s. Может кто подкинет ссылки что за зверь такой — этот join calculus, что-то ничего не смог нагуглить внятного, примеры бы. Вроде бы это просто объединение данных полученных из набора событий, например, вызвать два веб-сервиса(IObservable) и получить оба ответа. |
| Re: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Пельмешко | ||
| Дата: | 20.11.09 11:32 |
| А может кто подсказать как на стандартных операторах из System.Linq.Observable сделать такое observable, чтобы возвращало числа в определённым промежутке с определённым временным интервалом? Не могу очистить разум от IEnumerable, написал такое:
Но не нравиться мне это... да и только для промежутков 0 .. x корректно... Можно как-нибудь переиначить? Develop with pleasure! |
| Re[6]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Пельмешко | ||
| Дата: | 20.11.09 12:00 |
| Здравствуйте, achmed, Вы писали: A>Здравствуйте, Пельмешко, Вы писали: П>>p.p.s. Может кто подкинет ссылки что за зверь такой — этот join calculus, что-то ничего не смог нагуглить внятного, примеры бы. A>Вроде бы это просто объединение данных полученных из набора событий, A>например, вызвать два веб-сервиса(IObservable) и получить оба ответа. Да с этим и Observable.Zip() справится на ура...
Методы Observable.Join() и классы из System.Joins вообще мутные какие-то... Develop with pleasure! |
| Re[7]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | cadet354 | ||
| Дата: | 20.11.09 14:12 |
| Здравствуйте, Пельмешко, Вы писали: П>Методы Observable.Join() и классы из System.Joins вообще мутные какие-то... странно, ты не читал тут недавно ссылка была на PATTERNS OF PARALLEL PROGRAMMING?, выдержка оттуда: а zip это скорее для агрегации данных, можно в ухе и отверткой ковыряться, только не очень глубоко ... << RSDN@Home 1.2.0 alpha 4 rev. 1270>> |
| Re[8]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Пельмешко | ||
| Дата: | 20.11.09 14:56 |
| Здравствуйте, cadet354, Вы писали: C>Здравствуйте, Пельмешко, Вы писали: П>>Методы Observable.Join() и классы из System.Joins вообще мутные какие-то... C>странно, ты не читал тут недавно ссылка была на PATTERNS OF PARALLEL PROGRAMMING?, выдержка оттуда: Не читал ещё, а должен был? Странно? Под "мутностью" я имел ввиду слабое понимание предназначения классов типа System.Joins.Pattern и System.Joins.Plan без открытых конструкторов и статических членов... Сейчас разобрался, обнаружив Observable.And() и .Then() C>а zip это скорее для агрегации данных Никакой разницы в поведении. Можно и .ForkJoin()'ом, только оно дождётся лишь по одному сообщению от обоих observer'ов... Develop with pleasure! |
| Re[3]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Аlexey | ||
| Дата: | 20.11.09 16:40 |
| Здравствуйте, Аlexey, Вы писали: П>>Можно как-нибудь переиначить? А>Вот так можно А>
А>Работает если и не с 0 начинается счет. А еще вот так
|
| Re[9]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Аlexey | ||
| Дата: | 20.11.09 16:56 |
| Здравствуйте, Пельмешко, Вы писали: C>>а zip это скорее для агрегации данных П>Никакой разницы в поведении. Можно и .ForkJoin()'ом, только оно дождётся лишь по одному сообщению от обоих observer'ов... Глянул реализацию ForkJoin, оказалось что именно так оно и работает
|
| Re[10]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Пельмешко | ||
| Дата: | 20.11.09 17:21 |
| Здравствуйте, Аlexey, Вы писали: А>Здравствуйте, Пельмешко, Вы писали: C>>>а zip это скорее для агрегации данных П>>Никакой разницы в поведении. Можно и .ForkJoin()'ом, только оно дождётся лишь по одному сообщению от обоих observer'ов... А>Глянул реализацию ForkJoin, оказалось что именно так оно и работает А>
Интересно Хорошо, что в C# 4.0 сделали вывод типов из method group, можно будет не писать лямбды селекторов если надо просто вернуть кортеж объединённых значений, а сразу передать перегрузки Tuple.Create:
Очень неплохо выглядит Develop with pleasure! |
| Re[3]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Пельмешко | ||
| Дата: | 21.11.09 14:16 |
| Здравствуйте, Аlexey, Вы писали: А>Здравствуйте, Пельмешко, Вы писали: П>>Можно как-нибудь переиначить? А>Вот так можно А>
А>Работает если и не с 0 начинается счет. Проглядел Observable.Interval(), с ним ещё короче:
Develop with pleasure! |
| Re[9]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | cadet354 | ||
| Дата: | 23.11.09 07:24 |
| Здравствуйте, Пельмешко, Вы писали: П>Не читал ещё, а должен был? Странно? нет конечно, должен это когда взял и не вернул, это был не упрек, а мое удивление. C>>а zip это скорее для агрегации данных П>Никакой разницы в поведении. Можно и .ForkJoin()'ом, только оно дождётся лишь по одному сообщению от обоих observer'ов... и точно, я еще на библиотеку как следует не смотрел, как думаешь из F# будет удобно использовать? (например LINQ ИМНО ни разу не удобно) ... << RSDN@Home 1.2.0 alpha 4 rev. 1270>> |
| Re[10]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Пельмешко | ||
| Дата: | 23.11.09 08:50 |
| Здравствуйте, cadet354, Вы писали: C>Здравствуйте, Пельмешко, Вы писали: П>>Никакой разницы в поведении. Можно и .ForkJoin()'ом, только оно дождётся лишь по одному сообщению от обоих observer'ов... C>и точно, я еще на библиотеку как следует не смотрел, как думаешь из F# будет удобно использовать? (например LINQ ИМНО ни разу не удобно) Конкретно этот Rx, на базе перегруженных extension-методов в F# можно использовать только на манер linq method syntax в C#:
Но это косячно, например, нельзя перенести .MethodName() на новую строку + иногда partial application не дружит с приведением к типу делегата... Да и вообще с перегрузкой выводу типов сложнее, а ещё чаще вообще невозможно вывести правильный тип... Другое дело — модуль Observable и поддержка со стороны компилятора В последнем релизе любой event — уже IObservable, никаких Observable.FromEvent() не надо. Вот только похоже разрабатывают F# Observable далеко не те же люди, что и Rx... Функционал модуля Observable пока достаточно скромен и не понятно, будет ли когда-нибудь этот функционал базироваться на "официальном" Rx. p.s. Лично мне не понятно зачем после появления Observable в F# оставили модуль Event и IEvent... Похоже F# first-class events так и останутся жить своей жизнью, с последнего релиза вроде как в FSharp.Core не будут вносить breaking changes... Develop with pleasure! |
| Re[10]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Пельмешко | ||
| Дата: | 23.11.09 11:50 |
| Здравствуйте, cadet354, Вы писали: C>как думаешь из F# будет удобно использовать? Вот, кстати, товарищи уже обёртки пишут: http://www.navision-blog.de/2009/11/23/mapping-the-reactive-framework-rx-operators-for-f/ Только что-то не нравится мне перспектива оборачивания функциональных типов в делегаты... Develop with pleasure! |
| Re[11]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | cadet354 | ||
| Дата: | 23.11.09 13:26 |
| Здравствуйте, Пельмешко, Вы писали: П>Только что-то не нравится мне перспектива оборачивания функциональных типов в делегаты... чем не нравиться,только из-за чистоты, уж не думаю, что там производительность просядет, или что немцу хорошо то русскому смерть? ... << RSDN@Home 1.2.0 alpha 4 rev. 1270>> |
| Re[12]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Пельмешко | ||
| Дата: | 23.11.09 13:47 |
| Здравствуйте, cadet354, Вы писали: C>Здравствуйте, Пельмешко, Вы писали: П>>Только что-то не нравится мне перспектива оборачивания функциональных типов в делегаты... C>чем не нравиться,только из-за чистоты, уж не думаю, что там производительность просядет, или что немцу хорошо то русскому смерть? Мне сам факт не нравится, а может и просядет
Теперь читаем статью: http://tips.x-tensive.com/2008/10/method-call-performance.html И обращаем внимание на фразу:
Конечно делегат создавать надо только один раз, при формировании IObservable из цепочки методов... но всё же три порядка Проверить лень, рад буду ошибаться... Develop with pleasure! |
| Re[2]: [ANN] Reactive Extensions for .NET (Rx) | |
| От: | Пельмешко | ||
| Дата: | 19.12.09 10:31 |
| Здравствуйте, desco, Вы писали: D> * Generalized the Using operator by adding a type parameter TResource constrained to implement IDisposable Вот только для IEnumerable<T> такую же шляпу забыли Не понятно почему сразу нельзя было сделать generic-версию с contraint'ом, там и так всё обобщено насколько можно... Develop with pleasure! |