Главная » Язык программирования C#

Простой пример использования Windows Communication Foundation на языке C#

windows communication foundation пример программы

Пример Windows Communication Foundation программы на языке C#

В данной статье я бы хотел рассмотреть процесс создания простейшего Windows Communication Foundation приложения. Для тех кто не знаком, Windows Communication Foundation — это программный фреймворк, который позволяет приложениям обмениваться данными друг с другом. Благодаря этому, возможно написание клиент серверных приложений. Именно такое приложение мы попытаемся создать в данной статье. Напомню, что для этого мы будем использовать язык C# — разработку корпорации Microsoft, как впрочем и Windows Communication Foundation.

Используемая среда и логика клиент серверной программы

Использовать для создания Windows Communication Foundation приложения будем Visual Studio 2010. Так как мы собираемся создавать клиент серверное приложение, то у нас должно получится два приложения:

  • Серверное приложение
  • Клиентское приложение

Если серверным приложением будет выступать Windows Communication Foundation приложение(приложение службы WCF), то в выборе клиентского приложения есть где разгуляться, стоит вспомнить хотя бы про консольное или декстопное (приложение рабочего стола) приложение. В данном примере, с вашего позволения, мы будем использовать декстопное приложение.

Создание серверного приложения WCF

Для создания серверного Windows Communication Foundation приложения Вам необходимо в Visual Studio выбрать последовательно Файл — Создать проект. В окне Создать проект выберите последовательно Visual C# — WCF — Приложение службы WCF. До того как нажать кнопку ОК, вы можете задать более оригинальное название и расположение для вашего проекта.

создание Windows Communication Foundation  приложения

Среда Visual Studio заботливо добавит некоторый код в созданный проект. Благодаря этому, нам не нужно вносить дополнительных правок в приложение, так как данная статья призвана показать самый простой пример создания Windows Communication Foundation приложения. Интересующий нас код расположен в файлах IService1.cs и Service1.svc.cs. Первым делом я попрошу Вас открыть второй файл и найти данные строчки:

public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}

Знакомьтесь, это один из двух методов, которые прописаны в нашем серверном приложении по умолчанию. Те, кто умеет программировать, причем не обязательно на C#, могут разобрать, что данный метод возвращает строку:

You entered: "и число переданное в данный метод"

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

А теперь откроем файл IService1.cs и найдем следующий код:

[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);
// TODO: Добавьте здесь операции служб
}

Нас интересует 4-ая и 5-ая строчка представленного кода. Именно таким образом необходимо дать понять <серверному Windows Communication Foundation приложению, что вот он метод, к которому может обращаться клиентская программа.(Объяснения, конечно, далеки от профессорского уровня, но задача данной статьи показать на примере процесс создания клиент серверного приложения Windows Communication Foundation. Изучение же всех нюансов - ваша задача). Именно таким образом в будущем вам необходимо будет добавлять в службу созданные вами методы.

Далее мы можем запустить наше серверное приложение. Но перед этим Вам необходимо задать файл Service1.svc начальной страницей запуска. Сделать это можно в контекстном меню данного файла. После этого смело жмите кнопку F5 и получите такое окно:

создание Windows Communication Foundation приложения

В этом окне нас интересует вторая строка в левом окошке. Там указан путь до серверного приложения. Так как мы запускаем приложение на локальном компьютере, адрес начинается на localhost, после которого следует порт, по которому работает приложение. Нажмите правой кнопкой мыши на адрес и скопируйте его, он понадобиться нам, чтобы связать клиентское приложение с серверным.

Создание клиентского приложения на C#

Как и говорил ранее, клиентским приложением станет обычное приложение Windows Forms. Надеюсь, Вы умеете создавать такие проекты и поэтому я не буду зацикливаться на мелочах. А если кто-то не умеет создавать такие проекты, прошу прекратить чтение данного материала и перейти к изучению более простых тем. Далее прошу добавить на форму элементы Button, Textbox и Label. Логика программы такая, что введенное в Textbox число будет отправлено на сервер в качестве параметра метода GetData, которое возвратит нам ответ и выведет его в Label. Но перед тем как мы перейдем к коду, необходимо связать наши приложения. Для этого нажмите в окне Обозреватель решений на проект и в контекстном меню выберите Добавить ссылку на службу. В открывшемся окне в поле адрес вставьте тот адрес, который мы получили от Windows Communication Foundation приложения. После того как ссылка будет добавлена, необходимо в файл Form1.cs добавить следующую директиву(имейте ввиду, что название Вашего проекта может отличаться от Windows FormsApplication4):

using WindowsFormsApplication4.ServiceReference1;

После этого вызовите обработчик события нажатия на кнопку и внесите в него следующий код:

Service1Client client=new Service1Client();
label1.Text=client.GetData(int.Parse(textBox1.Text));

Понимаю, что Вам не терпится получить результат и поэтому прошу Вас запустить клиентское приложение и проверить работу. Надеюсь Вы увидите что содержимое Label было изменено. Так же надеюсь, что в этих двух строчках Вы не запутаетесь и сами разберетесь что к чему. Я же пожелаю Вам удачи в дальнейшем освоении технологии Windows Communication Foundation и успехов в создании клиент серверных приложений. Надеюсь данная статья станет хорошим фундаментом для дальнейшего продвижения, ведь как известно самый сложный шаг первый, который мы с вами преодолели.

Один комментарий к записи “Простой пример использования Windows Communication Foundation на языке C#
  1. Игорь в cказал :

    Хорошая статья!

Добавить комментарий

Ваш комментарий появится после модерации.