Службы данных WCF: зачем нужен URI в каждом текстовом тексте и где он подходит для типичной многоуровневой архитектуры? - PullRequest
0 голосов
/ 21 февраля 2012

Я рассматриваю возможность внедрения услуг WCF Data в одном из моих проектов.После обширных исследований у меня есть некоторые вопросы, на которые еще предстоит ответить.Если кто-то может мне помочь?

  1. Когда мы передаем конкретные операции с данными (хотя и через HTTP с использованием URI), почему служба данных WCF находится рядом со слоем пользовательского интерфейса в большинстведокументация?Разве это не должен быть более высокий уровень абстракции, чем взаимодействие между пользовательским интерфейсом и EDM?

  2. Почему передача URI необходима для установления контекста?Не был ли URI передан в ADD SERVICE REFERENCE (или DATASVCUTIL) для генерации прокси-классов клиента?Почему такая избыточность всякий раз, когда необходимо установить контекст?

  3. Что если URL моей службы изменится?Как определить URL этой службы динамически?Например, предположим, у меня есть СЕРВИС ДАННЫХ WCF на http://localhost:8443/project1/WCFSERVICE1. Как я могу получить этот URL динамически во время выполнения (из-за изменения порта под VS) ????

  4. Я видел несколько примеров использования DataServiceRequest и DataServiceResponse;иногда это не так, и запрос выполняется напрямую через CREATEQUERY или EXECUTE.В чем разница в одной строке ??

  5. Как получить доступ к удаленному сервису через прокси корпоративной сети?Я знаю, что мы можем передать defaultcredentials в веб-запрос, но как это сделать с помощью прокси-классов клиента службы данных wcf?

PS На данный момент я настроил статический порт в Visual Studio.Однако как получить этот порт динамически?Ценю вашу помощь.

1 Ответ

0 голосов
/ 03 декабря 2012

Только что видел это, я уверен, что к настоящему времени у вас есть ответы на большинство из этих вопросов, но здесь идет.

Ваш вопрос 3 является ответом на ваш заглавный вопрос. Передача URI в конструкторе означает, что вы получаете большую гибкость во время выполнения для размещения службы данных. Так что в моем случае в качестве параметров приложения я получил порт и имя сервера, которые можно изменять во время выполнения без необходимости изменять приложение. Надеюсь, это поможет.

...