ASP.NET MVC с использованием слабосвязанной веб-службы WCF - PullRequest
4 голосов
/ 23 февраля 2012

Причина, по которой мне нужен слабосвязанный WCF, потому что Entity Framework тесно связан. Когда я говорю «слабосвязанный», нет необходимости создавать экземпляр контекста базы данных или добавлять ссылку на службу WCF. Он просто полагается на веб-конфигурацию или какой-либо INI-файл, который не требует компиляции, когда разработчикам необходимо изменить серверы, IP-адреса или URL-адреса служб.

Вместо этого MVC (скажем, контроллер) просто отправит сообщение с запросом, а затем получит данные ответа от службы WCF. Но все же мы не можем позволить себе не иметь Модели, основанные на базе данных (так как нам это нужно в intellisense для разметки представлений), где WCF будет получать данные. Допустим, у нас уже есть класс этих объектов базы данных, создайте хранилище, которое связывает данные WCF с моделями MVC.

Что я имею в виду под веб-службой WCF, она ТОЛЬКО содержит сообщения, больше не передается ссылка на объект, потому что это новое определение SOA. Логичнее передавать сообщения вместо объектов.

Это лучший подход? С точки зрения масштабируемости и производительности я не хочу обидеть поклонников Entity Framework.

1 Ответ

1 голос
/ 23 февраля 2012

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

Понимают, что WCF является общей и мощной структурой для реализации связи через различные транспортные протоколы.Он может быть одинаково эффективно использован для обмена сообщениями в формате XML и для программирования в терминах объектов.Сериализация и десериализация объектов - это необязательный дополнительный элемент инфраструктуры, а не требование.(На самом деле не существует такой вещи, как «передача ссылки на объект» - в конечном итоге это инфо-набор XML, который проходит через канал связи. Кроме того, Entity Framework не является частью WCF - это отдельная платформа ORM, которую можно использовать с WCFесли хотите, но это ваш выбор.)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...