Клиентское веб-приложение должно обеспечивать отображение информации для пользователя, включать в себя удобные формы для ввода данных, выбора услуг. Данные, полученные из экранных форм, впоследствии должны сохраняться в базе данных.
В связи с тем, что Web Developer ориентирован на работу с сервером SQL-Server создадим базу данных (листинг 1):
Листинг 1. SQL-код для создания базы данных
CREATE DATABASE USLUGI_SVARSHIKA
-- База данных: `svarshic`
-- --------------------------------------------------------
-- Структура таблицы `klienti`
CREATE TABLE klienti (
kod_klienta int NOT NULL,
FIO varchar(50) NOT NULL,
telefon char(50) NOT NULL,
email char(50) NOT NULL,
PRIMARY KEY (kod_klienta)
--
-- Структура таблицы `rayoni`
--
CREATE TABLE rayoni (
kod_rayona int NOT NULL,
nazvanie char(50) NOT NULL,
tarif_za_viezd float NOT NULL,
PRIMARY KEY (kod_rayona)
--
-- Структура таблицы `uslugi`
--
CREATE TABLE uslugi (
kod_uslugi int NOT NULL,
nazvanie char(50) NOT NULL,
opisanie text NOT NULL,
cena_za_chas money,
PRIMARY KEY (kod_uslugi)
--
-- Структура таблицы `zayavki`
--
CREATE TABLE zayavki (
kod_zayavki int NOT NULL,
dlitelnost int ,
jelaemaya_data datetime ,
jelaemoe_vremya datetime,
adres char(45),
commentariy text,
kod_rayona int,
kod_uslugi int,
kod_klienta int,
PRIMARY KEY (kod_zayavki),
FOREIGN KEY (kod_rayona ) REFERENCES rayoni.kod_rayona ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (kod_uslugi) REFERENCES uslugi.kod_uslugi ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (kod_klienta) REFERENCES klienti.kod_klienta ON DELETE CASCADE ON UPDATE CASCADE
Схема базы данных, полученная в результате реализации sql-кода приведена на рис. 1.
Рис. 1. Схема базы данных «Услуги сварщика»
Клиентское приложение для работы с базой данных будет иметь следующие веб-страницы: главная страница, описание услуг, заказ услуг.
Главная страница будет содержать только статический текст «визитку» (рис. 2)
Рис. 2. Главная форма веб-приложения
На странице «Описание услуг» свяжем текстовое поле с описанием услуг с выпадающим списком, в котором, в свою очередь, отображаются наименования услуг из базы данных (рис. 3).
Рис. 3. Страница «Описание услуг»
Самой сложной, с точки зрения кодирования и информационного наполнения, является страница «Заказ услуг». На ней размещены необходимые элементы управления, привязаны дополнительные компоненты библиотек (например, календарь для ввода даты), а также подключена соответствующая база данных (рис. 4-5)
Рис. 4. Страница «Заказ услуг» (начало)
Рис. 5. Страница «Заказ услуг» (продолжение)
Для связи с базой данных, а также для отображения/сохранения данных был написан следующий программный код на C# (листинг 2):
Листинг 2. Код на C# для обмена данными между формой и базой данных
System.Data.SqlClient.SqlConnection
sqlConnection1 = new System.Data.SqlClient.SqlConnection(@"Data Source=TESTSQLEXPRESS;Initial Catalog=USLUGI_SVARSHIKA_2;Integrated Security=True");
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "INSERT INTO zayavki (dlitelnost, jelaemaya_data_vremya, adres, commentariy, kod_rayona, kod_uslugi, kod_klienta) VALUES (@dlitelnost, @jelaemaya_data_vremya, @adres, @commentariy, @kod_rayona, @kod_uslugi, @kod_klienta)";
cmd.Parameters.AddWithValue("@dlitelnost", int.Parse(this.dlit.Text));
cmd.Parameters.AddWithValue("@jelaemaya_data_vremya", this.kogda.Text+' '+this.skolko.Text);
cmd.Parameters.AddWithValue("@adres", this.adres.Text);
cmd.Parameters.AddWithValue("@commentariy", this.comm.Text);
cmd.Parameters.AddWithValue("@kod_rayona", int.Parse(this.rayon.SelectedItem.Value));
cmd.Parameters.AddWithValue("@kod_uslugi", int.Parse(this.usluga.SelectedItem.Value));
cmd.Parameters.AddWithValue("@kod_klienta", int.Parse(this.kodKL.Text));
cmd.Connection = sqlConnection1;
sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();
Response.Redirect("Thanks.aspx");
В результате средствами данного кода данные из веб-форм сохраняются в базе данных (рис. 6).
Рис. 6. Сохранение данных из веб-формы в базу данных
Таким образом, web-приложение – это прикладное программное обеспечение, логика которого распределена между сервером и клиентом, а обмен информацией происходит по сети. Клиентская часть реализует пользовательский интерфейс, а серверная – получает и обрабатывает запросы от клиента, выполняет вычисления, формирует веб-страницу и отправляет её клиенту согласно протоколу HTTP.
Актуальность исследований в области вопросов построения web-приложений обусловлена тем, что данный вид программного обеспечения:
перспективен, как инструмент электронной коммерции;
предоставляет широкие возможности социального взаимодействия.