Microsoft CCR набирает обороты?
Microsoft Concurrency and Coordination Runtime буквально спасла проект, который столкнулся с серьезными проблемами с блокировкой. С тех пор я нахожу, что использую его все чаще и чаще для почти всего, что требует асинхронного кодирования, что дает результаты, которые работают легче и быстрее, чем раньше. Я могу честно заявить, что это изменило мой взгляд на многопоточный / многоядерный dev. Несмотря на мою личную любовь к CCR, в Интернете, кажется, очень мало шума вокруг него, и мне было интересно, может ли кто-нибудь предложить какую-либо причину для этого. Есть ли лучшие альтернативы, или это отсутствие продвижения от MS, или люди просто довольны существующими инструментами?
5 ответов
Лицензирование вокруг этого немного болезненно, насколько я помню.
Я думаю, что большинство людей ждут параллельных расширений в.NET 4.0. Я знаю, что это не совсем то же самое, но это все еще намного лучше, чем то, что находится в структуре в настоящее время - и хотя продолжения не работают так же, по крайней мере, они там:)
Я подозреваю, что у Parallel Extensions было больше работы над ним, чем у CCR - хотя я уверен, что работа CCR также вдохновила некоторые разработки PFX.
Я бы предположил, что TPL Dataflow, который будет выпущен как часть.Net 4.5, в конечном итоге заменит CCR. Большинство концепций в CCR имеют аналог в Dataflow, хотя это не обязательно прямое упражнение по переносу.
Тем не менее, Robotics Studio Developer 4 Beta 2, выпущенная в ноябре 2011 года, действительно включает версию CCR для Silverlight 4.
У меня тоже есть личная любовь к CCR... Я, конечно, не видел ничего такого, что можно сравнить с ним в.NET или где-либо еще. Я думаю, что это слишком плохо, что я думаю, что Джон прав, и он, вероятно, будет отнесен к нише таких энтузиастов, как мы, в то время как большая часть многопоточности.NET, вероятно, будет выполняться с помощью Parallel Extensions.
Я особенно разочарован этим прогнозом, потому что я думаю, что можно было бы сделать больше для его продвижения - скажем, возможно, вписать его в надежную инфраструктуру типа асинхронной шины сообщений предприятия, которой, как мне кажется, не хватает связной истории в.NET. Кроме того, глядя на сайт Microsoft CCR/DSS, я, вероятно, никогда бы не подумал попробовать... Я не понимаю, почему он был упакован таким образом - кроме того факта, что несколько компаний вырвали его из инструментария Robotics. и просто побежал с ним до того, как М.С. подумал, что у него есть цель вне робототехники.
Во всяком случае, вы не одиноки... и есть много других "энтузиастов" CCR. Вот аккуратный проект CodePlex, основанный на потоке, который оборачивает CCR в интересную парадигму потока.
До сих пор мне нравилось использовать CCR в двух крупных проектах. Первый ужасный (на самом деле не дошёл до идеи паттерна причинности), а второй - блестяще (веб-сканер)
Оба проекта используют парадигму, основанную на сообщениях, чтобы избежать ожидания медленных операций ввода-вывода. С CCR будет неплохо работать, если вы решите отсутствие совместимого преобразователя ORM. (Я собираюсь выпустить некоторые из написанного мною сантехнического кода, чтобы спасти других людей от боли в сердце)
Сказав это, RX выглядит довольно интересно. Мне любопытно, как это сравнивается с точки зрения обработки ошибок, скорости и надежности.
Microsoft Robotics Studio 2008 R3 теперь доступна и бесплатна для всех.