Пояснительная записка. Трач РВ (1228539), страница 3
Текст из файла (страница 3)
-
Схема размещения ИС
Это принципиальная схема, однако, она может расходиться с реальной ввиду пожеланий администрации. Так, совсем не обязательно размещать приложение на виртуальную машину: система будет функционировать точно так же и на физической ЭВМ.
-
Реализация информационной системы
-
Предварительные настройки проекта
-
В качестве среды разработки данного приложения был выбран инструмент компании Microsoft: Visual Studio 2013. Инструментальные средства позволяют:
-
создавать интерфейс, используя стандартные компоненты;
-
передавать управление процессам, в зависимости от состояния системы;
-
создавать оболочки для баз данных, как и сами базы данных;
-
разрабатывать более надежные программы путем обработки исключительных ситуаций возникающих при некорректной работе программы.
С учётом технического задания, в частности метода аутентификации в приложении, а так же взаимодействия с БД, выбран шаблон проекта ASP.NET MVC4 Intranet Application [ CITATION Осн \l 1049 ].
-
Импорт базы данных
В связи с требованиями безопасности, принятыми в ОАО «РЖД», у Дальневосточного подразделения отсутствуют права на просмотр отношений в СУБД ЕСПП. В связи с этим, возникла задача восстановить логические связи базы данных в обособленной компактной копии, которая будет содержать приемлемое количество записей в каждой из сущностей.
После создания файла для восстановления БД АСУ ЕСПП, необходимо восстановить её для работы (рисунок 9). Следует отметить необходимость использования идентичных версий СУБД MS SQL Server – в данном случае 2012.
-
Восстановление локальной копии БД ЕСПП в MS SQL Server
После выгрузки всех таблиц проведён их анализ. Исходя из задания, выявлен ряд сущностей, не относящихся к решаемому вопросу. Это так называемые «справочники» для выпадающих списков ЕСПП, а так же таблицы, содержащие в себе записи об иных сферах деятельности ЕСПП: реестры, аудиты. Таким образом, составлен набор таблиц для дальнейшей работы:
-
зоны ответственности;
-
сотрудники;
-
расписание регламентных работ;
-
обращения;
-
рабочие группы;
-
проблемы;
-
наряды по проблеме;
-
инциденты;
-
элементы конфигурации (ЭК);
-
ЭК_подкатегории;
-
ЭК_связи;
-
ЭК_типы_ЭК;
-
изменения;
-
наряды по изменению;
После определения сущностей для дальнейшей работы, следует восстановить логику взаимодействий их между собой.
В СУБД MS SQL Server есть ряд соглашений, таких как:
-
длина строки внешнего ключа таблицы должна соответствовать длине строки первичного ключа другой сущности, на которую внешний ключ ссылается.
-
внешний ключ должен иметь существующее значение первичного ключа другой таблицы.
При создании копии БД АСУ ЕСПП по 30000 строк, второе упомянутое соглашение осталось не соблюдённым. Чтобы избежать ошибок по этому правилу, необходимо воспользоваться SQL-запросом для удаления записей с неверной ссылкой по внешнему ключу. Удаление несуществующих записей внешних ключей в таблице «Наряды по проблеме»:
delete from dbo.проблемы where dbo.проблемы.НОМЕР IN (
select dbo.проблемы.НОМЕР
from dbo.проблемы
left join dbo.[наряды по проблеме] on dbo.[наряды по проблеме].РОДИТЕЛЬСКАЯ_ПРОБЛЕМА = dbo.проблемы.НОМЕР
where dbo.[наряды по проблеме].РОДИТЕЛЬСКАЯ_ПРОБЛЕМА is null);
delete from dbo.[наряды по проблеме] where dbo.[наряды по проблеме].РОДИТЕЛЬСКАЯ_ПРОБЛЕМА IN (
select dbo.[наряды по проблеме].РОДИТЕЛЬСКАЯ_ПРОБЛЕМА
from dbo.[наряды по проблеме]
left join dbo.проблемы on dbo.[наряды по проблеме].РОДИТЕЛЬСКАЯ_ПРОБЛЕМА = dbo.проблемы.НОМЕР
where dbo.проблемы.номер is null);
Таким образом, результат работы – обособленная база данных, содержащая необходимые сущности и записи в них для локальной разработки. Определены взаимосвязи между таблицами, а так же построена диаграмма для лучшего понимания отношений.
-
Подключение Entity Framework
Непосредственно после создания проекта, необходимо подключить многофункциональный набор библиотек Entity Framework. Для этого достаточно для текущего проекта перейти в «Управление пакетами NuGet»[ CITATION Пер \l 1049 ], выбрать нужный соответствующий элемент из перечня и установить (рисунок 10).
-
Установка Entity Framework
По окончанию установки дополнительных библиотек в проект появились новые возможности. В частности, используя стратегию «DataBase first», Entity framework позволяет создать логическую модель данных, основываясь на взаимодействии сущностей в СУБД SQL Server[ CITATION Соз \l 1049 ]. Далее, основываясь на контексте модели взаимодействий, Visual Studio позволяет быстро создать классы с полями и методами для дальнейшей работы с базой данных, используя как язык взаимодействия LINQ[ CITATION Рат11 \l 1049 ], так и прямой язык запросов T-SQL.
Прежде чем воспользоваться технологией, необходимо подключиться к базе данных, т.е. следует создать строку подключения и указать её в свойствах проекта (рисунок 11).
-
Добавление подключения
к базе данных
После успешного создания строки подключения в глобальном файле конфигурации приложения появится строка подключения:
<connectionStrings>
<add name="DbConnect" connectionString="Data Source=HP-I7;Initial Catalog=MAO2;Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="MAO2Context" connectionString="metadata=res://*/DbModel.csdl|res://*/DbModel.ssdl|res://*/DbModel.msl;provider=System.Data.SqlClient;provider connection string="data source=HP-I7;initial catalog=MAO2;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
В результате проделанных операций следует перенести созданную модель данных в папку «Models» для того, чтобы функционал технологии MVC перенял содержимое классов и включил их в своё пространство имён. В дальнейшем это попросту необходимо для обращения к базе данных. Результирующий контекст базы данных представлен на рисунке 12.
-
Контекст данных Entity
В дереве проекта так же появились одноимённые классы с полями данных (рисунок 13).
-
Схема модели данных
Следует отметить, что модель данных получена с использованием стратегии «Database first». Функциональность Entity Framework позволяет работать и в обратном порядке: создание базы данных на основе классов.
-
Вёрстка основных блоков представлений
Существует два наиболее распространённых метода вёрстки Web-страниц: табличная и блочная. Табличная вёрстка постепенно уходит в прошлое ввиду громоздкости и малой функциональности. На смену ей пришла блочная вёрстка, главным преимуществом которой является концепция семантической верстки, т. е. разделение содержимого и оформления. Такой подход наиболее оправдан ввиду дальнейшей командной разработки и масштабируемости приложения[ CITATION Тро10 \l 1049 ].
Сразу после создания проекта в Visual Studio, необходимо изменить так называемый «Master-page», основываясь на который, будут генерироваться последующие представления. Для этого необходимо отредактировать файл-представление «_Layout» и файл «Site.css», содержащий все стили для спецификаторов проекта (полноценный листинг каскадной таблицы стилей «Site.css» представлен в приложении А). Генерация страниц на основе «_Layout» происходит в место, указанное ключевой функцией«@RenderBody()»:
<div id="body">
<div>
<section class="main-content content-wrapper clear-fix">
@RenderBody()
</section>
</div>
</div>
Ввиду поставленной задачи и изменений в вышеупомянутые файлы, главная страница ИС имеет следующий вид (рисунок 14):
-
Визуальный интерфейс начальной страницы системы
В дальнейшем все страницы в Web-приложении будут иметь этот дизайн. Меняться будет лишь контент в соответствии с макетами, спроектированными во втором разделе.
-
Реализация функционала приложения
-
Создание контроллеров приложения
Бизнес-логика приложения в выбранном шаблоне проектирования MVC содержится в контроллерах. Код, написанный в них, отвечает за получение данных от пользователя, их обработку и формирование представления.
Количество контроллеров в проекте зависит от сложности приложения, а так же рентабельности. Так например, в текущем проекте существует необходимость в четырёх контроллерах:
-
«HomeController» содержит в себе логику работы с главной страницей преложения, а так же страниц со статистикой и сотрудниками;
-
«SidebarController» обрабатывает переходы по пунктам выпадающего горизонтального меню. Содержит вызовы функций по поиску событий в системе;
-
«DetailsController» необходим для хранения так называемых «методов действия», которые в свою очередь обрабатывают запросы от пользователя по демонстрации детальной информации по выбранным событиям системы;
-
«AffectedController» нужен для просмотра связанных данных, таких как перечня изменений по определённому ЭК.
Структуру каждого из контроллеров можно с большим уровнем схожести рассмотреть на примере контроллера «HomeController». Он содержит одноимённые со страницами Web-приложения методы («ActionResult Index»), несколько полей данных, необходимые для страничной навигации и фильтрации данных по выбранному региону, объект класса подключения к базе данных («MAO2Context») и метод по закрытию соединения с БД («Dispose»)[ CITATION Ивь10 \l 1033 ]:
namespace MVCintranet.Controllers{
public class HomeController : Controller{
MAO2Context db = new MAO2Context();
private int PageSize = 20;
public ActionResult Index(string Сriterion){
if (!String.IsNullOrEmpty(Сriterion)){
MainInfo<ЭК> EK = new MainInfo<ЭК>();











