Приклад 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. Вигляд веб-додатку із застосованим веб-сервісом
РЕКОМЕНДОВАНА ЛІТЕРАТУРА
1. М. Мак-Дональд, А. Фример, М. Шпушта. Microsoft ASP.NET 4 с примерами на С# 2010 для профессионалов, 4-е изд. – М.: Вильямс, 2011. – 1424с.
2. Д. В. Столбовский. Основы разработки Интернет и веб-приложений, М.: Вильямс, 2010. – 256с.
3. М. Беллиньясо. Разработка Веб-приложений в среде ASP.NET. – М.: Вильямс, 2007. – 640с.
4. Эспозито Д. Microsoft ASP.NET 2.0. Углубленное изучение. / Пер. с англ. — М.: Издательство «Русская Редакция»; СПб.:Питер, 2008. — 592 с.
5. Основы ASP.NET. ИНТУИТ, 2007. – 238 с.
6. Г. Бучек. ASP.NET. Учебный курс. – СПб.: Питер, 2002. – 512 с.
Допоміжна
1. Агуров П. В. С#. Збірник рецептів – СПб.: БХВ-Петербург, 2007. – 432с.
2. Культин Н. Б. С# в задачах и примерах. – СПб.: БХВ-Петербург, 2009. – 320 с.
3. Клімов Л. П. С #. Поради програмістам. - СПб.: БХВ-Петербург, 2008. – 544 с
4. Троелсен. Е. С # і платформа. NET. Бібліотека програміста. – СПб.: Пітер, 2004. – 796с.
Інформаційні ресурси
1. Інтернет ресурс: http://www.gotdotnet.ru – один з найвідоміших російськомовних ресурсів для програмістів, що використовують платформу. NET Framework.
2. Інтернет ресурс: http://msdn.microsoft.com – сайт Microsoft.
3.Інтернет ресурс: http://www.intuit.ru
Навчальне видання
Методичні вказівки до практичних занять з дисципліни „Нові інформаційні технології” для студентів напряму 6.050103 „Програмна інженерія” (4 курс 7 семестр) / К.М. Ялова, В.В. Завгородній // Київ: КДАВТ, 2016. – 88 с.
Укладачі: к.т.н., доц. Ялова К.М.
к.т.н., доц. Завгородній В.В.
Підписано до друку
Формат Обсяг др. ар.
Тираж екз. Заказ №
м. Київ
вул. Героїв Сталінграду, 2.