Как предоставить сервисный уровень компонентам пользовательского интерфейса - PullRequest
0 голосов
/ 17 мая 2011

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

  • Мы хотели бы создать несколько компонентов на основе сервиса.
  • Мы бы хотели, чтобы сторонние разработчики использовали наш сервис для создания своих собственных компонентов илииспользуйте наши данные.
  • Для масштабируемости мы хотели бы установить несколько экземпляров на разных компьютерах.Точно так же может быть несколько экземпляров одного и того же компонента пользовательского интерфейса.

Один из способов предоставления уровня обслуживания - разместить его на уровне WCF на основе REST.

Другой способ - разместить службу на уровне модели проекта ASP.Net MVC.Компоненты пользовательского интерфейса будут размещаться в собственных проектах MVC.Javascript в представлениях компонентов пользовательского интерфейса будет напрямую вызывать контроллеры сервисного проекта.

WCF должен быть очень тяжелым вариантом.С другой стороны, я не слишком убежден в подходе MVC, так как считаю, что это не цель, для которой он предназначен.

Не могли бы вы порекомендовать мне способ раскрытия нашего уровня обслуживания в мире Microsoft.

Ответы [ 3 ]

4 голосов
/ 17 мая 2011

Модели не являются услугами. Модели - это POCO, которые содержат данные.

Вы можете предоставить свой сервис через службу WCF, и пусть ваше приложение ASP.NET MVC использует его. Если вы всегда уверены, что служба будет работать в том же окне, что и клиентское приложение, вы можете использовать именованные каналы для транспорта - тогда издержки WCF минимальны по сравнению с преимуществами.

4 голосов
/ 17 мая 2011

WCF, кажется, путь сюда. Хотя WCF начинался (по моему мнению) как зверь, он с годами укрощался с улучшенной поддержкой HTTP и JSON и меньшим количеством настраиваемой конфигурации (хотя все еще позволяющей вам модерировать в основном каждый маленький аспект вашей службы).

Представление текущего уровня обслуживания в качестве службы REST очень просто и позволяет вашим клиентам легко использовать его на любом устройстве, поддерживающем HTTP.

См .: http://codebetter.com/glennblock/2010/11/01/wcf-web-apis-http-your-way/

1 голос
/ 17 мая 2011

WCF, по-видимому, является тем направлением, к которому Microsoft стремится, и на то есть веские причины. Услуги WCF - лучший вариант, потому что вы упомянули стороннюю поддержку разработки. Поскольку эти веб-службы определены WSDL, они являются кроссплатформенными и могут использоваться приложениями, отличными от .NET.

Отлично отделяет ваш сервисный уровень от ЛЮБЫХ компонентов.

...