RIA Services против WCF Services - PullRequest
       24

RIA Services против WCF Services

15 голосов
/ 30 октября 2009

Я переписываю LOB-приложение, архитектура которого выглядит следующим образом:

Silverlight && Windows Mobile -> WCF -> Entity Framework -> База данных.

Мобильное приложение должно было выполнять определенные функции, например, приложение silverlight. Какие преимущества я получу от использования Сервисов RIA здесь? Каковы преимущества и недостатки RIA Services перед WCF?

Ответы [ 7 ]

13 голосов
/ 30 октября 2009

.NET RIA Services был создан для Silverlight, который работает в браузере. Silverlight использует специальную версию платформы .NET, и в приложении N уровня Silverlight не может обмениваться сборками со стороны сервера. Благодаря использованию умной генерации кода .NET RIA Services этот пробел становится практически незаметным для разработчика. Классы, подобные классам домена, представляют собой код, сгенерированный на стороне клиента, и также доступны способы перемещения объектов между клиентом и сервером.

Возможно, вы сможете вызвать службу .NET RIA из Windows Mobile, но я не думаю, что это будет особенно легко, и в настоящее время вам, возможно, придется фактически перепроектировать то, что отправлено по проводам (используется JSON) , WCF, с другой стороны, имеет гораздо более широкий охват, но не поддерживает разработку Silverlight так же, как .NET RIA Services.

Если вы пишете только для Silverlight N-уровневое приложение, службы .NET RIA очень мощные. Однако если Silverlight является лишь одним из нескольких клиентов, возможно, лучшим выбором будет WCF.

Обратите внимание, что службы .NET RIA еще не выпущены, но предварительный просмотр доступен для загрузки.

3 голосов
/ 12 февраля 2010

WCF RIA Services представляет несколько решений для задач, с которыми вы сталкиваетесь при использовании WCF от Silverlight. Например, асинхронная загрузка запросов с использованием EntityQuery<T> намного проще, чем решение Begin..End, предлагаемое WCF. Кроме того, RIA обеспечивает интегрированное отслеживание изменений от вашего клиента, что позволяет отправлять или отклонять несколько изменений как один набор изменений. RIA объединит все эти изменения в один запрос, но из вашей доменной службы он ведет себя как индивидуальный вызов. Как давний разработчик WCF, я могу сказать вам, что это бриз.

1 голос
/ 31 октября 2010

Сервисы Ria созданы только для использования с Silverlight. По сути, они представляют собой стандартную «упаковку», готовую к использованию Silverlight. Преимущество состоит в том, что у вас есть много сервисов без необходимости писать код, т.е.

  1. Поддержка аннотаций данных
  2. Поддержка членства провайдера и логина
  3. Поддержка передачи на сервер Silverlight сгенерированных исключений. В Silverlight есть проблема, которая затрудняет нормальную передачу ошибок исключения через FaultContract. Дело в том, что браузер не может обрабатывать все коды ошибок. Служба Риа решает эту проблему с помощью хитрости

Все, что делает Ria, может быть выполнено с помощью WCF и другого доступного программного обеспечения, в частности, с помощью служб данных Wcf. Например, для аннотаций данных я обнаружил эту библиотеку , которая работает лучше, чем службы Ria, поддержка членства просто требует активации уже существующей конечной точки членства службы WCF, и, наконец, проблему исключений легко решить, написав поведение WCF. Код доступен здесь: http://www.silverlightshow.net/Storage/10Tips.zip Дело в том, что с Ria Service вы получаете все это одним щелчком мыши! С другой стороны, службы Ria очень сложно настроить ... поэтому, если вам не нравится стандартное решение, которое они предлагают, вы просто не сможете их использовать

0 голосов
/ 02 марта 2010

Пока не будет официального релиза WCF RIA Services, я не думаю, что на этот вопрос есть однозначный ответ. Начиная с текущей бета-версии (для VS 2008, SL 3), службы RIA не скрывают асинхронную природу вызовов службы; вам все еще нужно предоставить метод обратного вызова. Кроме того, службы RIA в настоящее время не поддерживают пользовательские классы (или коллекции пользовательских классов) в качестве параметров или возвращаемых значений при вызовах службы RIA. У меня также возникают проблемы с предоставлением нередактируемых классов сущностей через RIA Services. (Ошибка говорит о том, что коллекция сущностей не редактируется. Да, именно это я и хочу ...)

На этом этапе мне нужно отступить и еще раз взглянуть на то, как заставить работать старый WCF. Это не так просто, учитывая размер разрабатываемого нами приложения, но, похоже, это будет работоспособное решение, пока MS не исправит некоторые текущие проблемы с RIA Services.

0 голосов
/ 30 декабря 2009

.NET RIA Services было названо WCF RIA Services в PDC, которое проводилось в ноябре 2009 года. Поскольку оно построено поверх WCF, отсюда и название WCF RIA Services .

Вам потребуется использовать службы RIA WCF для создания приложения уровня N, включающего базу данных (или любую информацию, которую необходимо переносить по уровням).

0 голосов
/ 30 декабря 2009

Независимо от ответа:

Службы RIA построены на основе WCF. С выпуском PDC это будет гораздо очевиднее. РИА Сервис упрощает программирование на стороне клиента модель так, чтобы она очень близко соответствовала с вашим сервером DomainService на стороне сервера и юридические лица.

Для меня (и я полагаю, что для автора темы) неясно, что службы RIA предоставляют также помимо доступа к DomainService (что то же самое, что предоставляется WCF)?

Спасибо.

0 голосов
/ 30 октября 2009

RIA Services построен на основе WCF. С выпуском PDC это станет намного более очевидным. RIA Services упрощает модель программирования на стороне клиента, так что она очень близко соответствует вашей серверной службе домена и объектам.

...