Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Report.docx
Скачиваний:
7
Добавлен:
25.11.2018
Размер:
408.34 Кб
Скачать
    1. Выбор инструментальных средств

Разработка приложения велась в интегрированной среде разработки Microsoft Visual Studio 2010. Эта IDE предоставляет одинаково удобные возможности как для работы с исходным кодом (C# и ASP.NET-разметкой), так и для управления базами данных.

Для контроля версий использовалась свободно-распространяемая распределенная система управления версий Git.

    1. Функциональная схема по

При разработке использовались следующие технологии:

  • ASP.NET MVC 2. Наиболее распространенная на момент начала разработки версия фреймворка от

  • ORM (Object-Relations Mapping). Система ORM, в данном случае, EntityFramework 4.1, позволяют программисту реализовывать один высокоуровневый и обобщенный интерфейс к БД, не имея необходимости писать и править SQL-запросы для каждой конкретной СУБД. Таким образом понижается уровень зависимости бизнес-логики от реализации хранения данных конкретной СУБД.

  • Code-first. Одна из 3 доступных методологий разработки на EF (наравне с Model-first, Database-First, Code-First), где разработка начинается с описания классов-сущностей схемы БД и отношений между ними с помощью кода на любом языке платформы .NET.

ПО представляет собой клиент-серверное приложение, где клиентом является веб-браузер, а в роли сервера выступает IIS.

Схема функционирования ПО приведена на рис.3.

Рис. 3 Схема взаимодействия компонентов приложения

    1. Описание классов по

      1. Классы уровня доступа к данным

  • IAccessPoint – интерфейс, описывающий базу данных приложения. Определяет таблицы, используя системный интерфейс IDbSet<T>, а также метод для сохранения изменений в БД.

  • DbAccessPoint – класс, реализующий интерфейс IAccessPoint, и наследующий системный класс Entity Framework DbContext; в его задачи входит обеспечение доступа к БД и управление процессом создания базы данных.

    • Внутренний метод OnModelCreating управляет созданием отношения один-ко-многим «Проекты – программисты (команда проекта)».

  • Класс InMemoryDbSet<T> - реализует интерфейс IDbSet<T> и определяет дополнительные методы и свойства для работы с набором данных внутри памяти, без обращения к реальной физической базе данных. Этот класс используется для юнит-тестирования.

  • Класс NewDatabaseInitializer<T>, расширяет стандартную стратегию пересоздания БД DropCreateDatabaseIfModelChanges<T> в случае несоответствия схемы DbContext и существующей структуры базы данных. В новой стратегии физическое удаление базы данных не происходит, а лишь удаляются все объекты БД.

  • Остальные классы – Project, Task, Role, User, ProjectStatus, используются для отражения соответствующих таблиц БД на объекты .NET Framework системой Entity Framework.

      1. Классы-контроллеры

В MVC весь процесс пользовательского ввода-вывода контролируется контроллерами. Соответственно, они занимают наиболее важное место в данном приложении. Контроллеры обращаются к объектам доступа к данным и используют представления для формирования ответа клиенту.

  • AccountController. Управляет редактированием пользовательских данных, изменением ролей, регистрацией и авторизацией пользователей.

  • ErrorController. Служебный класс, использующийся для отображения пользователю ошибок приложения.

  • HomeController. Выводит домашнюю страницу пользователей и обрабатывает запросы неавторизованных пользователей.

  • ProjectController. Управляет всем, связанным с проектами – создание, редактирование информации, удаление, изменение команды проекта, а так же контролирует доступ пользователей в зависимости от ролей и принадлежности к командам.

  • TaskController. Управляет всем, связанным с заданиями – создание, редактирование информации, удаление, назначение ответственного разработчика, а так же контролирует доступ пользователей в зависимости от ролей и принадлежности к командам.

Методы классов-контроллеров обрабатывают поступающие пользовательские запросы в соответствии с настройками роутинга на уровне приложения. Эти настройки определены в файле Global.asax

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]