Для приложения Silverlight, как лучше всего загрузить данные из службы при запуске? - PullRequest
2 голосов
/ 01 июля 2011

Я довольно новичок в Silverlight.У меня есть приложение, над которым я работаю, и ему нужны данные с сервера, прежде чем пользователь сможет начать работу с приложением.Эти данные доступны через службу WCF на веб-сервере.

Мой вопрос таков: как лучше всего получить эти данные при запуске приложения Silverlight?

Я подумал, чтосоздайте статический класс со статическим членом, который будет содержать результаты, и сделать вызов службы WCF в обработчике событий Application_Startup.Меня беспокоит то, что если этот вызов выполняется асинхронно, как я могу быть уверен, что данные будут получены из службы до того, как пользователь будет взаимодействовать с приложением?

Спасибо

Ответы [ 2 ]

2 голосов
/ 01 июля 2011

Самый простой способ - позволить приложению нормально запускаться и использовать элемент управления BusyIndicator, чтобы не дать пользователю взаимодействовать с приложением.

Вы можете вызвать службу во время запуска и заменить / отключить элемент управления BusyIndicator после возврата вызова wcf.. Следующая ссылка содержит несколько полезных советов по запуску приложения Silverlight: http://blogs.msdn.com/b/slperf/archive/2010/08/13/silverlight-startup-best-practices.aspx
1 голос
/ 01 июля 2011

Вы должны помнить, что метод Application_Startup фактически загружается, когда появляется процентная строка Silverlight, и только после того, как вы доберетесь до:

this.RootVisual = new MainPage();

, вы можете установить индикатор занятости или фактическивизуально покажите свою заявку.Так что я бы сделал при обратном вызове Async, я бы вывел:

this.RootVisual = new MainPage();

после того, как вы вернули свои данные.

В другом комментарии говорится об использовании BusyIndicator, ноВы не можете сделать это в файле App.Xaml или App.Xaml.cs, так как на данный момент еще нет главной страницы.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...