Best Practise для обработки Post запросов в windows phone (silverlight)
Я хочу спросить как вы обычно архитектурно реализуете обработку Post запросов в ваших мобильных приложениях(все почти тоже самое в обычных silverlite приложениях). Т.к. мы вынуждены делать все вызовы «очень» многопоточными, появляются вопросы о построении инфраструктуры для обмена данными.
А. UI приложения
Б. Создание HttpWebRequest
В. Метод для BeginGetRequestStream
Г. Метода для BeginGetResponse
Кейсов, которые хочу обсудить несколько:
1. Передача дополнительных параметров от Б к В и Г
2. Обновление А из Г
3. Вынос работы Б, В, Г в отдельную dll и организация обмена данными с А
Как есть у меня сейчас:
1. использую IAsyncResult.State для передачи структуры, в которую упаковываю все что мне нужно
2. использую this.Dispatcher.BeginInvoke(delegate{...});
3. планировал сделать ViewModel для страницы, которую и обновлять из Г. Вопрос, как сказать UI что пора перегрузится и забрать все данные из ViewModel.
Буду благодарен за ваши рецепты приготовления этой каши. А то мой вариант мне не кажется достоаточно красивым и удобным)
мы вынуждены делать все вызовы «очень» многопоточными
Хорошо заметили. Все было бы намного проще, если бы MS позволили самим решать где применять многопоточность… А раз пошли по такому пути — то и далее нужно усложнять, а именно использовать Reactive Extensions.
То есть если хотите, чтобы все было архитектурно правильно, как задумали MS, то изучите Rx. Но предупреждаю — на их изучение уйдет минимум неделя + готовьтесь к смене парадигмы мышления.