Курсовые - Сервер виртуальной поликлиники

ОБОСНОВАНИЕ ВЫБОРА КОМПОНЕНТОВ И ТЕХНО-ЛОГИЙ ДЛЯ РЕАЛИЗАЦИИ КУРСОВОГО ПРОЕКТА

5.1 Назначение и описание компонентов программного обеспечения

 

Для разработки веб-приложений существует множество технологий и решений. Начиная с технологий по разработки сайтов с нуля, заканчивая системами управления содержимым.

ASP.NET MVC Framework реализует MVC паттерн и, тем самым, обеспечивает значительно улучшенное разделение концепций. На самом деле ASP.NET MVC реализует современный вариант MVC паттерна, который особенно хорошо подходит для веб приложений. Платформа ASP.NET MVC предлагает следующие преимущества:

  • упрощенное управление сложностями за счет разделения приложения на уровни модели, представления и контроллера;
  • отсутствие состояний просмотра или серверных форм, идеальное соответствие требованиям разработчиков, заинтересованных в полном контроле над поведением приложения;
  • использование модели контроллера переднего плана, в которой все запросы веб-приложения обрабатываются одним контроллером, возможность разработки приложений, поддерживающих полнофункциональную инфраструктуру маршрутизации;
  • более эффективная поддержка разработки на основе результатов тестирования;
  • высокая эффективность для веб-приложений, поддерживающихся крупными группами разработчиков и веб-дизайнеров, которым требуется высокий уровень контроля над поведением приложения [8].

Страницы, сгенерированные ASP.NET MVC, не содержат никаких данных View State, поэтому они могут быть в сотни килобайт меньше, чем обычные страницы, созданные при помощи ASP.NET Web Forms. Несмотря на современную широкополосную связь и быстрые подключения, эта экономия пропускной способности до сих пор чрезвычайно притягательна для конечных пользователей [9].

В качестве СУБД была выбрана SQL Server 2016, которая является не только быстрой и удобной в обращении, но и надежной.

SQL Server 2016 предоставляет графические инструменты, необходимые для проектирования, разработки, развертывания и администрирования реляционных баз данных, аналитических объектов, пакетов преобразования данных, топологий репликации, отчетов, серверов отчетов и серверов уведомлений. Кроме того, SQL Server 2016 включает программы командной строки, позволяющие выполнять из командной строки задачи администрирования. Основным инструментом администратора для взаимодействия с системой является среда управления SQL Server Management Studio.

SQL Server 2016 работает значительно быстрее прежних версий: на том же оборудовании запросы выполняются примерно на 25% быстрее, а при использовании некоторых новых средств SQL Server 2016 с обработкой в памяти выигрыш достигает 30 раз для OLTP-транзакций и 100 раз для запросов (данные Microsoft).

Разрабатываемое приложение является веб приложением «Сервер виртуальной поликлиники». Сайт обеспечивает простоту работу с данными, которые содержаться в базе данных. Приложение позволяет осуществлять добавление, редактирование, удаление, группировки, поиска разнообразной информации, а также служит средством ее просмотра и отображения. Для осуществления всех этих возможностей приложение было разработано в виде Web-приложения используя Framework ASP.NET MVC.

Данное приложение будет иметь модульную структуру с возможностью дальнейшего расширения и модификации. Следовательно, данная система в дальнейшем легка как для сопровождения, так и для расширения. Разрабатываемое программное обеспечение представляет собой трехуровневую архитектуру, в которой можно выделить 3 слоя:

  • уровень представления;
  • уровень бизнес-логики;
  • уровень доступа к данным.

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

Уровень доступа к данным, используется для взаимодействия с базой данных. Для работы с базой данных используется ORM (Object-relationalmapping - Объектно-реляционное отображение) Entity Framework. ADO.NET Entity Framewor объектно-ориентированная технология доступа к данным, является object-relational mapping (ORM) решением для .NET Framework от Microsoft. Предоставляет возможность взаимодействия с объектами как посредством LINQ в виде LINQ to Entities, так и с использованием Entity SQL. Для облегчения построения web-решений используется как ADO.NET Data Services, так и связка из Windows Communication Foundation и Windows Presentation Foundation, позволяющая строить многоуровневые приложения, реализуя один из шаблонов проектирования MVCMVP или MVVM.

Имеется три подхода к работе с данными в Entity Framework: Database FirstModel First, и Code First. Для реализации уровня доступа к данным был выбран подход Code First, т.к. он минимизирует работу с базой данных тем самым помогая сосредоточиться на разработке бизнес-логики приложения.

Подход Code First позволяет вне зависимости от наличия базы данных вручную написать код классов и свойств, соответствующих сущностям в базе и использовать этот код с Entity Framework без использования файла модели данных.

API доступа к данным, разработанное для Code First, основано на классе DbContext. API может быть использован также и в процессе разработки с подходами Database First и Model First.

 

Рисунок 5.1 – Диаграмма классов

 

При помощи Package Manager Console были установлены основные пакеты для работы, такие как Microsoft.AspNet.Mvc, Ninject, Moq, EntityFramework, Bootstrap, FontAwesome, JSON, jQuery.Unobtrusive.Validation и другие.

Так как было выбрано использование и Code First, то вначале были созданы классы на языке C#, которые обычно представляют одну таблицу базы данных. Данные классы ничем не отличаются от стандартных классов описываем при разработке приложений. Диаграмма созданных классов показаны ниже на рисунке 5.1.

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

Следующим этапом разработки является создание класса EFDbContext контекста базы данных. Класс контекста базы данных должен быть унаследован от стандартного класса Entity Framework – DbContext и созданного интерфейса IDbContext. Данные классы предоставляет EntityFramework для описания собственных классов управления базой данных. В классе контекста описываются все таблицы базы данных, действия по таблицам и связи таблицей между собой. Имя свойства указывает таблицу, а параметр типа результата DbSet – тип модели, который инфраструктура Entity Framework должна использовать для представления строк в этой таблице.

Чтобы предоставить классам бизнес-логики удобный доступ к данным просто через методы. Было решено создать сервисы для работы с объектами. Был создан базовый сервис интерфейс

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

Все основные операции были описаны в классе GenericService<T>, который представляет необходимое хранилище. Он реализует интерфейс IService<T> и использует экземпляр IdbContext для извлечения данных из базы посредством Entity Framework.

При разработке приложения использовалась система ASP.NET Identit. Для взаимодействия с базой данных в Microsoft.AspNet.Identity.EntityFramework определен класс IdentityDbContext. Это обычный контекст данных, производный от DbContext, который уже содержит свойства, необходимые для управления пользователями и ролями: свойства Users и Roles.

Непосредственное управление пользователями осуществляется с помощью класса UserManager<T>, которое находится в пространстве имен Microsoft.AspNet.Identity. Для управления ролями в ASP.NET Identity имеется класс RoleManager<T>, где T представляет реализацию интерфейса IRole.

 

5.2 Диаграммы последовательностей

 

Рисунок 5.2 – Диаграмма последовательности для варианта использования «Аутентификация»

 

На рисунке 5.2 приведена диаграмма последовательности с иллюстрацией сообщений для варианта использования «Аутентификация».

На рисунке 5.3 приведена диаграмма последовательности с иллюстрацией сообщений для варианта использования «Работа с докторами поликлиники»:

 

Рисунок 5.3 – Диаграмма последовательности для варианта использования «Работа с докторами поликлиники»

 

На рисунке 5.4 приведена диаграмма последовательности с иллюстрацией сообщений для варианта использования «Работа с графиком работы».

 

 

Рисунок 5.4 – Диаграмма последовательности для варианта использования «Работа с графиком работы доктора»

 

На рисунке 5.5 приведена диаграмма последовательности с иллюстрацией сообщений для варианта использования «Просмотр информации о графике работы выбранного доктора».

 

Рисунок 5.5 – Диаграмма последовательности для варианта использования «Просмотр информации о графике работы выбранного доктора»

 

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться