Китай |
Работа вне браузера и с web-сервисами
Работа Silverlight с web сервисами
Существует 2 подхода к созданию веб-сервисов. В случае подхода SOAP (Simple Object Access Protocol) сервер выставляет клиенту контракт, в котором указаны параметры, методы, которые клиент может вызвать из приложения. Вся работа осуществляется веб-сервисом, а клиенту передается результат работы сервиса. SOAP предоставляет способ коммуникации между приложениями, работающими под управлением различных операционных систем, на основе различных технологий и языков программирования. SOAP - ключевой элемент архитектуры .NET компании Microsoft, предназначенной для разработки интернет приложений. Примерами SOAP являются WCF, ASMX веб-сервисы. Веб-сервис имеет адрес URL, по которому клиент к нему подключается, используя протокол HTTP.
Подход REST (Representational State Transfer) сфокусирован на данных. Здесь клиент запрашивает исключительно данные, а сервер является их хранителем. В REST-сервисах акцент сделан на доступ к ресурсам, а не на исполнение удаленных сервисов; в этом их кардинальное отличие от SOAP-сервисов. Если SOAP-клиенты запрашивают выполнение действия на сервере, то REST-клиенты попросту требуют сам ресурс. Например, вместо того чтобы запрашивать удаленное исполнение функции для нахождения нужного вам формуляра заказа, вы просто запрашиваете этот формуляр, примерно так же, как статичную Web-страницу. Примеры: WCF REST, ADO.NET Data Services. Например, в Интернете имеется доступный веб-сервис интернет магазина. По URL делается запрос к нему. В запросе требуется вывести список ноутбуков, имеющихся в продаже. http://shopping.yahooapis.com/ShoppingService/v3/productSearch?appid=YahooDemo&query=notebook&show_numratings=1 - запрос. Ответом будет XML файл следующего содержания:
<?xml version="1.0" encoding="utf-8"?> <ProductSearch xmlns="urn:yahoo:prods" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:yahoo:prods http://shopping.yahooapis.com/shoppingservice/v3/productsearch.xsd"> … <Refinement name="Brand" totalAvailable="26" totalValues="10"> <RefineValue> <Title>Dell</Title> <Value>4168-Brand=Dell</Value> <Category>Laptops</Category> <NumberOfProducts>1778</NumberOfProducts> </RefineValue> …
В ответе содержится число ноутбуков, и список, с указанием производителя, марки, количества штук в наличие. Далее
Подключение приложения Silverlight к веб-сервису SOAP
Для того чтобы создать приложение Silverlight, работающее с веб-сервисом SOAP, необходимо реализовать сам веб-сервис, выполняющий какие-то функции. Затем, проектируя приложение Silverlight, в Visual Studio добавляем ссылку на веб-сервис "Add Service Reference". Это делается в проекте веб сайта (хоста), на котором будет отображаться работающее приложение Silverlight. Visual Studio автоматически подключится к веб-сервису и сгенерирует прокси-класс, методы которого становятся доступными при программировании. Эти методы можно вызывать из приложения асинхронно.
Ниже представлен код C# для веб-сервиса:
public class Service1 { [OperationContract] public string CourseName() { return "Методика создания интерактивных приложений с использованием технологии Silverlight"; } }
Ниже представлен код для асинхронного вызова веб-сервиса и его метода, который возвращает название данного курса.
ServiceReference1.Service1Client client = new SilverlightApplication1.ServiceReference1.Service1Client(); client.CourseNameCompleted += new EventHandler<ServiceReference1.CourseNameCompletedEventArgs> (client_CourseNameCompleted); client.CourseNameAsync(); void client_CourseNameCompleted(object sender, ServiceReference1.CourseNameCompletedEventArgs e) { string str = "Название курса: " + e.Result; }