Подтвердить что ты не робот

Услуги RIA и услуги WCF

Я переписываю приложение LOB, архитектура которого такова:

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

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

4b9b3361

Ответ 1

.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 Services очень эффективны. Если, однако, Silverlight является лишь одним из нескольких клиентов, WCF, вероятно, лучший выбор.

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

Ответ 2

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

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

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

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

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

Спасибо.

Ответ 6

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

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

Ответ 7

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

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