Windows Communication Foundation (WCF) – это унифицированная модель программирования распределенных приложений на платформе Microsoft. Она инкорпорирует предшествующие технологии – ASMX, .NET Remoting, DCOM и MSMQ – и предоставляет расширяемый API, отвечающий разнообразным требованиям, которые возникают при создании распределенных систем. До WCF вам приходилось овладевать всеми этими технологиями, чтобы выбрать ту, которая лучше всего подходит в конкретной ситуации. WCF упрощает задачу, предлагая единообразный подход.
В современных распределенных приложениях чаще всего применяются Web-службы на основе XML. С их помощью реализуются разнообразные технические и бизнес функции, как в закрытых, так и в открытых сетях. Иногда при этом используется спецификация SOAP, иногда – нет. Обычно информация передается в виде текстовых документов, размеченных с помощью тегов в угловых скобках, но это необязательно. Как правило, в качестве транспортного протокола выбирается HTTP, но опять же не всегда. WCF – это каркас для работы с Web службами на основе XML, который совместим со многими другими технологиями.
Будучи всеобъемлющей системой работы со службами, WCF вводит терминологию, с которой вы должны быть знакомы. Термины не обязательно обозначают какие-то новые концепции, однако описывают согласованную систему понятий, которая необходима для обсуждения новой технологии.
В основе своей служба – это множество оконечных точек (endpoints), которые предоставляет клиентам некие полезные возможности. Оконечная точка – это просто сетевой ресурс, которому можно посылать сообщения. Чтобы воспользоваться предоставляемыми возможностями, клиент посылает сообщения оконечным точкам в формате, который описывается контрактом между клиентом и службой. Службы ожидают поступления сообщений на адрес оконечной точки, предполагая, что сообщения будут записаны в оговоренном формате. На рис. 23.1схематически представлено отношение между клиентом и службой.
(рис 23.1) Обмен данными между клиентом и службойКак показано на рис. 23.2, WCF служба может состоять из нескольких оконечных точек, каждая из которых описывается собственным адресом, привязкой и контрактом. Поскольку поток сообщений обычно двунаправленный, клиенты неявно также оказываются контейнерами оконечных точек.
(рис 23.2) Коммуникация между оконечными точками клиента и службыОконечная точка службы не может отвечать на сообщения, если служба не размещена в каком-нибудь работающем процессе операционной системы. Владельцем службы может быть любой процесс, например, работающее без присмотра человека серверное приложение, Web сервер и даже клиентская программа, представленная полноценным окном на экране ПК или значком в системном лотке Windows. Для служб можно определить поведения, управляющие степенью параллелизма, ограничением пропускной способности, транзакционной целостностью, безопасностью и другими семантическими аспектами. Поведения можно реализовать с помощью атрибутов .NET, путем манипулирования исполняющей средой WCF или в конфигурационных файлах. В сочетании с гибкой моделью размещения поведения заметно упрощают написание многопоточного кода.
Как показано на рис. 23.3, главная программа может создать экземпляр класса ServiceHost, который будет отвечать за создание оконечных точек службы.
(рис 23.3) Размещение службыSilverlight включает клиентскую библиотеку сред. Службы данных WCF, которая позволяет получить доступ к данным из любой службы, предоставляющей доступ к веб-каналу
Службы данных WCF, компонент .NET Framework, позволяет легко реализовывать службу данных для предоставления веб-канала OData в приложении .NET Framework. сред. Службы данных WCF поддерживает полный набор функциональных возможностей OData для обнаружения, создания запросов и обновления данных в службе данных.
Всего имеется 4 шаблона, через которые можно реализовать веб-сервисы:
В Silverlight - приложение добавляется файл Silverlight-enabled WCF Service ( Рис 23.4). Файл будет иметь расширение svc.
(рис 23.4) Добавление WCF сервиса к Silverlight проектуВ файле сгенерируется код. Атрибут [OperationContract] своего рода разделитель для методов в сервисе, при добавлении очередного метода, необходимо добавлять данный атрибут:
namespace SimpleSilverlightWCFService.Web
{
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode =
AspNetCompatibilityRequirementsMode.Allowed)]
public class HelloWorld
{
[OperationContract]
public string TestMethod()
{
return "Hello World";
}
}
}
Поскольку режим совместимости ASP.NET подразумевает семантику обработки запросов, существенно отличающуюся от WCF по умолчанию, в реализации отдельных служб имеется возможность управления тем, выполняются ли они внутри приложения, для которого включен режим совместимости ASP.NET. Службы могут использовать атрибут AspNetCompatibilityRequirements для указания, поддерживают ли они режим совместимости ASP.NET.
| Параметр режима совместимости на уровне приложения | [AspNetCompatibilityRequirementsMode] Параметр | Полученный результат |
|---|---|---|
aspNetCompatibilityEnabled = "true" |
Required |
Служба включается успешно. |
aspNetCompatibilityEnabled = "true" |
Allowed |
Служба включается успешно. |
aspNetCompatibilityEnabled = "true" |
NotAllowed |
При получении службой сообщения возникает ошибка активации. |
aspNetCompatibilityEnabled = "false" |
Required |
При получении службой сообщения возникает ошибка активации. |
aspNetCompatibilityEnabled = "false" |
Allowed |
Служба включается успешно. |
aspNetCompatibilityEnabled = "false" |
NotAllowed |
Служба включается успешно. |
В проекте Silverlight добавляем ссылку на сервис. В открывшемся окне (Рис 23.5) необходимо выбрать нужные сервисы. VS автоматически создаст ServiceReferences.ClientConfig, в котором находятся настройки привязки сервиса.
(рис 23.5) Добавление ссылки на созданный сервисФайл Web.config, так же претерпит изменение:
<services>
<service name="SimpleSilverlightWCFService.Web.HelloWorld">
<endpoint address="" binding="customBinding"
bindingConfiguration="SimpleSilverlightWCFService.Web.HelloWorld.customBinding0"
contract="SimpleSilverlightWCFService.Web.HelloWorld" />
<endpoint address="mex" binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
Большинство методов в службах Windows Communication Foundation (WCF) может быть вызвано как синхронно, так и асинхронно. Асинхронный вызов метода позволяет приложению работать во время выполнения этого вызова через медленное соединение. Пример асинхронного вызова реализован во фрагменте кода:
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
ServiceReference.HelloWorldClient client = new ServiceReference.HelloWorldClient();
client.TestMethodCompleted += new EventHandler<ServiceReference.
TestMethodCompletedEventArgs>(client_TestMethodCompleted);
client.TestMethodAsync();
}
void client_TestMethodCompleted(object sender,
ServiceReference.TestMethodCompletedEventArgs e)
{
MessageBox.Show(e.Result);
}
}
}
При запуске приложения откроется окно браузера, где выполнится метод, который реализован в WCF сервисе ( Рис 23.6).
(рис 23.6) Результат работы сервисаДля получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.