Я хорошо знаком с RIA Services и знаю, где это не так.Я мало знаю об услугах передачи данных и DevForce, но я знаю, что DevForces рекламирует себя лучше, чем RIA Services, именно в тех областях, где меня это раздражает, а именно:
- RIA не может выполнять групповую работуили присоединения любого рода.(Интересно, что в некоторых случаях инструментарий DevExpress может сделать некоторую хитрость для группировки по источнику RIA Services.)
- Он понимает отношения, но не в многодетных типах, где он должен был бы обрабатыватьперевод на бридж таблицу прозрачно.(РЕДАКТИРОВАТЬ: это запланировано для Open Ria Services)
- Отслеживание изменений работает через контекст (единицу работы), который может быть отправлен или отклонен только целиком (в любом случае из коробки).Это обычно приводит к приложению со многими контекстами и странными операциями копирования для передачи сущностей.В этом помогает проект RIAServicesContrib .
- Похоже, он больше не поддерживается.Я основываю это на том факте, что когда Entity Framework 4.1 выпустила свой новый API DbContext (для кода в первую очередь), Microsoft выпустила библиотеку совместимости , с которой вы могли бы использовать код RIA и EF сначала .Эта библиотека имеет блокировку версии на EF 4.1, и Microsoft теперь просто заявляет, что RIA Services не поддерживает DbContext в форме оруэлловской заметки для Visual Studio 2012. (ПРАВКА: DbContext теперь снова поддерживается- EF в настоящее время поддерживается до версии 5, причем 6, вероятно, поддерживается только в Open Ria Services)
- Некоторые задачи, такие как наблюдение за изменениями связанных объектов программно (а не посредством привязки данных), трудны.
- Некоторые вещи, которые должны быть действительно простыми, такие как получение контекста от присоединенной сущности, являются сложными.
- Все запросы являются одиночными запросами, пакетируется только оставшийся CUD (из CRUD).
- Пользовательские методы для вызова вместе с обычными операциями CUD очень ограничены.В частности, невозможно отменить запланированное без отмены всего контекста.Это сделало их практически бесполезными в большинстве случаев, когда я хотел их использовать.
- Вам придется решить, использовать ли DomainDataSource, зверя, который делает слишком много и слишком мало.Вы также можете получить все программно, но некоторые вещи действительно быстро подключаются с помощью этого помощника xaml.
- Нет встроенной поддержки сериализации объектов в изолированное хранилище.
- Silverlight (иЯ полагаю, Javascript - единственные поддерживаемые платформы - без WPF.(РЕДАКТИРОВАТЬ: это запланировано для Open Ria Services - в частности, оно должно быть в состоянии обслуживать BreezeJS)
Поскольку службы данных старше (я думаю), мне было все равно присматриватьна него.Однако недавно я просмотрел список возможностей DevForce, и я считаю, что это звучит захватывающе, хотя я ничего не могу сказать об этом по своему опыту.
(РЕДАКТИРОВАТЬ: я нашел очень хорошо осведомленное сравнение RIA Services и WCFКолин Блэр здесь .)
Архитектор сравнивает свой продукт с RIA Services здесь .Я рассмотрел некоторые из его пунктов, но не все.
В целом я могу сказать, что RIA Services явно лучше, чем сырой WCF, но также ясно, что должно быть что-то лучше этого.Я надеюсь, что это DevForce.