|
Программирование >> Программирование с использованием ajax
I fJle. /C:/BegVCSriarp:h pler35/Ch35Ex03/... Puc. 35.7. Консольное приложение и окно Solar Evolution Итак, WCF-служба AppControlService предоставляет единственную операцию - SetRadius О, которую клиенты могут вызывать для управления анимационными эффектами. Она взаимодействует с имеющим идентичное имя методом, который определен в классе Windows 1 WPF-приложения. Чтобы это было возможно, у службы должна обязательно быть ссылка на это приложение, а это требует обеспечения хоста для экземпляра объекта этой службы. Как уже рассказывалось ранее, у службы должен быть атрибут поведения: [ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)] public class AppControlService : lAppControlService В Windowl. xaml. cs создается экземпляр службы в обработчике событий Windows Loaded (), который и запускает хост путем создания для службы объекта ServiceHost и вызова его метода Open (): public partial class Windowl : Window { private AppControlService service; private ServiceHost host; private void Window Loaded (ob:)ect sender, RoutedEventArgs e) service = new AppControlService(this); host = new ServiceHost(service); host.Open(); Работа этого хоста завершается в обработчике событий WindowClosing () после закрытия приложения. Конфигурационный файл выглядит настолько просто, насколько это возможно. В нем для WCF-службы определяется единственная конечная точка, прослушивающая порт 8081 по адресу net. tcp и использующая стандартную привязку NetTcpBinding: <service name= Ch35Ex03.AppControlService > <endpoint address= net.tcp: localhost:8081/AppControlService binding= netTcpBinding contract= Ch35Ex03.lAppControlService /> </service> Этот код соответствует коду в клиентском прможении, как было и в предыдущем примере (хотя здесь используется ТСР-привязка): lAppControlService client = ChannelFactory<IAppControlService>.CreateChannel( new NetTcpBinding0 , new EndpointAddress( net.tcp: localhost:8081/AppControlService )) ; После создания клиентского прокси-класса клиент может вызывать метод SetRadius () с параметрами радргуса, цвета и длительности анимационных эффектов; все они будут пересылаться через службу WPF-приложению. Простой код в \УРР-прможении далее будет определять и использовать их для изменения размера и цвета эллипса. При желании можно было бы сделать так, чтобы этот код работал и по локальной сети, указав не адрес localhost, а имя какого-то компьютера и разрешения передачи трафика в этой сети через заданный порт. В качестве альтернативного варианта можно было бы еще больше разделить клиентское прможение и прможение-хост и подключаться через Internet. В любом случае WCF-службы представляют собой замечательные средства связи, настройка которых действительно не требует приложения особых усилий. Резюме В настоящей главе были рассмотрены основные приемы по применению WCF-служб для обеспечения связи между приложения, процессами и компьютерами. Сначала здесь было рассказано о том, что собой вообще представляют WCF-службы и чем они отличается от Web-служб и механизмов удаленного взаимодействия, а также об основных концепциях, с которыми нужно быть знакомым для того, чтобы ими пользоваться. Далее было показано, как программировать WCF-службы, как их использовать в клиентских прможениях и как их обеспечивать различными хостами. В этой главе рассмотрены следующие вопросы. □ Что собой представляют WCF-службы. □ Как WCF-службы конфигурировать с помощью адресов, конечных точек, привязок, контрактов и механизмов поведения. □ Какие варианты существуют для хостинга WCF-служб. □ Какие классы, атрибуты, интерфейсы и конфигурационные параметры требуются для создания WCF-служб. □ Как создавать прокси-классы для клиентских приложений через метаданные WCF. □ Как определять и использовать контракты данных, служб и операций. □ Как генерировать клиентские прокси-классы из WCF-контрактов. □ Как обеспечивать WCF-службы собственным хостом. Этот материал является лишь базовым минимумом, который необходимо знать для того, чтобы использовать WCF-службы в своих приложениях. Он далеко не охватывает весь круг доступных на самом деле возможностей, особенно в том, что касается конфигурации WCF-служб в файле . conf ig и механизмов поведения. Каркас WCF позволяет обеспечивать интеграцию с более совершенными инфраструктурами безопасности и настраивать связь практически любым вообразимым образом. Упражнения Какие из перечисленных ниже приложений могут играть роль хоста для служб WCF? Web-приложения Приложения Windows Forms Службы Windows Приложения СОМ+ Консольные приложения Контракт какого типа вы бы реализовали при желании обмениваться с WCF-службой параметрами MyClass? Какие атрибуты потребовались бы для этого? В случае применения для хостинга WCF-службы Web-приложения как будет выглядеть расширение базовой конечной точки этой службы? В случае WCF-служб с собственным хостом конфигурировать службу нужно путем установки свойств и вызова методов класса ServiceHost. Верно это или нет? Напишите код для контракта службы IMusicPlayer и определите в нем операции Play О, Stop О и GetTrackInf ormation О . Где необходимо, используйте односторонние методы. Какие другие контракты можно определить для работы такой службы?
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |