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