Санкт-Петербургский государственный университет
Опубликован: 01.07.2013 | Доступ: свободный | Студентов: 448 / 118 | Длительность: 16:00:00
Лекция 4:

Базовые технологии, использованные для реализации новой версии Microsoft Windows Azure (2013)

< Лекция 3 || Лекция 4: 12345 || Лекция 5 >

Язык C#: Определение классов

Язык C# разработан специально для платформы .NET, хотя не является обязательным и единственным для этой платформы. Классы в C# определяются традиционным для ООП образом – как набор полей и методов. В дополнение к другим языкам, определение класса может также содержать свойства (обобщенные поля с операциями get и set); индексаторы; события; делегаты. Пример класса:

public class Person :IPersonAge
{
  private int YOB;
  public Person() 
  {
  }
  public int YearOfBirth
  {
     get { return YOB; }; 
     set { YOB = value; };
  } 
  public int GetAgeToday()
  { 
     return Today()-
            YearOfBirth 
  }; 
}

Web-сервисы в .NET

Концепция Web-сервиса в .NET поддерживает сервисы в виде классов, интерфейс которых доступен через Web, соблюдающие ряд стандартов (WSDL, SOAP, XML), основанные на библиотеке классов .NET Framework.

На рис. 4.2 приведена структура распределенного Web-приложения.

Структура распределенного Web-приложения

Рис. 4.2. Структура распределенного Web-приложения

Приложение состоит из клиентской и серверной частей. Web-сервис должен удовлетворять определенному контракту (реализовывать определенный интерфейс).

Инфраструктура Web-сервисов представлена на рис. 4.3.

Инфраструктура Web-сервиса в .NET

Рис. 4.3. Инфраструктура Web-сервиса в .NET

Web-сервис может обрабатывать несколько видов запросов Web-клиентов. При обнаружении (открытии) сервиса клиент передает запрос вида vsdisco, в ответ на который сервисы открытия (UDDI) сообщают о месте расположения Web-сервиса. В ответ на другой запросWSDL – сервис сообщает клиенту структуру своего интерфейса в формате XML с соблюдением стандарта WSDL (Web Service Description Language). В ответ на запрос asmx Web-сервис посылает свой файл реализации в формате XML.

На рис. 4.4 приведен простой пример кода Web-сервиса, выполняющего вычитание двух чисел и выдающего результат, на рис. 4.5 представлена структура WSDL-спецификации Web-сервисов, состоящей из сервисов, портов и сообщений.

Простой пример кода Web-сервиса .NET

Рис. 4.4. Простой пример кода Web-сервиса .NET

Пример WSDL-описания Web-сервиса:

<definitions name="serviceName"</em>>
<import namespace="http://<em type="italic">namespacePath</em>"
        location="http://<em type="italic">path</em>/<em type="italic">fileName.wsdl</em>">
<portType name="serviceNamePortType">
  <operation name="opName">
     <input message="msgNameInput" />
     <output message="msgNameOutput" />
  </operation>
</portType>
<binding name="serviceNameSoapBinding">
   <soap:operation soapAction="http://..." />
</binding>
<service name="<em type="italic">serviceName</em>">
  <port name="<em type="italic">serviceNamePort</em>" binding="bindingName">
     <soap:address location="http://..." />
  </port>
</service>
</definitions>

Использование Web-сервисов основано на следующих принципах. Полностью разделена логика размещения и вызова: сервис представлен в виде пары файлов: .aspx и .aspx.cs (или .aspx.vb). Файлы .aspx предназначены для дизайнеров, файлы .aspx.cs - для программистов. Таким образом достигается легкость сопровождения приложения.

Фрагмент кода сервиса:

<%@ Import Namespace="MathServiceSpace" %>
           <script language="C#" runat="server">
          public void Submit_Click(Object S, EventArgs E) {
         service.Add(operand1, operand2);
           ...
          </script>
                ...
      <input OnServerClick="Submit_Click" runat="server" ..>
< Лекция 3 || Лекция 4: 12345 || Лекция 5 >