WCF: QA Вопросы и ответы для подготовки к интервью

Это третья часть в серии статей Вопросы и ответы для подготовки к интервью. Остальные статьи пока на английском. Я старался все переведенные термины дублировать английским оригиналом. Дайте, пожалуйста, знать, если перевод получился плохим.

Часть 1: «BizTalk 2004, Questions for interview without answers» http://geekswithblogs.net/LeonidGaneline/archive/2006/05/22/79267.aspx  
Часть 2: «BizTalk interview questions and principle» http://geekswithblogs.net/LeonidGaneline/archive/2007/07/03/113663.aspx  
Часть 3: «WCF: Questions for studying and interview» http://geekswithblogs.net/LeonidGaneline/archive/2008/01/07/wcf-questions-for-studing-and-interview.aspx  


 

Отладка:

  • Какие утилиты используются для отладки WCF сервисов?
  • Возможно ли регистрировать (log) сообщения на стороне сервиса? На стороне клиента? Как включить регистрацию?
  • Какая разница между сервисными (service) и транспортными (transport) сообщениями?
  • Какая разница в функционале между SoapUi утилитой и VS2008 функциональностью, использующейся в тестировании Веб-сервисов (WS)?
  • Опишите, как используется утилита LoadGen для тестирования WS? Для какого типа тестирования?


Конфигурационные файлы (config):

  • Перечислите самый верхний уровень элементов в <system.serviceModel> секции.
  • Что такое атрибут name в <service> елементе?
  • Что такое атрибут contract в <endpoint> елементе?
  • Какая разница между атрибутами binging и bindingConfiguration в <endpoint> елементе?
  • Какая разница между атрибутами binging и bindingName в <endpoint> елементе?
  • Уникальны ли адреса, bindings и контракты между разными сервисами?
  • Как зависят друг от друга app.config и machine.config файлы?
  • Перечислите самый верхний уровень элементов в элементах the <bindings> и <binding>.
  • Как редактировать конфигурационные файлы WCF?

Сервистные контракты (Service contracts):

  • Перечислите три шаблона обмена сообщениями (MEX, message exchange patterns) в модели WCF.
  • Если операция сервиса (service operation) ничего не возвращает (=возвращает void), то какой используется шаблон обмена сообщениями? В этом случае ожидает ли клиент завершения операции?
  • Какая разница между шаблоном «запрос-ответ» (request-response) и дуплексным (duplex) шаблоном?
  • Кто задает адрес клиента при дуплексной связи, клиент или сервис? [Сервис использует этот адрес, чтобы ответить клиенту.]

Контракты ошибки (Fault contracts):

  • В каком порядке надо отлавливать следующие исключения: TimoutException, FaultException, FaultException<MyException>,
    CommunicationException?
  • Вы разрабатываете WS. Как вы будете возвращать ошибки клиенту? Создадите ли специальные елементы/атрибуты (error(s)/success nodes) в возвращаемом сообщении (response) или же будете использовать Контракт ошибки? Какая разница в этих подходах?

Версии WCF:

  • В какой версии .NET появился WCF?
  • Чем отличаются WCF в разных версиях .NET?
  • Перечислите основной функционал последней версии WCF.

Сессии, Инициализация и Параллельность (Sessions, Instancing, and Concurrency):

  • Для чего нужны сессии,
  • Где сессии сохраняют свою информацию? Какое основное хранилище для сессий?
  • Что такое корреляция (correlation)? Какие параметры обязательны для корреляции?
  • Кто инициирует сессию, сервис или клиент?
  • В каком порядке доставленные сообщения обрабатываются во время сессии?
  • Как можно создать singleton сервис?
  • Увеличивает ли параметр SessionMode.NotAllowed производительность?
  • Что такое Terminating и Initiating в OperationContract? Можно ли использовать одновременно оба?
  • Как клиент страртует сессию?

Транспорты (Transports):

  • Как обеспечить последовательную обработку (streaming)?
  • Какие типы параметров операций могут обрабатываться последовательно?
  • Надо ли изменять параметр maxReceivedMessageSize , чтобы обеспечить последовательную обработку?
  • Какие ограничения имеют WCF транспорты?
  • Что такое Teredo? Как мы можем использовать его?
  • Что такое Net.TCP Port Sharing? ? Как мы можем использовать его?

Очереди и Надежные сессии (Queues and Reliable Sessions):

  • Какие типы надежного обмена сообщениями (reliable messaging) реализованы в WCF?
  • Что такое надежная (Reliable) сессия?
  • Какие WS стандарты отвечают за надежый обмен сообщениями?
  • Должны ли быть надежные сессии асинхронными (asynchronous)?
  • Привязана ли надежная сессия к сессионному транспорту?
  • Может ли надежная сессия быть односторонней сессией (one-way), сессией запрос-ответ (request-reply) или дуплексной (duplex)? Или может быть любой из перечисленных?
  • Поддерживают ли стандартные (system-provided) bindings надежную сессию? Какие binding опции разрешены по умолчанию?
  • Надежные сессии в Windows Communication Foundation (WCF) используют окно передачи (transfer window). Что это такое? Что оно означает для отправителя сообщения и что для получателя сообщения? Как оно зависит от задержки в передаче (latency)?
  • Что такое Transmission queue и Target queue? Какая между ними разница? 
  • Что такое Dead-letter queue и Poison queue? Какая между ними разница? 
  • Могут ли двусторонние операции (two-way service operations) использоваться вместе с queued binding?
  • Может ли параметр ExactlyOnce netMsmqBinding быть истиной (true), если очередь (queue) не транзакционная (transactional)? 
  • Когда используются MsmqIntegrationBinding и NetMsmqBinding?
  • Есть ли ошибка в Msmq адресе «net.msmq://MyHost/private$/MyQueue»?
  • Можем ли мы использовать общие очереди (public queues) без Windows domain? Если нет, то почему?
  • Использует ли MsmqIntegrationBinding схему msmq.formatname или схему net.msmq?

Хостинг (Hosting):

  • Какая новая возможность хостинга появилась, начиная с Vista OS?
  • Должны ли мы использовать относительные (relative) адреса или абсолютные (absolute), когда хостинг в IIS? Почему?
  • Может ли WCF-сервис, «хостингующийся» в IIS, использовать HTTPS, если виртуальный каталог IIS, содержащий сервис, не поддерживает transport security?

 

Оставьте комментарий

Filed under WCF

Добавить комментарий

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

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s