Что нового для WCF в Visual Studio 2008 - Библиотеки служб в WCF

ОГЛАВЛЕНИЕ

Библиотеки служб в WCF

В качестве одно из функций целевой платформы Visual Studio 2008 предлагает несколько новых шаблонов проектов WCF. В диалоговом окне New Project (Новый проект) есть поле со списком, в котором можно указать, для какой версии платформы проект создается (2.0, 3.0 или 3.5) — см. рис. 6.

 

Рис. 6 Шаблоны проектов WCF

Если выбрать Framework 2.0, новые шаблоны доступны не будут. Для Framework 3.0 появился новый шаблон под названием WCF Service Library (библиотека служб WCF). Этот проект представляет собой всего навсего готовый вариант использования узла WcfSvcHost и клиента WcfTestClient. По сути своей он весьма близок к тем методам, которые были описаны выше (при сочетании обоих компонентов). Если вы используете проект WCF Service Library, то ни указывать WcfSvcHost.exe в качестве выполняемого приложения, ни задавать файл CONFIG не нужно, поскольку в файле проекта есть элемент ProjectTypeGuids, предназначенный для библиотеки служб WCF.

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

В библиотеке служб WCF также имеется простейший шаблон, содержащий контракт службы, ее реализацию и соответствующий файл CONFIG.

Библиотека Syndication Service Library позволяет создать поток RSS через конечную точку WCF, и для начала работы вам предлагается элементарный контракт службы, возвращающей поток, ее реализация и соответствующий файл CONFIG. Поток можно размещать и использовать, как любую другую службу. Конечные точки распределения используют новую привязку WebHttpBinding. Она предназначена для получения веб-запросов — для обычного вызова служб она не используется.

Шаблон Sequential Workflow Service Library позволяет реализовать операции контракта конечной точки в виде рабочих процессов, или, фактически, представить рабочий процесс как службу. Проект будет содержать единственное последовательное действие, реализующее контракт и соответствующий файл CONFIG. На первый взгляд кажется, что клиент по-прежнему взаимодействует с традиционной конечной точкой, однако на самом деле реализация управляется исключительно рабочими процессами.

В шаблоне библиотеки State Machine Workflow Service Library для выполнения операций (иициации смены состояний) вместо последовательных рабочих процессов используется конечный автомат. В шаблонах проектов рабочих процессов используется узел WcfSvcHost и клиент WcfTestClient, точно так же как и в обыкновенной библиотеке служб WCF. В них также используются новые контекстные привязки — для управления передачей идентификаторов рабочих процессов и Шаблоны рабочих процессов и повышения их надежности. В следующем выпуске журнала мы рассмотрим эти привязки подробнее.