| Россия |
Работа вне браузера и с 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;
}

