Служба данных WCF против службы WCF RIA - PullRequest
3 голосов
/ 06 декабря 2011

Мне нужно оценить архитектуру SOA между службами данных WCF против службами RIA WCF . Ниже приведены некоторые из моих параметров:

  1. Несколько клиентов (HTML5 / iOS / Android / Windows 8 Metro / Windows Phone 7)
  2. Отключено и в автономном режиме
  3. Проверка двигателя
  4. Производительность
  5. Сжатие сетевых данных
  6. Поддержка облачной среды

Может ли кто-нибудь помочь мне собрать данные для моей оценки. Кроме того, есть ли другой хороший вариант для реализации SOA.

Мне известно о DevForce.

Ответы [ 2 ]

5 голосов
/ 21 ноября 2012

Я хорошо знаком с RIA Services и знаю, где это не так.Я мало знаю об услугах передачи данных и DevForce, но я знаю, что DevForces рекламирует себя лучше, чем RIA Services, именно в тех областях, где меня это раздражает, а именно:

  1. RIA не может выполнять групповую работуили присоединения любого рода.(Интересно, что в некоторых случаях инструментарий DevExpress может сделать некоторую хитрость для группировки по источнику RIA Services.)
  2. Он понимает отношения, но не в многодетных типах, где он должен был бы обрабатыватьперевод на бридж таблицу прозрачно.(РЕДАКТИРОВАТЬ: это запланировано для Open Ria Services)
  3. Отслеживание изменений работает через контекст (единицу работы), который может быть отправлен или отклонен только целиком (в любом случае из коробки).Это обычно приводит к приложению со многими контекстами и странными операциями копирования для передачи сущностей.В этом помогает проект RIAServicesContrib .
  4. Похоже, он больше не поддерживается.Я основываю это на том факте, что когда 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)
  5. Некоторые задачи, такие как наблюдение за изменениями связанных объектов программно (а не посредством привязки данных), трудны.
  6. Некоторые вещи, которые должны быть действительно простыми, такие как получение контекста от присоединенной сущности, являются сложными.
  7. Все запросы являются одиночными запросами, пакетируется только оставшийся CUD (из CRUD).
  8. Пользовательские методы для вызова вместе с обычными операциями CUD очень ограничены.В частности, невозможно отменить запланированное без отмены всего контекста.Это сделало их практически бесполезными в большинстве случаев, когда я хотел их использовать.
  9. Вам придется решить, использовать ли DomainDataSource, зверя, который делает слишком много и слишком мало.Вы также можете получить все программно, но некоторые вещи действительно быстро подключаются с помощью этого помощника xaml.
  10. Нет встроенной поддержки сериализации объектов в изолированное хранилище.
  11. Silverlight (иЯ полагаю, Javascript - единственные поддерживаемые платформы - без WPF.(РЕДАКТИРОВАТЬ: это запланировано для Open Ria Services - в частности, оно должно быть в состоянии обслуживать BreezeJS)

Поскольку службы данных старше (я думаю), мне было все равно присматриватьна него.Однако недавно я просмотрел список возможностей DevForce, и я считаю, что это звучит захватывающе, хотя я ничего не могу сказать об этом по своему опыту.

(РЕДАКТИРОВАТЬ: я нашел очень хорошо осведомленное сравнение RIA Services и WCFКолин Блэр здесь .)

Архитектор сравнивает свой продукт с RIA Services здесь .Я рассмотрел некоторые из его пунктов, но не все.

В целом я могу сказать, что RIA Services явно лучше, чем сырой WCF, но также ясно, что должно быть что-то лучше этого.Я надеюсь, что это DevForce.

4 голосов
/ 06 декабря 2011

Оба раскрывают сущности через OData, но RIA Services специально нацелены на:

  • Потребление Silverlight
  • Плохие услуги для мужчин - их легче начать и запустить без особых усилий

Службы данных WCF гораздо более мощные и настраиваемые.Самое большое различие (IMO) заключается в том, что для служб RIA требуется один тип хоста для каждой сущности, тогда как службы данных WCF могут автоматически размещать весь контент (тип с несколькими свойствами IQueryable).

При этом обе реализации являютсядовольно наполовину испеченный (опять же только IMO) и не очень хорошо продуманный или реализованный.... Вам может быть лучше с традиционными операциями WCF, размещенными с атрибутами WebGet / WebInvoke ... или с использованием WCF Web API .

Я бы не стал использовать DevForce только потому, что онв основном нацелены на реализации Silverlight (если я правильно помню).Тем не менее, они довольно классные и намного более функциональные, чем RIA или WCF Data Services.

...