Файл: Отчет по учебной практике по профессиональному модулю пм 03 Ревьюирование программных модулей.docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 30.10.2023

Просмотров: 1312

Скачиваний: 87

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
репликации.

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMPAppServLAMP и в портативные сборки серверов ДенверXAMPPVertrigoServ. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

Сообществом разработчиков MySQL созданы различные форки кода, такие как Drizzle , OurDeltaPercona Server и MariaDB. Все эти форки уже существовали на момент поглощения компании Sun корпорацией Oracle.

MySQL портирована на большое количество платформ: AIXBSDiFreeBSDHP-UXLinuxmacOSNetBSDOpenBSDOS/2 Warp, SGI IRIXSolarisSunOS, SCO OpenServer, UnixWareTru64Windows 95Windows 98Windows NTWindows 2000Windows XPWindows Server 2003, WinCE, Windows VistaWindows 7 и Windows 10. Существует также порт MySQL к OpenVMS. На официальном сайте СУБД для свободной загрузки предоставляются не только исходные коды, но и откомпилированные и оптимизированные под конкретные операционные системы готовые исполняемые модули СУБД MySQL.

MySQL имеет API и коннекторы для языков DelphiCC++ЭйфельJavaЛиспPerlPHPPythonRubySmalltalkКомпонентный ПаскальTcl и Lua, библиотеки для языков платформы .NET, а также обеспечивает поддержку для ODBC
 посредством ODBC-драйвера MyODBC.

MyODBC представляет собой драйвер ODBC (2.50) уровня 0 (с некоторыми возможностями уровней 1 и 2) для подсоединения совместимого с ODBC приложения к MySQL. MyODBC работает на всех системах Microsoft Windows и на большинстве платформ Unix.

SQLite


Компактная встраиваемая СУБДИсходный код библиотеки передан в общественное достояние. В 2005 году проект получил награду Google-O’Reilly Open Source Awards. Слово «встраиваемый» (embedded) означает, что SQLite не использует парадигмы клиент-сервер, то есть движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а представляет собой библиотеку, с которой программа компонуется, и движок становится составной частью программы. Таким образом, в качестве протокола обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа. Простота реализации достигается за счёт того, что перед началом исполнения транзакции записи весь файл, хранящий базу данных, блокируется; ACID-функции достигаются в том числе за счёт создания файла журнала.

Несколько процессов или потоков могут одновременно без каких-либо проблем читать данные из одной базы. Запись в базу можно осуществить только в том случае, если никаких других запросов в данный момент не обслуживается; в противном случае попытка записи оканчивается неудачей, и в программу возвращается код ошибки. Другим вариантом развития событий является автоматическое повторение попыток записи в течение заданного интервала времени. В комплекте поставки идёт также функциональная клиентская часть в виде исполняемого файла sqlite3, с помощью которого демонстрируется реализация функций основной библиотеки. Клиентская часть является кроссплатформенной утилитой командной строки.

SQLite возможно использовать как на встраиваемых системах, так и на выделенных машинах с гигабайтными массивами данных.

Итог


В результате сравнения инструментом для создания базы данных был выбран SQLite, так как Access технически устарел и мало кем используется и требует установки Office для работы, MySQL хоть и имеет огромное количество гибких функций для настройки и управления базами данных, всё же является довольно трудным для освоения и неудобен для мобильной работы, а большое количество его функций не пригодились в данной практической работе, а SQLite лёгок для понимания и его функций вполне достаточно.


3 Разработка клиентского приложения с использованием выбранных инструментальных средств


Начать разработку приложения следует с создания проекта.

Открываю среду разработки Microsoft Visual Studio 2019 и в появившемся главном окне выбираю кнопку «Создание проекта».

Далее в строку поиска ввожу WPF и среди выведенных результатов выбираю «Приложение WPF» (Рис.1).

Имя проекта: «JAGER» (опционально), Путь к проекту: всегда доступный. Поскольку в проекте приложение будет разработано одно, то не критично будет назвать решение названием проекта (Рис.2).

После нажатия кнопки «Далее», выбираю «.NET Core 3.1», поскольку многого я не потеряю, выбрав неновую версию платформы, да и версия эта весьма надёжна (Рис.3).

Кнопка «Создать» завершает создание заготовки проекта, который далее можно разрабатывать.



Рисунок 1 - выбор заготовки проекта.



Рисунок 2 - настройка заготовки проекта.



Рисунок 3 - завершение настройки.

Разработка БД на SQLite.

Для начала необходимо подключить расширение для работы с базами данных SQLite (Рис.4):

  • На верхней панели среды разработки нахожу кнопку «Расширения»

  • В строку поиска ввожу «SQLite and SQL Server Compact Tool»

  • Результат поиска должен быть один (Рис.4). Нажимаю на него, затем на кнопку установить. Прожимая ОК везде, где это нужно, я устанавливаю расширение.



Рисунок 4 - выбор и установка необходимого расширения.

После перезагрузки среды разработки приступаю к разработке самой БД:

  • На верхней панели нахожу кнопку «Средства» и нажимаю на SQLite/SQL Server Compact Toolbox (Рис.5)



Рисунок 5 - выбор средства для работы с БД

  • В появившейся слева панели необходимо найти кнопку «Add SQLite Connection», нажать на неё и в появившемся окне нажать на самую верхнюю кнопку «Create…» и найти место, где будет находиться файл нашей БД (Рис.6).



Рисунок 6 - Создание файла БД.


  • Создав БД, нажимаю на кнопку «New Query», пишу запросы на создание таблиц и поочередно их выполняю - всё согласно концептуальной модели БД (Рис.7).



Рисунок 7 - пример создания и написания запроса на создание таблицы

Наша БД создана, поля связаны, теперь необходимо создать окна и средства для пользовательского интерфейса:

  • Создаю окно как новый объект программы (Рис.8). Мы будем создавать окно редактирования поставщика. На примере этого будут созданы и остальные редакторы.



Рисунок 8 - добавление нового окна WPF

Теперь мы готовы заполнять шаблон окна элементами управления (Рис.9). А именно: Полями для ввода текста, флажками, кнопками, текстовыми надписями и так далее. Есть 2 способа решения этой проблемы: ручное размещение элементов при помощи мышки из набора элементов или ввод с клавиатуры в поле разметки XAML. Я воспользовался вторым вариантом, поскольку редактирование элементов происходит быстрее и точнее. Внутри элемента Grid я сразу добавляю StackPanel с вертикальной ориентацией, чтобы элементы выстраивались сверху вниз. В StackPanel будет добавлен Заголовок, поля ввода фамилии, имени, отчества, наименования фирмы, номера телефона и кнопка сохранения. Шрифтом всего приложения будет жирная Tahoma. Расцветка приложения: рамка для некоторых окон темно-красная, фон либо в виде изображения, либо цвета старой бумаги. Кнопки будут темно-красного цвета с белым текстом.



Рисунок 9 - пустая заготовка окна приложения.

Рисунок 10 - готовое окно редактора поставщиков

Окно готово (Рис.10), теперь необходимо написать для этого окна код. В правой панели открываю вложенные объекты нашего окна и открываю файл формата cs – это наш C# скрипт.

  • В скрипте можно увидеть уже созданные методы, которые будут вызваны при загрузке окна и нажатия кнопки сохранения.

  • При загрузке окна приложение будет проверять, собирается ли пользователь создать новую запись или открывает уже созданную. Это важно, поскольку если запись существует, то текстовые поля будут заполнены содержимым открытой записи, а также при сохранении запись будет обновляться, а не создаваться по новой, как это будет в случае создания новой записи.

  • Метод, вызываемый нажатием кнопки сохранения, также проверяет, создаётся ли новая форма, или нет. В первом случае будет выполняться запрос на создание записи, во втором – запрос на обновление записи (Рис.11).




Рисунок 11 - запросы на создание/обновление записей таблицы поставщиков

Чтобы открыть редактор, необходимо видеть, что можно отредактировать. Окна с кнопкой «Добавить» будет мало. Необходимо в окно обзора поставщиков добавить таблицу со всеми существующими поставщиками. Здесь я впервые применил элемент DataGrid – таблица, на которую можно отображать записи из базы данных (Рис.12).



Рисунок 12 - Готовое окно осмотра поставщиков.

В метод, вызываемый после загрузки окна, пишем выполнение запроса на выборку всех записей таблицы поставщиков.

Первый запуск ничего не выведет на таблицу, поскольку записей мы не создали. Это нужно исправить. Если код был написан без багов и запросы SQLite были написаны по всем правилам, то добавление, обновление и отображение записей таблицы будет функционировать (Рис.13).



Рисунок 13 - Запущенное окно осмотра поставщиков.

Применяя аналогичные технологии, я сделал окно осмотра поставок, сотрудников и покупок. Товары будут осматриваться в редакторе поставок, чтобы сразу определять их принадлежность. Подобным образом будут осматриваться позиции чека в редакторе покупок. Также в редакторе покупок будет отображаться таблица всех существующих в ассортименте товаров, чтобы их сразу заносить в покупку как отдельные позиции. На это окно было потрачено большее количество времени, поскольку возникали проблемы со связной работой всех трех таблиц, особенно с подсчетом стоимости покупки и каждой позиции (Рис.14).



Рисунок 14 - Окно редактирования покупок с двумя вложенными таблицами.

Вторая по объему затраченных ресурсов работой будет создание главных окон пользователей. Для менеджера по закупкам, сотрудникам, рядовым кассирам и директора были созданы отдельные окна с разным спектром функций (зависит от уровня доступа).

В каждом окне можно обнаружить странный вырез в нижнем левом углу (Рис.15). Там будут отображаться меню осмотра записей различных таблиц.