Не добавлять еще один SO пост, касающийся различных стеков WCF, но я хочу убедиться, что я иду в правильном направлении, прежде чем тратить больше времени на разработку ...
Мой сценарий. У нашей компании есть несколько веб-приложений, которые имеют доступ к одной и той же серии баз данных. Все приложения были в основном разработаны независимо, так что есть тонна бизнес-логики и повторения доступа к данным. Кроме того, у меня есть (возможно, необоснованная) цель сделать этот проект независимым от клиента - объединить нашу текущую бизнес-логику и доступ к данным в интерфейс, к которому может получить доступ веб-приложение, Silverlight, мобильное приложение и т. Д.
Вход в WCF - мне кажется идеальным вариантом для достижения обоих целей. К сожалению, после прочтения всего существующего «руководства», которое существует в отношении различных разновидностей WCF, я продолжаю возвращаться в замешательстве больше, чем что-либо еще. Вот выводы, к которым я пришел до сих пор - пожалуйста, не стесняйтесь меня поправлять:
- Прямой WCF - наиболее гибкий и комплексный вариант, но все начинается с нуля; потребует значительного времени на настройку и тестирование; наиболее технически продуманный вариант с крючками для достижения большинства целей
- WCF Data Services - самый быстрый способ получить REST-сервис онлайн; отлично, если приложению просто необходимо выставить данные непосредственно из БД; Если необходима бизнес-логика, она должна быть написана на стороне клиента или вторым сервисом, который раскрывает логику.
- WCF RIA Services - самый быстрый способ настроить службу, которая готова предоставить бизнес-логику; Возможно, наиболее технически незрелый из вариантов (но с тем, что выглядит как значительные инвестиции для его реализации); Конечные точки Soap, REST и JSON обеспечивают большую часть независимости клиента;
Итак, учитывая мои требования, изложенные выше, я пришел к следующим выводам: службы данных, вероятно, еще не начались из-за требований бизнес-логики (а идея использования второго сервиса WCF, потребляющего службу данных, кажется мне крайне плохой архитектурой выбор); Скорость имеет значение, что указывает на то, что RIA Services может быть лучшим местом для старта (назовите меня ленивым, но небольшая команда в сжатые сроки делает создание кода ценным).
Есть ли лучший способ справиться с целями, которые я описал? Я неправильно понимаю все / все варианты WCF? Какие еще практические рекомендации могут быть предложены при выборе подхода WCF (не только для меня, но и для всех, кто пытается оценить технологии)?