Пояснительная записка (1209803), страница 2
Текст из файла (страница 2)
2 Теоретические аспекты реализуемых функций
2.1 Технология взаимодействия с базой данных
В большинстве случаев для взаимодействия с базой данных SQL применяется SQL запросы и хранимые процедуры SQL. Данный подход представляет построение строковых запросов в приложении и получение результатов в виде таблиц DataTable. Для более удобного и упрошенного взаимодействия с базой данных была разработана технология Entity Framework. На рисунке 2.1 представлена общая архитектура .NET Framework.
Рисунок 2.1 – Архитектура .NET Framework
Entity Framework представляет из себя ORM решением для обеспечения объектно-ориентированного взаимодействия с базой данных. Разработана компанией Microsoft для платформы .NET Framework. Технология была основана на ADO.NET и позволила в разы облегчить взаимодействие между базой данных и кодом приложения, за счет готовых инструментов и подходов к взаимодействию с базой данных на уровне объектов. Это позволило более абстрагироваться от использования хранимых процедур SQL кода и обмена данными базы с приложением по средствам DataTable. Релиз данного решения состоялся 11 августа 2008 года.
На рисунке 2.1 представлено расположение Entity Framework в составе архитектуры .NET Framework.
Данная технология предоставляет возможность осуществить взаимодействие с базой данных через объекты классов C#. Она может применятся в проектах на базе технологий MCV, MVP, Windows forms, Console application, а также в class library.
Поддерживает три подхода к построению модели данных:
-
database-First – позволяет автоматизировать процесс создания модели базы данных в приложении на основе уже готовой SQL базы данных. Генерирует визуальную модель данных (EDMX), что обеспечивает удобство взаимодействия и настройки базы данных по средствам графического интерфейса. Для использования данного подхода необходимо знать язык T-SQL для изначального создания основных элементов базы данных;
-
model-First – позволяет реализовать модель базы данных с помощью визуальной модели. После генерации модели, на её основе можно сгенерировать таблицы и связи в базе данных;
-
code-First – подход, позволяющий более гибко настроить необходимые параметры объектов модели за счет написания кода моделей вручную. Данный подход позволяет модифицировать поля классов фильтрами (атрибутами) для явного указания типа данных представленного в самой базе данных, ключевых полей, имен таблиц и т.д. После написания модели следует выполнить миграцию модели в базу данных.
Миграция – внесение изменений в базу данных на основе модели данных с учетом целостности исходных таблиц, сгенерированных ранее в базе данных.
Миграция выполняется следующими командами:
-
enable-Migration – создает конфигурацию миграции на основе контекста модели данных;
-
add-Migration nameOfMigration – создает новую миграцию, определяя какие таблицы были изменены, нарушат ли новые изменения целостность базы данных (если ранее уже были выполнены миграции);
-
update-Database – запускает процесс миграции подготовленных изменений модели, зафиксированных в созданной миграции, в базу данных.
На рисунке 2.2 представлена архитектура доступа и обращения к данным Entity Framework.
Рисунок 2.2 – Архитектура доступа к данным
Получение данных из базы происходит по средствам технологии LINQ запросов.
LINQ – язык запросов, реализованный в языках платформы .NET Framework, основанный на принципе построения SQL запросов. Позволяет осуществить поиск и выборку из любой коллекции данных.
На рисунке 2.1 представлено расположение LINQ в составе архитектуры .NET Framework.
В Entity Framework при использовании LINQ запроса, он конвертируется в SQL запрос, который вернет объект с полями связанных объектов. На рисунке 2.3 приведена схема модели данных для рассмотрения дальнейших примеров.
Рисунок 2.3 – Схема данных
На рисунке 2.4 изображено получение объекта при помощи LINQ запроса на примере схемы данных изображенной на рисунке 2.3:
Рисунок 2.4 – LINQ запрос
Для более легкого получения данных вместо LINQ запроса можно применить другой механизм .NET – лямбда-выражения.
На рисунке 2.5 изображено получение объекта при помощи лямбда выражения на примере схемы данных изображенной на рисунке 2.3:
Рисунок 2.5 – Лямбда-выражение
В некоторых случаях появляется необходимость использования SQL запросов. Entity Framework предоставляет возможность поучения объектов на основе SQL запроса.
На рисунке 2.6 изображено получение объекта при помощи SQL запроса на примере схемы данных изображенной на рисунке 2.3:
Рисунок 2.6 – SQL запрос
Так, как данная технология предоставляет довольно удобный принцип взаимодействия по средствам объектно-ориентированного подхода по сравнению с классическим подходом через SQL запросы, то она была выбрана для взаимодействия с данными в разрабатываемый проект.
2.2 Технология пользовательского интерфейса
Существуют два основных подхода к реализации пользовательского интерфейса: интерфейс консольного приложения и графический интерфейс пользователя. Графически пользовательский интерфейс имеет ряд преимуществ пред технологией консольного интерфейса. Он позволяет реализовать более инстинктивно понятны интерфейс за счет кнопок, полей ввода данных, списков, таблиц, панелей элементов и т.д.
Для реализации пользовательского графического интерфейса выбрана технология Windows Forms.
Представляет механизм реализации графического интерфейса (API) для платформы Microsoft .NET Framework. Данная технология упрощает процесс реализации приложений с графическим интерфейсом для операционной системы Windows. Технология представляет из себя обертки для существующих функций визуализации Win32 API в управляемом коде. Сама технология позволяет использовать такие языки C#, C++, VB.Net, J# и другие. На рисунке 2.7 представлено расположение технологии Windows Forms в .NET Framework. Данная технология была задумана как замена более сложной и старой библиотеке MFC, которая изначально была реализована на языке C++.
Внутри платформы .NET Framework, Windows Forms была реализована в пространстве имен System.Windows.Forms. Для доступа к классам данной области видимости, необходимо либо явное обращение System.Windows.Forms.SelectedItem, либо необходимо прописать в одну из директив using указав в ней данное пространство имен, чтобы получилось using System.Windows.Forms.
Данная технология предоставляет широкий список уже готовых элементов, но и поддерживает уже готовые элементы от сторонних разработчиков. Одним из таких разработчиков является DevExpress. Их библиотека элементов предоставляет расширенный список альтернативных и дополнительных элементов пользовательского интерфейса.
Рисунок 2.7 – Архитектура .NET Framework
Для построения интерфейса в инструменте разработки Visual Studio предлагается удобный визуальный конструктор, приведенный на рисунке 2.8 и набор элементов, приведенный на рисунке 2.9.
Рисунок 2.8 – Конструктор Windows Forms
Рисунок 2.9 – Набор элементов
На рисунке 2.10 приведен пример интерфейса Windows Forms в операционной системе Windows 7.
Рисунок 2.10 – Интерфейс Windows Forms
Поскольку графический интерфейс имеет ряд преимуществ перед консольным в плане удобств использования, он был выбран в реализацию данного проекта.
2.3 Инструменты взаимодействия с системой Windows
В проекте есть необходимость взаимодействия с операционной системой Windows для возможности использования приложением flash – накопителей. Для реализации данного функционала выбрана технология WMI.
Технология WMI представляет из себя набор инструментов для взаимодействия с функциями операционной системы Windows, её мониторинга и внесения изменений при помощи объектов.
Данная технология является расширенной и адаптивной реализацией стандарта WBEM (WebBased Enterprise Management компании DMTF Inc) для операционной системы Windows.
Стандарт WBEM подразумевает универсальный интерфейс мониторинга и управления различными системными компонентами использующий объектно-ориентированный подход. В основе данного подхода лежит технология Common Information Model, реализующая представление компонентов операционной системы в виде объектов, с помощью которых можно получать информацию о тех или иных функциях операционной системы и внесения изменений в них. Сам WMI основан на Common Information Model.
Немаловажной особенностью WMI является то, существующие в нем объекты динамически изменяются по мере изменения ресурсов системы, что означает не постоянное хранение объектов, а создание их по запросу.
На рисунке 2.11 приведена полная архитектура WMI.
Рисунок 2.11 – Архитектура WMI
Объекты WMI располагаются в директории:
«%SystemRoot%\System32\WBEM\Repository»
Так как WMI основа на принципе объектно-ориентированного похода, все ресурсы операционной системы представлены в виде объектов, их методов и свойств.
Основным средством, применяемым для описания новых объектов WMI, является текстовый язык MOF (Managed Object Format). Благодаря данному языку любое приложение, драйвер и служба системы, имеющие поддержку WBEM стандарта, имеет возможность добавить в системную модель CIM собственный набор классов. Такой подход позволяет расширить динамичность данной технологии и мониторинг различных функций приложений.
Для использования данного функционала необходимо чтобы приложение произвело регистрацию своих классов в уже существующей модели CIM, а также реализовать стандартные вызовы стандартно предусмотренных процедур, применяемых для создания объектов данных классов. Для использования функций реализованных классов, необходимо реализовать в них поя, свойства и методы.
Общий набор данных процедур оформляется, как WMI Provider. WMI Provider является специальной библиотекой, осуществляющей мост для взаимодействия между любым приложением и службой WMI.
Свойства позволят осуществлять управление объектами, задавая параметры или получая информацию о параметрах. Методы, вызываемые из данных объектов, позволят осуществить управление функциями приложений, к которым относится данный экземпляр класса.
Помимо свойств и методов, в классах могут быть созданы события, которые будут вызываться при определенном произошедшем событии. С помощью данного механизма можно настроить реакцию на то или иное событие, что позволяет динамически реагировать на них.















