2012-02-23 3 views
4

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

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

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

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

ответ

1

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

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

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

+0

Спасибо, Крис, это то, о чем я говорю, XML;) – GiantHornet

Смежные вопросы