RIA Services Vs.WCF и общий код - PullRequest
       14

RIA Services Vs.WCF и общий код

4 голосов
/ 01 сентября 2011

Мы начинаем разработку нового LOB-приложения Silverlight, в котором DataAccess не будет основываться на EF, а скорее на нашем собственном коде DAL (по унаследованным и другим не связанным с этим причинам).

В настоящее время мы обсуждаем вопрос о том,использовать службы RIA или простые службы WCF в качестве слоя фасада Silverlight.

Параметры:

Службы RIA и сгенерированный код: Службы RIA будут автоматически создавать прокси-классы нашихМодель домена и DomainServices в нашем проекте Silverlight.
Это будет означать, что нашим службам необходимо будет наследовать от класса DomainService, и потребуется много работы и обходных путей для нормальной сериализации нашей пользовательской модели (поскольку мы не используем EF)

WCF и общие библиотеки: Мы создадим библиотеку DomainModel, которая будет совместно использоваться как Silverlight, так и нашим кодом сервера (, как предлагается здесь ), предоставляя нам больше контроляо том, как выглядят наши доменные классы, как они отображаются в Silverlight, и каксервисы останутся чистыми, так как WCF не требует от нас использования какого-либо базового класса и дает нам гораздо больше власти над тем, как предоставляются наши услуги.

Так что вопрос в том, что если мы не используем EF, то профессионалыСлужбы RIA и каковы преимущества использования WCF и общего домена?

1 Ответ

3 голосов
/ 01 сентября 2011

У меня есть разумный реальный опыт работы с обеими технологиями.

Основные плюсы и минусы на мой взгляд:

RIA Services

  • Pro: разработка (намного) быстрее, даже без использования Entity Framework. Вы можете создавать ViewModels, возможно, отображать их с помощью AutoMapper и указывать атрибуты, необходимые для проверки / ввода данных / отношений. Это хорошая практика даже при использовании платформы сущностей.
  • Con: A много накладных.
  • Con: производительность снижается при отправке больших объемов данных (что-то вроде> 100 объектов)

WCF и общие библиотеки

  • Pro: производительность относительно превосходна
  • Con: Время разработки / ремонтопригодность не так хорошо, как у RIA Services.
  • Con: Нельзя использовать привязку данных также без DomainDataSource (даже при использовании MVVM).

Обновление Для части привязки данных: RIA Services позволяет использовать элемент управления DomainDataSource в Silverlight. Это обеспечивает простую (асинхронную) загрузку с привязываемыми свойствами для его состояния (занят и т. Д.), Что упрощает загрузку анимаций и общие улучшения пользовательского интерфейса. Конечно, это можно сделать без этого элемента управления, но это помогает.

Что касается производительности сервисов RIA, я не могу найти пример (кто-то здесь сказал, что они потеряли несколько месяцев времени на переписывание доменных сервисов на обычные сервисы WCF из-за времени ответа, которое не могло быть выполнено).

Еще одно замечание о Silverlight (бизнес-приложении): попробуйте увеличить ваш браузер до 110% или 90%, с некоторым произвольным процентом. Шрифты / компоненты будут размыты из-за способа рендеринга. Я подтвердил это на нескольких машинах / конфигурациях и не нашел решения / обходного пути для этого. Привязка к пикселям устройства здесь совсем не помогает.

Также, прежде чем принять решение, возможно, стоит рассмотреть MVC3 с JQuery и HTML5 в качестве опции для вашего решения. Система HTML-разметки может быть не так хороша, как Silverlight, но есть такие преимущества, как кроссплатформенная и мобильная поддержка.

...