2010-10-07 2 views
8

Не добавить еще один SO пост относительно различные WCF стеки, но я хочу, чтобы убедиться, что я иду в правильном направлении, прежде чем я тратить больше времени на разработку ...WCF/WCF Data Services/WCF RIA Services

Мой сценарий. В нашей компании есть несколько веб-приложений, которые имеют доступ к одной и той же серии баз данных. Все приложения в основном разрабатывались независимо, поэтому существует тонна бизнес-логики и повторения доступа к данным. Кроме того, у меня есть (возможно, необоснованная) цель сделать этот проект независимым от клиента - консолидировать нашу текущую бизнес-логику и доступ к данным в интерфейс, к которому можно получить доступ через веб-приложение Silverlight, мобильное приложение и т. Д.

Ввод WCF - это отличает меня как идеальный вариант для достижения обоих. К сожалению, после прочтения всего существующего «руководства», которое существует по различным вкусам WCF, я все больше возвращаюсь, чем что-либо. Вот выводы, которые я пришел до сих пор - не стесняйтесь исправить меня:

  • Straight WCF - самый гибкий и всеобъемлющий вариант, но все начинается с нуля; потребует значительного времени для настройки и тестирования; наиболее технически зрелый вариант с крючками для достижения большей части целей
  • WCF Data Services - самый быстрый способ получить услугу REST онлайн; отлично, если приложение просто должно предоставить данные непосредственно из БД; Если бизнес-логика необходима, она либо должна быть написана на стороне клиента, либо второй службой, предоставляющей логику.
  • Услуги WCF RIA - самый быстрый способ настройки службы, готовой выставить бизнес-логику; Возможно, наиболее технически незрелые варианты (но с тем, что похоже на значительные инвестиции для его продвижения); Конечные точки Soap, REST и JSON позволят большей части независимости клиента;

Таким образом, учитывая мои требования выше, я пришел к следующим выводам: службы данных, вероятно, являются не стартером из-за требований бизнес-логики (а идея второго сервиса WCF, использующего службу данных, поражает меня как крайне плохой архитектурный выбор); Скорость имеет значение, что указывает на то, что RIA Services может быть лучшим местом для начала (назовите меня ленивым, но имея небольшую команду с жестким таймфреймом, делает создание кода ценным).

Есть ли лучший способ справиться с целями, которые я описал? Не понимаю ли я какие-либо/все варианты WCF? Какое другое практическое руководство может быть предложено для выбора того, какой подход WCF (не только для меня, но и для других, кто пытается оценить технологии)?

ответ

2

Я бы пошел с прямым WCF.

Это позволяет выставлять свои услуги через различные конечные точки в зависимости от требований:

  • SOAP для кросс платформенной interopability
  • Binary NetTcp для внутренних клиентов требует СКОРОСТЬ
  • JSON для легкого доступа