2009-10-29 2 views
15

Я переписывания приложение LOB, архитектура которого выглядит так:RIA Services против служб WCF

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

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

ответ

13

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

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

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

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

+0

будет ли такая архитектура работать хорошо? 1) silverlight -> RIA Services -> WCF -> Entity Framework 2) мобильное приложение -> WCF -> Entity Framework –

+1

Может ли кто-то с разрешением на редактирование изменить этот ответ, чтобы отразить текущее состояние RIA (теперь оно доступно) , Пик проблема, я знаю, но лучше всего, что StackOverflow может читать старые ответы, которые по-прежнему актуальны :) –

0

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

0

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

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

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

Спасибо.

-6

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

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

+2

Вам не нужно ** использовать ** WCF RIA Services для создания приложения N-уровня. Простой старый WCF работает, и есть также опция WCF Data Services. Выбор между ними несколько сложнее. –

+1

-1; это совершенно неверно, что вам нужно * использовать WCF RIA. –

+1

Seconded - RIA - ОДИН способ создать приложение N-уровня с Silverlight. – jlo

3

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

0

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

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

1

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

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

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

+0

Вы можете использовать службы RIA как обычные службы WCF, а также как конечные точки OData и JSON – SteveC

Смежные вопросы