PDA

Просмотр полной версии : Эти загадочные .NET for web разработчики.


wvxvw
20.10.2009, 21:15
Есть в нашей конторе синьор веб-девелопер с более чем десятилетним стажем. кроме него есть еще 4 с примерно таким же опытом работы.
Так вот, не далее чем вчера приходит ко мне второй флешер (он у нас типа стажера) и спрашивает, а как ему из флеша общаться с вебсервисом. Ну, я чесно показал пару примеров, объяснил, как выяснить, какие методы описаны в WSDL, как и чего флеш может послать вебсервису, а чего не может...

Сегодня на совещании синьор докладывает начальству:
"У нас не получилось использовать вебсервис и поэтому мы выкрутились используя HTTP сообщение!" И ни у кого эта фраза даже на секунду смущения не вызывает.
(На самом деле нужно было передать флешу ссылку на картинку).
После совещания, нахожу нашего флешера и спрашиваю, а как же так не получилось?
Оказалось, все банальнее некуда - синьор не смог найти WSDL файл.

alekslitvinenk
20.10.2009, 22:14
А я думал таких еще после первой волны кризиса поувольняли...

etc
21.10.2009, 00:53
А оно чем-то отличается от HTTP, кроме своей тупой заумности и псевдонаучности?

wvxvw
21.10.2009, 01:05
Фишка в том, что вебсервисы не-HTTP не бывают. Но это еще не все :) Дело в том, что в ВС для веб есть такая штука - забиндить компонент к веб-сервису (ее еще попытались скопировать в 4-м флекс билдере). Это все делается через UI самой прогаммы, т.е. код писать не нужно :) Генерит оно естественно такую же гадость, как и флекс билдер, ну только с поправкой на то, что клиентская часть этой гадости потом превращается в абсолютно нечитаемый яваскрипт.
Ну, тоесть, случайным образом получилось так, что был выбран из двух плохих вариантов не самый худший, забавно то, по какой причине :)

duhowka
21.10.2009, 03:15
забавно. не понятно почему он не нашел или он просто вас не понял?

dark256
21.10.2009, 21:57
дынц.... а поподробнее - о чем речь-то? :)))
по ВДСЛ в инете как-то уж очень много всего сразу выпало....глаза разбежались...

wvxvw
22.10.2009, 00:37
WSDL - это такой файл, который описывает какие сервисы доступны на сервере, который этот файл хостит. Сервис, это функция в серверном скрипте, которая как правило чего-то делает и чего-то в ответ возвращает. Как правило, она возвращает ответ в виде XML сформированого используя шаблон SOAP (но это не обязательно именно так, есть и другие варианты - REST / RESTfull - это когда вы вместо передачи имени функции в теле запроса используете имена виртуальных директорий).
Все это звучит очень заумно, но, на практике происходит примерно следующее:
Вы отправляете запрос на www.example.com?method=GetStockPrice&arguments=IBM
либо отправляете тот же запрос оформленный в XML:
www.example.com
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>

</soap:Envelope>

(SOAP)

либо www.example.com/GetStockPrice/IBM (RESTfull).
И, если используется SOAP, то получаете в ответ XML примерно следующего содержания:
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>
</m:GetStockPriceResponse>
</soap:Body>

</soap:Envelope>

Как вы видите, куча избыточной информации, в данном примере, только в ответе, ее будет как раз 10425% по отношению к, например, передаче того же количества информации через TCP (сокет).
Конечно, при передаче большего количества информации КПД растет, но, в любом случае жервы огромные.
Зато есть одно преимущество - думать не надо :) Парсеры, сериализаторы / десериализаторы уже дaвно написаны, отлажены и более-менее работают. Процесс автоматизирован - нужно только нажать на кнопку - а все остальное програма сделает за вас.

Кроме этого написано много заумных статей и рекламных буклетов популярно объясняющих достоинства этой технологии.

Фишка в том, что это ж на сколько нужно быть ленивым, чтобы не просто не знать, как все это происходит, а даже за многие годы работы с VS Web Edition просто не удосужится взглянуть на то, что же она там генерит.

etc
22.10.2009, 00:46
Да уж, AMF по сравнению с этим прямо-таки панацея.