Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4_kurs_7_semestr_Metodichni_vkazivki_-_do_laboratornikh_zanyat.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
9.93 Mб
Скачать

2.5. Лабораторне заняття 5. Створення та використання веб-сервісів

Мета лабораторного заняття: Освоїти поняття та властивості веб-сервісов. Вивчити способи програмної реалізації веб-методів веб-сервісів. Навичитися застосовувати веб-сервіси на сторінки веб-додатку.

Приклад 1. Застосування шаблону Web-сервісу.

Для створення веб-сервісу можна скористатися шаблоном. Для цього обрати пункт меню File-New WebSite – ASP.NET Web Setvice (рис. 5.1).

Рис. 5.1. Додавання нового елемента до веб-додатку

При цьому автоматично створюється файл із розширенням і програмним кодом веб-сервісу з одним методом:

using System;

using System.Linq;

using System.Web;

using System.Web.Services;

using System.Web.Services.Protocols;

using System.Xml.Linq;

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. [System.Web.Script.Services.ScriptService]

public class Service : System.Web.Services.WebService

{

public Service () {

//Uncomment the following line if using designed components

//InitializeComponent();

}

[WebMethod]

public string HelloWorld() {

return "Hello World";

}

}

Запустивши файл на виконання отримаємо екрану форму наступного вмісту (рис. 5.2).

Рис. 5.2. Вигляд створеного веб-сервісу в браузері

Натиснувши HelloWorld можна в браузері переглянути інформацію стосовно метода, який створився автоматично (рис. 5.3).

Рис. 5.3.

Користь такого веб-сервісу досить сумнівна, тому розглянемо наступні біль корисні веб-сервіси та способи їх використання з додатку.

Приклад 2. Створення Web-сервісу «Калькулятор». Створіть Web-службу ASP.NET на основі шаблона ASP.NET Web Servіce. Реалізуйте в цій службі чотири методи, кожний з яких приймає два цілочисельних параметри:

1) метод Add(). виконує додавання;

2) метод Subtract(), що виконує віднімання;

3) метод Multіply(), що виконує множення;

4) метод Dіvіde(), що виконує ділення.

Для цього в коді веб-сервісу видалимо код методу, що створено автоматично, а додамо власний код наступного вмісту:

using System;

using System.Linq;

using System.Web;

using System.Web.Services;

using System.Web.Services.Protocols;

using System.Xml.Linq;

[WebService(Description="Web-калькулятор", Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class Service : System.Web.Services.WebService

{

public Service () {

}

[WebMethod (Description="Сложение")]

public int Add(int x, int y)

{ return x + y; }

[WebMethod (Description="Вычитание")]

public int Substract(int x, int y)

{ return x - y; }

[WebMethod (Description="Умножение")]

public int Multiply(int x, int y)

{ return x * y; }

[WebMethod (Description="Деление")]

public int Divide(int x, int y)

{ return x / y; }

}

За допомогою прямого звертання переконаєтеся, що ваша Web-служба працює правильно (рис. 5.4).

Рис. 5.4. Вигляд розробленого веб-сервісу в браузері

Обравши один з методів, наприклад „Додавання” можемо впевнитися у вірності роботи веб-сервісу (рис. 5.5).

Рис. 5.5. Внесення даних для виконання веб-сервісу

Результат прямого запуску веб-сервісу та виконання методу „Додавання” із значенням Х=10, У=10, наведено на рис. 5.6.

Рис. 5.6. Виконання веб-сервісу в браузері

З рис. 5. 6 видно, що результатом роботи методу та сервісу в цілому буде значення 20. Окрім того, що веб-сервіс успішно створено і протестовано необхідно застосувати його для веб-додатку і звернутися до його методів з екранної форми. Створимо новий проект з формою наступного вмісту (рис. 5.7).

Рис. 5.7. Створення веб-форми для застосування веб-сервісу

На формі розташовано 2 текстових поля, кнопка „Помножити” та мітка для виведення результатів. Програмний код розмітки сторінки наступний:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title>Untitled Page</title>

</head>

<body>

<form id="form1" runat="server">

<div style="height: 171px">

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

<br /> <br />

<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>

<br /> <br />

<asp:Button ID="Button1" runat="server" Text="Умножить" onclick="Button1_Click" />

<br /> <br />

<asp:Label ID="Label1" runat="server"></asp:Label>

</div>

</form>

</body>

</html>

Для забезпечення можливості застосування розробленого веб-сервісу для створеної сторінки необхідно створити посилання для нього. У вікні Solutіon Explorer клацніть правою кнопкою миші по рядку проектові й у контекстному меню виберіть Add Web Reference. Відкриється вікно Add Web Reference (рис. 5. 8).

Рис. 5. 8. Додавання посилання на створений веб-сервіс

У поле URL уведіть шлях до Web-служби і натисніть на кнопку Go. Після того, як служба буде знайдена, можна задати для неї програмне ім'я в поле Web Reference Name (наприклад, webсalc) і натисніть на кнопку Add Reference. Посилання на Web-службу буде додано у додаток (рис. 5.9) і можна буде його використовувати в коді об’єкта проксі-класу для Web-служби.

Рис. 5.9. Розташування веб-сервісу в файлах веб-додатку

В обробнику події натискання кнопки „Помножити” необхідно додати код для виклику відповідного методу веб-сервісу.

protected void Button1_Click(object sender, EventArgs e)

{

webcalc.Service calc = new webcalc.Service();

Label1.Text =Convert.ToString(calc.Multiply(Convert.ToInt32(TextBox1.Text), Convert.ToInt32(TextBox2.Text)));

}

Результатом виконання описаних програмних дій є екранна форма, що наведено на рис. 5.10.

Рис. 5.10. Застосування веб-сервісу із браузера

Приклад 3. Створення Web-сервісу для роботи з базою даних. Створимо веб-сервіс для вибірки даних з таблиці бази даних.

using System;

using System.Data.SqlClient;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Services;

using System.Web.Services.Protocols;

using System.Xml.Linq;

[WebService(Name="bd", Description="Веб-сервис для работы с базой данных", Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class Service : System.Web.Services.WebService

{

public Service () {

}

string strConn = "Data Source=KATYAN\\SQLEXPRESS;Initial Catalog=tovar;Integrated Security=True";

[WebMethod (MessageName="GetOrders", Description="Веб-метод для работы с заказами", CacheDuration=600)]

public DataSet GetCustOrders()

{

SqlConnection con = new SqlConnection(strConn);

string sql = "select * from tovar";

SqlDataAdapter mydat=new SqlDataAdapter(sql,strConn);

DataSet ds = new DataSet();

mydat.Fill(ds);

return ds;

}

}

Створимо нову сторінку, на якій розташуємо таблицю для відображення даних з таблиці БД через веб-сервіс.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title>Untitled Page</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns= "False" DataKeyNames="kod_tov" >

<Columns>

<asp:BoundField DataField="nazv" HeaderText="nazv" SortExpression="nazv" />

<asp:BoundField DataField="gost" HeaderText="gost" SortExpression="gost" />

<asp:BoundField DataField="kod_tov" HeaderText="kod_tov" InsertVisible="False"

ReadOnly="True" SortExpression="kod_tov" />

</Columns>

</asp:GridView>

</div>

</form>

</body>

</html>

Створимо посилання на веб-сервіс (рис. 5. 11).

Рис. 5. 11. Застосування веб-сервісу

В обробнику події завантаження форми додамо фрагмент коду для використання веб-сервісу в якості джерела даних.

protected void Page_Load(object sender, EventArgs e)

{

localhost.bd ser = new localhost.bd();

GridView1.DataSource = ser.GetCustOrders();

GridView1.DataBind();

}

Результат виконання зазначених програмних дій наведено на рис. 5. 12.

Рис. 5. 12. Вигляд веб-додатку із застосованим веб-сервісом