Добавил:
Факультет ИКСС, группа ИКВТ-61 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LAB / Миронов / Lab_9

.docx
Скачиваний:
28
Добавлен:
20.02.2019
Размер:
281.95 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

ОТЧЁТ

по лабораторной работе №9 на тему: «Разработка кроссплатформенного приложения»

по дисциплине «Операционные системы»

Выполнили: студенты группы ИКВТ-61, Миронов П.В., Гарифулина Т.С.

Принял: доцент кафедры ПИиВТ Дагаев А.В.

Цель: разработать кросс-платформенное приложение.

Средства: Для выполнения данной работы использовались: Операционная система Windows 10, Microsoft Visual C#, MySQL.

Основные определения:

Кроссплатформенность — способность программного обеспечения работать с двумя и более аппаратными платформами и (или) операционными системами. Обеспечивается благодаря использованию высокоуровневых языков программирования, сред разработки и выполнения, поддерживающих условную компиляцию, компоновку и выполнение кода для различных платформ. Типичным примером является программное обеспечение, предназначенное для работы в операционных системах Linux и Windows одновременно.

Теоретическая часть:

WPF существует в виде подмножества типов .NET Framework, которые по большей части находятся в пространстве имен System.Windows. Если ранее вы создавали приложения с помощью .NET Framework, используя управляемые технологии, такие как ASP.NET и Windows Forms, основные принципы программирования с помощью WPF должны быть вам знакомы: вы создаете экземпляры классов, задаете свойства, вызываете методы и обрабатываете события — все это с использованием своего любимого языка программирования .NET, например C# или Visual Basic.

Так же WPF удобен тем, что он адаптирован под Linux, нужно только установить пакет .NET-core. А так же если использовать пакет Xamarin, то можно создавать приложения не только под Linux или Windows, но и под Android и iOS.

Ход работы:

Структура программы:

Работа сервера осуществляется посредством установки на Компьютер-Сервер ПО:

  • ОС предназначенной для сервера

  • Сервера MySQL

  • Установка платформы .NET Core

  • Подключение к локальной/глобальной сети

Работа клиента с сервером осуществляется с помощью установки на Компьютер-Пользователь разработанного нами ПО для работы с СУБД:

  • Операционная система Windows/Linux

  • Установка платформы .NET Core

  • Подключение к сети сервера

  • Установка ПО «Автобусный парк»

Разработка программы:

  1. Код на установление связи с СУБД:

string connStr = "server=localhost;user=root;password=123;database=aupa;charset=utf8";

string sqlExpression = "new_procedure";

private BindingSource bindingSorce = new BindingSource();

MySqlConnection coon = new MySqlConnection(connStr);

MySqlCommand cmd = new MySqlCommand();

cmd.Connection = coon;

В первой строке идет запись в строковую переменную параметров, которые будут переданы в обработчик MySqlConnection, с помощью него же создается функция подключения от которой будет идти в дальнейшем обращение к СУБД.

  1. Клиент работает с СУБД через запросы, следовательно, ПО должно содержать запросы на выборку, обновление и удаление данных. Ниже представлены фрагменты программного кода, осуществляющее передачу запроса в СУБД:

MySqlConnection coon = new MySqlConnection(connStr);

MySqlCommand cmd = new MySqlCommand();

cmd.Connection = coon;

cmd.CommandText = "select id_d as 'Порядковый номер', dsname as 'Фамилия', dname as 'Имя', dpatr as 'Отчество', dbirth as 'Дата рождения', dpaspS as 'Серия паспорта', dpaspN as 'Номер паспорта', dpaspV as 'Кем выдан', dpaspD as 'Дата выдачи', daddr as 'Адрес', dphone as 'Телефон', ddrvcate as 'Категории', ddrvsl as 'Действительны до' from driver";

MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);

DataSet dataset = new DataSet();

adapter.Fill(dataset);

bindingSorce.DataSource = dataset.Tables[0];

dataGridView1.DataSource = bindingSorce;

coon.Close();

В первых строках идёт обращение к соединению с СУБД, в последующих строках идёт запись универсального запроса в переменную строкового типа, которая в дальнейшем передается в MySqlAdapter – это метод, который при открытом соединение передает запрос в СУБД и ждет от неё ответа, после чего передает ответ обратно в программу в виде строковых переменных.

  1. Когда СУБД накапливает большое количество данных из-за которых поиск необходимых становится затрудненным. Для этого в нашей программе мы установили фильтры (они же запросы), чтобы пользователь не затрудняясь нашел интересующую его информацию и сэкономил время. Ниже представлен код данного фильтра:

MySqlConnection coon = new MySqlConnection(connStr);

MySqlCommand cmd = new MySqlCommand();

cmd.Connection = coon;

cmd.CommandText = "select id_d as 'Порядковый номер', dsname as 'Фамилия', dname as 'Имя', dpatr as 'Отчество', dbirth as 'Дата рождения', dpaspS as 'Серия паспорта', dpaspN as 'Номер паспорта', dpaspV as 'Кем выдан', dpaspD as 'Дата выдачи', daddr as 'Адрес', dphone as 'Телефон', ddrvcate as 'Категории', ddrvsl as 'Действительны до' from driver where dsname like '%"+textBox15.Text+"%';";

MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);

DataSet dataset = new DataSet();

adapter.Fill(dataset);

bindingSorce.DataSource = dataset.Tables[0];

dataGridView1.DataSource = bindingSorce;

В первых строках снова идёт обращение к соединению с СУБД и точно также передаётся запрос в СУБД, само различие идёт уже в запросе и в элементе. В элемент поля textBox15 вводятся символы, после чего они попадают в указанную позицию строки, переменная строкового типа производит объединение данных textBox15.text и данных которые были введены изначально. После этого запрос отправляется на сервер через адаптер и обратно уже возвращаются значения, которые подходят под критерии выборки и помещаются в элемент dataGridView1(Таблица). В этот момент клиент видит необходимую ему информацию.

  1. Чтобы сохранить целостность СУБД необходимо следить за данными которые вносятся в другие таблицы посредством связи между друг другом, то есть если в родительской таблице произведут удаление/обновление данных которые присутствуют в дочерней таблице, то появится битая ссылка, по мере увеличении количества битых ссылок нарушается целостность СУБД и в дальнейшем приводит к её разрушению. Чтобы этого не допустить, была написаны триггеры для удаления несуществующих данных из дочерней таблицы:

Интерфейс программы:

Целью разработки интерфейса было, создать удобное и интуитивное приложение для клиента, который без особых навыков смог воспользоваться базой данных для создания табеля смены.

  1. Загрузочный экран:

Так как предприятие является автобусным парком, то было бы логично представить логотип автобуса на загрузочный экран.

  1. Главное меню:

Главное меню сделано максимально удобным для пользователя, у которого немного навыков относительно знаний компьютера и программного обеспечения.

  1. Создано удобная форма, для заполнения данными таблиц с использованием подтаблиц.

  1. Обновление базы данных через форму.

  1. Поиск и сортировка по заданным символам.

  1. «В архив» Открывает архивную таблицу табелей, которые уже не актуальны в таблице Табели.

Вывод: выполняя данную работу были приобретены теоретические и практические навыки по созданию кроссплатформенного приложения и использование СУБД MySQL, а также расширили свои знания в создании кроссплатформенного приложения изучив дополнительный материалы по использованию .NET-core.

САНКТ-ПЕТЕРБУРГ 2018

Соседние файлы в папке Миронов