Skip to content
January 30, 2012 / ahriman hpc mode

[Перевод] Что нового в WCF 4.5? Подсказки конфигурации и intellisense в файлах конфигурации

Оглавление:

1. Что нового в WCF 4.5? Начнём с конфигурации WCF
2. Что нового в WCF 4.5? Один WSDL-файл.
3. Что нового в WCF 4.5? Подсказки конфигурации и intellisense в файлах конфигурации
4. Что нового в WCF 4.5? Проверки конфигурации
5. Что нового в WCF 4.5? Поддержка множественной аутентификации на одну точку входа в IIS
6. Что нового в WCF 4.5? Точка входа HTTPS для IIS
7. Что нового в WCF 4.5? BasicHttpsBinding
8. Что нового в WCF 4.5? Изменения в режиме совместимости ASP.NET
9. Что нового в WCF 4.5? Улучшенный стриминг в IIS

Это третий пост в серии о WCF 4.5, и мы всё ещё обсуждаем тему конфигурации, но на этот раз мы обратим внимание на intellisense и подсказки в файлах конфигурации.

Одной из по-настоящему напрягающих вещей в WCF является конфигурирование сервиса используя файлы конфигурации – вы должны запоминать множество вещей и набирать их без intellisense:

  • Имена контрактов и сервиса (мой пост об этом)
  • Имена секций конфигурации поведения и привязок
  • Имена привязок (netNamedPipeBinding? или netNamedPipesBinding?)
  • Стандартные имена конечных точек входа

Некоторые для решения этой проблемы выбирают WCF Service Configuration Editor, некоторые просто копипастят имена и настройки из одного места в другое (например, копируя имя поведения сервиса в определение сервиса).

С WCF 4.5 всё стало гораздо проще из-за наличия intellisense в файлах конфигурации. На самом деле это не фича WCF 4.5, а больше фича Visual Studio 11, но я не хочу менять название “Что нового в WCF 4.5”.

Давайте посмотрим поближе intellisense.

Имя сервиса:

clip_image001

Intellisense показывает сервисы из всех сборок, на которые есть ссылки, поэтому вы можете увидеть здесь сервисы, реализованные в текущем проекте,сервисы из других проектов и сервисы из сборок system.serviceModel.*  – например, Discovery и Routing (если на них есть ссылка).

Имя контракта:

clip_image002

Intellisense показывает контакты из различных источников.

clip_image003

Привязки:

clip_image004

Все известные привязки, всё понятно.

Поведение:

clip_image005

Intellisense предоставляет секции конфигурации стандартного и именованного поведения.

То же самое для конечных точек входа:

clip_image006

Конфигурация привязок:

clip_image007

Intellisense показывает объявленные мной конфигурации привязок, но, к сожалению, они не фильтруются согласно выбранной для точки входа привязке. Надеюсь, это починят в RTM.

Все эти опции Intellisense весьма хороши и помогут уменьшить сложность конфигурации сервиса без использования графического инструментария (WCF configuration editor), однако мне не хватает одной маленькой фичи intellisense/проверки, которая, как мне кажется, является необходимой – распознавание редактором расширений, так, чтобы он перестал отмечать их как предупреждение и по возможности добавлял их в соответствующий список Intellisense.

На примере использования расширений в Visual Studio 11:

clip_image008

Расширение serviceErrorHandler отмечается предупреждением и не появляется в списке поведений. Возможно, первым шагом в решении этой проблемы может быть разделение расширений поведения на поведение сервиса и поведение точки входа.

Теперь мы имеет также поддержку подсказок для большинства настроек, так что, если вы наведете на относящийся к WCF атрибут, вы увидите его краткое описание:

clip_image009

Оно не так полно, как описание в подсказке при использовании WCF service configuration editor, но это лучше чем ничего:

clip_image010

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: