Начнем с того, что запустим MSVS 2008:
Далее, появляется окно, тут тоже просто ОК:
Создается проект Silverlight. Silverlight просто как статичный сайт нам не интересен. Давайте сделаем динамику. Чтобы можно было отправлять какие-то данные, получать какие-то данные. Для этого нам понадобится WCF-сервис.
В меню выбираем Web-сервис WCF, как-нибудь его называем и жмем кнопку Add:
В файле IMyWCFService.cs объявляем интерфейс функции TellMeSomething:
public interface IMyWCFService
{ [OperationContract] string TellMeSomething(string name); }
Далее переходим в файл MyWCFService.svc.cs:
Пишем нашу функцию TellMeSomething:
Далее мы идем в файл Web.config, находим пункт
public class MyWCFService : IMyWCFService
{
#region IMyWCFService Members public string TellMeSomething(string name)
{
return string.Format("Hello, {0} ! How are you?", name);
} #endregion
}
<endpoint address="" binding="wsHttpBinding" contract="WebServicesForBlog.Web.IMyWCFService">
и меняем wsHttpBinding на basicHttpBinding.
Настройки конфигурационного файла на этом закончены.
Теперь возвращаемся к Silverlight-проекту и проектируем страницу:
<Grid x:Name="LayoutRoot">
<StackPanel x:Name="OurStackPanel" Orientation="Vertical"><TextBox x:Name="InputStr"></TextBox><Button x:Name="CallService" Content="Call WCF Service" Click="CallService_Click"></Button></StackPanel></Grid>
Далее нам нужно подключить WCF-службу, что мы создали:
После чего в появившемся окне нажимаем кнопку – Discover, и вводим поле Namespace референс, т.е. название экземпляра нашей WCF-службы: И нажимаем ОК. Все, теперь службу WCF мы подключили к проекту. Осталось ее использовать. Допишем в разметку еще и TextBlock для вывода текста:
<TextBlock x:Name="OutField"></TextBlock>А теперь перейдем к программированию кнопки:
private void CallService_Click(object sender, RoutedEventArgs e) {
MyWCFServiceReference.MyWCFServiceClient proxy = new WebServicesForBlog.MyWCFServiceReference.MyWCFServiceClient(); proxy.TellMeSomethingCompleted += new EventHandler<WebServicesForBlog.MyWCFServiceReference.TellMeSomethingCompletedEventArgs>(proxy_TellMeSomethingCompleted); proxy.TellMeSomethingAsync(InputStr.Text); }
И добавим EventHandler для события, когда служба WCF уже отработала:
void proxy_TellMeSomethingCompleted(object sender, WebServicesForBlog.MyWCFServiceReference.TellMeSomethingCompletedEventArgs e)Теперь запускаем проект! Вводим имя в Textbox и нажимаем кнопку "Call WCF Service"
{
OutField.Text = e.Result;
}
Служба обрабатывает значение из TextBox-а и возвращает значение в TextBlock. Таким образом службы WCF – это обширная платформа для разработки многофункциональных динамических Silverlight-приложений. WCF нужен там, где используется обмен и обработка данных сервером.
0 коммент.:
Отправить комментарий