Характеристика предприятия 1 правила техники безопасности
ЗАДАНИЕ № 4: Разработка. Отладка модулей программного проекта
Download 1.81 Mb.
|
1663227409051 Отчет
ЗАДАНИЕ № 4: Разработка. Отладка модулей программного проекта.Итак, наш первый проект, который мы создадим, будет называться Autoshop.BL. Проект будет создан с помощью Библиотеки классов. Созданный по умолчанию класс мы удаляем, он нам не нужен. В проекте создаем папку Models и наш первый класс. Первый класс, который мы создадим это класс для хранения данных. Этим непонятным описанием называется в нашем случае класс – Сотрудник. Наше будущее приложение должно выполнять какие-либо действия над этим объектом. Поскольку действия, совершаемые над объектом, мы ранее уже назвали «бизнес-процессом», то и сам объект с не меньшим удовольствием назовем «бизнес-объектом». Данный объект позволяет в себе хранить данные из «бизнес-логики» для передачи их в часть программы, отображающую содержимое этого объекта, и обратно. Ведь мы знаем, что объект – это контейнер для данных. Тут появляется и иное название этого объекта – объект для передачи данных. Код нашего класса будет выглядеть так, как показано ниже.
Теперь нам необходимо выполнить декларацию операций. Для этого в нашем проекте создадим новую папку Interfaces и интерфейс IProductProcess.cs. В нем мы опишем все те действия, что будут выполняться над объектом - Товар . В данном контексте интерфейс — это шаблон проектирования, являющийся общим методом для структурирования компьютерных программ для того, чтобы их было проще понять. В общем случае, интерфейс — это абстрактный тип, не содержащий данные или код, но определяющий поведение через объявление сигнатуры методов. Интерфейс обеспечивает программисту простой или более программно-специфический способ доступа к другим классам. У нас получился следующий код интерфейса:
Тут описаны все необходимые операции, которые следует реализовать по заданию. Теперь напишем код, который будет выполнять эти действия. Для этих целей в проектt Autoshop.BL в папку Models добавим новый класс ProductProcess.cs и унаследуем его от нашего интерфейса IProductProcess.cs который создали раннее. Для хранения списка нагрузок будем использовать коллекцию IDictionary. Ее использование позволит быстро получать доступ к объекту по его id. Добавим соответствующую строку в самое начало созданного класса. Коллекция будет статичной (static), что означает единственность экземпляра для всего приложения. У нас получился следующий код класса ProductProcess:
Для начала нужно решить, как другие компоненты приложения, которые мы еще не начали реализовывать, будут получать данный экземпляр реализации «бизнес-логики». Можно позволить напрямую создавать экземпляры класса ProductProcess. Но так обычно не делают, потому что создание такого объекта может требовать дополнительную инициализацию, которую нет возможности поместить в конструктор. Не рекомендуется, чтобы другие модули знали конкретные классы реализации. Если позже потребуется заменить реализацию интерфейса IProductProcess с нынешнего варианта ProductProcess на ProductProcessDb, то замене будет подлежать весь код, который явно знает о классе ProductProcess. Чтобы этого избежать, позволим сторонним модулям знать только об интерфейсе IProductProcess. Также зададим единственное место, в котором все сторонние модули будут получать объект реализации интерфейса IProductProcess. Это место называется фабрикой классов (паттерн). Добавим в проект Autoshop.BL новый класс ProcessFactory, код которого представлен ниже:
Создадим новый класс Product, который будет отражать данные в базе, согласно таблице Products. Поместим класс в папку Entity проекта Autoshop.BL. Добавим поля в наш класс согласно полям в базе данных.
Добавим в проект Autoshop.BL ссылку System.Configuration и интерфейс IProductDao с описанием необходимых нам действий и строку: using Autoshop.BL.Entity. Код созданного интерфейса представлен ниже.
Добавим класс ProductDao, реализующий созданный ранее интерфейс IProductDao и строки: using System.Configuration; using System.Data.SqlClient; using Autoshop.BL.Entity; По аналогии с классом ProcessFactory, создадим фабрику классов DaoFactory. Её будет использовать слой “бизнес-логики” вместо работы с коллекцией. Код данного класса представлен ниже.
Вернемся к исходному коду класса ProductDao. Есть два объекта, которые нам понадобятся в каждом из методов этого класса. Первый объект – это строка подключения, чтобы знать, к какой базе подключаться. Второй – сам объект подключения к базе данных. Добавим статичные методы, возвращающие эти объекты, в конец класса ProductDao. Перейдем к реализации оставшихся методов класса. Полный код класса вынесен в приложения. Теперь перед нами встала довольно интересная задача. Нам надо как-то преобразовывать объекты типа Load в объекты типа ProductDto, и обратно. Чтобы не делать это каждый раз, где только потребуется, добавим специальный класс DtoConverter в проекте Autoshop.BL и поместим его в папку Models этого проекта. Код данного класса вынесен в приложения. Теперь создадим новый класс ProductProcessDb. Код класса вынесем в приложения. Данный класс будет реализован от того же интерфейса, что и класс ProductProcess – IProductProcess. Осталось лишь сделать замену в классе ProcessFactory. Диаграмма классов демонстрирующая логику приложения будет вынесена в приложения. Для реализации пользовательского интерфейса мы используем тип проекта WPF. Для создания нового проекта, в обозревателе решений кликаем по решению – Добавить – Создать проект (рисунок 5). Выбираем проект WPF (NET Framework) и жмем Далее. Дадим имя проекту Autoshop.UI – интерфейс пользователя, жмём далее и ждем пока не будет создан проект. Рисунок 5 – Создание пользовательского интерфейса Прежде чем мы приступим к реализации интерфейса приложения, в файл App.config необходимо добавить ссылку для подключения базы данных, которую мы создали раннее. Код данного файла представлен ниже.
Для начала нам необходимо определиться с принципами работы с приложением. Для этого создадим схему, которая будет демонстрировать данный процесс. Рисунок 6 – Схема работы с приложением Реализация пользовательского интерфейса происходит в два этапа: реализация интерфейса на языке XMAL и реализация логики, код пишется на C#. На рисунке 7 представлен внешний вид главного окна программы. Код интерфейса главного окна представлен ниже. Рисунок 7– Внешний вид главного окна
Теперь нам необходимо реализовать логику работы главного окна. Код представлен ниже.
После того, как было реализовано основное окно приложения(программы) необходимо реализовать окно для добавления данных. С помощью этого окна пользователь программы (приложения) сможет добавлять данные, которые затем выводятся в главном окне. Ниже представлен код интерфейса окна добавления данных.
Внешний вид окна добавления данных представлен на рисунке 8. Рисунок 8 – Внешний вид окна добавления данных Код логики окна добавления данных мы вынесем в приложения так как он очень большой. После того, как была реализована основная часть интерфейса приложения, необходимо позаботиться о безопасности, чтобы никто, посторонний не имел доступа к программе. Для этих целей мы реализуем три окна: окно регистрации, окно авторизации и кабинет пользователя, из которого можно будет попасть в основную часть программы – это главное окно и окно добавления данных. Рисунок 9 – Окно регистрации Как уже было сказано раннее, для хранения учетных данных будет использоваться база Sqlite. Создадим эту базу. ниже на рисунке 10 представлена созданная база данных. Рисунок 10 – Окно базы данных с созданной таблицей Прежде чем мы добавим код интерфейса и логики тех окон, что мы создаем, мы реализуем классы, которые будут отвечать за их работу. Первый класс, который мы реализуем – User.cs. Код данного класса представлен ниже.
Следующий класс который нам потребуется это класс контекста, который нужен для работы с базой данных. Код данного класса представлен ниже.
Теперь мы можем перейти к коду описывающему интерфейс окна регистрации. Листинг данного кода представлен ниже.
Код реализующий логику работы данного окна, а также код для окон авторизации и кабинета пользователя мы вынесем в приложения. Также в приложения будут помещены изображения данных окон. Таким образом была разработана АИС для автомагазина. Разработанное приложение полностью удовлетворяет всем условиям. В результате мы получили удобное и практичное приложение для автомагазина, функционал которого может быть дополнен в будущем. Разработанная информационная система будет отличаться от других аналогичных программных средств тем, что она проста в обращении, имеет удобный, а самое главное простой в использовании интерфейс. Это преимущество будет сильно оценено, когда на рабочее место придёт новый человек, который ранее не сталкивался с подобными задачами. Программа предназначена для работы в среде Windows. Использование программы предполагает лишь элементарные знания приемов работы в данной среде. Download 1.81 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling