Pull to refresh

Comments 17

Первый абзац — прямо в яблочко.
Насчёт литературы — спасибо. Именно то, что было нужно. Мои новогодние желания продолжают сбываться.:)
Жалко что все в основном сосредоточено на разработке игр и xna.

Лучше б про нормальные вещи написали, например про то, как данные веб-сервису отправлять и от него получать, а то когда надо было это реализовать задолбался информацию искать.

Или про то, как правильно с потоками работать (например когда отправил данные, получил ответ — просто так в ui ничего не изменишь — другой поток)

Или про data binding — например если я вывожу список данных, полученный от веб-сервиса, как мне автоматически форматировать числа в денежный формат, и можно ли как то менять формат отображаемой информации (item template) в зависимости от полученных данных.

Как сделать красивый переход между страницами, что он при это не тормозил — из сильверлайт тулкита как то тормозит.

Короче вместо этого xna и всяких игрушек лучше б расписали про реальные потребности обычных разработчиков простых приложений, выполняющих обычные поезные функции.
Ну, читайте про сам .NET и WPF/Silverlight. В тулките в основном то, что касается непосредственно телефонной составляющей.
ну приложение то я написал в итоге, так что информацию найти удалось. Но явно не хватает нормально последовательно изложенного материала применительно именно к вп7, а не .net/silverlight в целом. Да и различия там в любом случае имеются
Спасибо, смотрел. про http там только как скачать rss канал, а как например отправить данные даже методом post — ноль информации

Точнее написано
«Тот же самый запрос, реализованный через HttpWebRequest потребует значительных усилий, написания callback функции и определения множества дополнительных переменных.»

Собственно, в итоге с этими усилиями я разобрался, callback функции написал :-) в общем решил проблему.

Про binding там тоже совсем вкратце, хотя казалось бы это как раз те задачи, с которыми сталкивается любой разрботчик на вп7, желающий сделать приложение, работающее с каким-нибудь веб-сервисом, например нормальный клиент для своего сайта
Это же Training Kit. Для «нормально последовательно изложенного материала» на сайте мелкомягких можно скачать бесплатную и очень неплохую книгу «Programming Windows Phone 7» (в том числе и на русском языке).
Ее я тоже читал.

Там в середине книги есть глава про привязку данных, но в остальном там практически все про XNA и про разработку игр — всякие анимации, текстуры и т.д.

Даже привязка данных там на примере прямоугольника и слайдера, который этот прямоугольник вращает, насколько я помню.

Насчет HttpWebRequest там, насколько я помню, вообще нет информации (или я ее пропустил)

А я прошу Training Kit, но не про разработку игр, а конкретно, как сделать приложением, взаимодействующее с веб-сервисом — получение информации, отправка запросов, ввод данных пользователем, вывод списков ссылок (меню), получаемых от сервиса, и т. д.

Короче некий краткий курс, как создать приложение, работающее с веб-сервисами, чуть более сложное чем банальный rss-ридер, а, например, клиент для форума, или что-то вроде клиента evernote — на таких приложениях, как мне кажется, можно было бы осветить практически все вопросы, которые могут возникнуть у желающих разработать свое приложение, взаимодействующее с веб-сервисом.
А что тут сложного-то?

хотите напрямую работать с HttpWebRequest? Пожалуйста.

Создаёте себе Web Service, это достаточно просто.

1. Декларируете интерфейс с необходимыми вам методами
2. Отмечаете интерфейс ServiceContract
3. Пишите реализацию этого интерфейса

создаёте .svc файл

<%@ ServiceHost Language=«C#» Debug=«true» Service=«Company.ServiceImpl» %>

Всё, больше ни чего делать не нужно.
Но Visual Studio есть уже готовые темплейты для создания сервисов.

Если же вы хотите использовать REST, то тогда вам нужно отдельно поставить себе WCF Restful Kit (кажется так) и тогда ваш сервис сможет общаться не только через SOAP 1.0 или 1.2, но и отдавать XML или JSON

С первой частью вроде бы стало понятнее, я надеюсь.

С клиентской: Если вы будите использовать SOAP, то просто добавте в проект ссылку на сервис.
«Add Service Reference...» и Visual Stidio сгенерирует на основании WSDL (Web Service Definition Language), прокси класс который и будет вызывать методы вашего сервиса.

Но, если хотите использовать HttpWebRequest, то вам на стороне сервера лучше иметь RESTful, и методы вызывать по уникальной ссылке:

sample.com/service/GetCities?name=MSK

Тогда в ответ вам прийдёт или XML или JSON

Истользуя XmlSerializer или JsonDataContractSerializer вы сможете ответ от сервиса превратить в объект.

Спасибо за ваш ответ, но я уже неоднократно писал что лично я уже решил эту проблему, и моя программа успешно добавлена в marketplace и работает.

Хотя я никаких svc файлов не создавал, и вообще сделал не так, как вы написали, а просто:
using System.Net;

...

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(BeBossApi.FranchiseRequestUri));
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
// start the asynchronous operation
webRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), webRequest);



Соответственно, после завершения запроса вызывается GetRequestStreamCallback, из которого я вызываю GetResponseCallback, в которой я делаю

HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;

// End the operation
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);

чтобы завершить соединение, и теперь мне нужно скрыть прогрессбар и открыть окно с результатом запроса, для этого я делаю
((App)App.Current).RootFrame.Dispatcher.BeginInvoke(HideContactProgress);


Все, что я хочу сказать — это то, что разработчикам не хватает информации про работу с веб-сервисами. Чтобы ее найти приходится разбираться с кучей разных вещей,

Также я так и не получил нормального ответа на вот этот мой вопрос, и до сих пор использую ListBox. Хотя казалось бы задача очень распространенная, и используется много где (да даже в списке контактов — тапаю по контакту — открывается новая страница — как это реализовано?)

В общем, я просто призываю MS обратить внимание на то, что кроме разработчиков игр есть еще много других разработчиков, которым также нужна информация.

Понятно, что мы можем сами разобраться. Но если эти мануалы все равно пишутся — почему бы не написать и про обычные, не-игровые, приложения? Среди которых достаточно много разных приложений, работающих с веб-сервисами.
Товарищи минусующие, анонимное высказывание своего мнения это конечно здорово, но может вы аргументируете?

Вы довольны тем, что практически вся официальная информация от MS про разработку под wp7 крутится вокруг разработки игр и XNA, а для разработки приложений, взаимодействующих с веб-сервисами, приходится самому копать stackoverflow и справку msdn?

Или вы знаете где найти нормально изложенную информацию от первоисточника про работу с веб-сервисами?
Я думаю публика раздражается из-за того, что вы в целом слабо понимаете платформу .NET

Для работы с web services (SOAP/REST/etc) в .NET существует Windows Communication Framework, который является не частью .NET Framework'a.

Но, самого .NET Framework'a существует несколько подможеств, и WP7 — одно из них, для примера Silverlight — это тоже одно из подмножества .NETа

От «полной» версии, т.е. та что может работать на Desktop'е они отличаются наличием тех или иных функций.

Ет если кратно. Т.ч. если выхотите понять, как работыют сервисы в .NET начните изучение с Windows Communication Foundation
Да, я никогда не работал с .NET, с C#, и тем более с Windows Communication Framework

И я хочу написать приложение под wp7 (точнее уже написал, но это сути не меняет). Одна из функций моего приложения — отправка данных, введенных пользователем, на сервер.

Когда я это реализовывал, я как раз столкнулся с тем, о чем вы говорите — примеры кода, которые предлагались для десктопного сильверлайта, на вп7 не работали. В итоге на stackoverflow нашел рабочий пример кода.

И я уверен что для десктопного XNA также есть куча гайдов и т.д., и никто не говорит мол «перед тем как писать под wp7 на XNA — сначала изучите десктопный XNA, ведь мобильный от него отличается только наличием или отсутствием тех или иных функций.

Я жалуюсь на некую однобокость предлагаемой нам информации, и прошу как-то эту однобокость исправить.
Одним нужна работа с сетью, другим — параллельные вычисления и т.д. Это все нельзя впихнуть в «Знакомьтесь с разработкой WP7». И это естественно, что требуются и иные источники информации — с одним буклетом без какой-либо базы Вы что-то стоящее не напишите.
В итоге лично мне не ясна суть Вашего недовольства.
Одним нужно одно, другим другое, третьим третье а пишут все про одно и то же — про XNA и разработку игр.

Могли бы уже и новенького чего-нибудь написать. Я не недоволен, я высказываю пожелание к их авторам, о чем писать когда они будут делать следующий обучающий курс/буклет/статью/книгу.

Ведь они эти статьи на хабре публикуют не только для того, чтобы мы узнали про их новые статьи, но и чтобы получить фидбек, чего не хватает и о чем стоит писать? Вот и им и дал такой фидбек. Причем сами майкрософтовцы среагировали вполне корректно, предложили другой курс, я привел им информацию о том, чего в том курсе не хватает. Они, как я понимаю, приняли эту информацию к сведению, и возможно в следующем выпуске заполнят этот проблем.

А вы (и не только вы) зачем-то принялись их защищать, хотя я вовсе ни в чем их не обвинял, и в защите они не нуждаются — это обычная обратная связь с их пользователями/разработчиками/читателями их литературы.
проблемпробел конечно же
Only those users with full accounts are able to leave comments. Log in, please.

Articles