- •Методичні вказівки
- •6.050103 „Програмна інженерія”
- •2. Практичні заняття
- •2.1. Практичне заняття 1. Серверні елементи керування asp.Net. Валідація даних.
- •2.2. Практичне заняття 2. Створення шаблонних сторінок MasterPage, користувацьких елементів управління UserController та застосування елементів навігації по додатку
- •Навігація по додатку.
- •2.3. Лабораторне заняття 3. Робота з елементами споживачам та постачальниками даних. Застосування технології ado.Net
- •2.4. Лабораторне заняття 4. Особливості роботи з бд за допомогою DataSet і SqlDataSource
- •2.5. Лабораторне заняття 5. Створення та використання веб-сервісів
- •3. Рекомендована література
- •Допоміжна
- •Інформаційні ресурси
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. Вигляд веб-додатку із застосованим веб-сервісом
