Задание
В рамках выполнения практической части курса вами будет разработан сквозной пример: приложение «Электронный учет объектов теплопотребления» (модуль ИС для тепловых инспекторов).
Первая часть практического задания будет посвящена освоению базовых технологий, таких как C#, базы данных, клиентские технологии и т.п., вторая часть будет включать изучение возможностей платформы Flexberry для эффективного создания приложений.
Общее описание предметной области
Требуется создать отдельный модуль приложения для тепловых инспекторов. Данный модуль должен покрывать потребность в учете объектов теплопотребления и их участков сети. Известно, что объекты теплопотребления находятся в зданиях, которые в свою очередь прикреплены к какому-нибудь сетевому району. Каждый объект теплопотребления оформлен на какого-либо потребителя, а также может иметь наружные или внутренние участки сети. Информация об объектах и их участках фиксируется в приложении.
Технические требования:
- Приложение реализуется в виде ASP.NET WebForms-приложения.
- Данные хранятся в БД MSSQL Server.
Практическое задание №1 - Серверная разработка (C#, .NET, ASP.NET)
Для реализации потребуется:
- Microsoft Visual Studio 2015
- Git for Windows
Задание. Часть 1.
Требуется реализовать 2 алгоритма генерации уникального цифро-буквенного кода для QR-кода объекта теплопотребления, исходя из следующих входных данных:
- наименование объекта,
- дата регистрации (валидная дата),
- лицевой счет потребителя (только целые числа).
Алгоритмы формирования данного кода нужно придумать самостоятельно. Тип алгоритма должен содержаться в этом самом коде. Длина цифро-буквенного кода не должна превышать 18 символов. Код должен быть построен таким образом, что по нему должна быть реализована потенциальная возможность вычислить конкретный объект теплопотребления (из известного списка), не храня соответствия между объектом и кодом. Примеры цифро-буквенного кода: 2017-01-01-ШШШШПВ
; А665Б44В121212
. К алгоритму следует в комментарии приложить описание выбранного варианта работы алгоритма, т.к. допустимы различные варианты формирования данного цифро-буквенного кода.
Реализацию следует сделать в виде .net-библиотеки и подготовить модульные тесты для неё, продемонстрировать процент покрытия кода модульными тестами (чем больше, тем лучше).
Задание. Часть 2.
Реализовать простое ASP.NET WebForms-приложение (на данном этапе без БД), которое содержит компоненты (ascx-контролы), реализующиие:
- Логику ввода поискового запроса цифро-буквенного кода и использование библиотеки из предыдущего пункта для выдачи информации о найденном объекте теплопотребления (поле для ввода значения, кнопка, блок с отображением результатов).
- Логику получения цифро-буквенного кода для указанной информации о наименовании объекта, его даты регистрации, лицевого счета потребителя (поля для ввода значений, кнопка, блок с отображением результатов).
Предоставление результатов выполнения работы на проверку
Реализованное решение (Visual Studio Solution) полностью разместить в репозитории на GitHub (решение должно компилироваться и запускаться). Ссылку на репозиторий предоставить преподавателям курса.
Практическое задание №2 - Клиентская разработка (HTML, CSS, JS, jQuery)
Для реализации потребуется:
- Редактор кода для клиентской разработки: Visual Studio Code, Atom, Sublime Text и т.п.
- Git for Windows
Задание
С использованием возможностей HTML, CSS, JS, jQuery сверстать форму, на которой будет схема расположения участков сети относительно объекта теплопотребления. Участки можно перемещать внутрь объекта теплопотребления, тогда они автоматически становятся внутренними, и вне объекта (соответственно - внешние). На блоке участка сети должен быть выведен его номер и тип изоляции, а сам блок окрашен в цвет, соответствующий виду прокладки трубопровода (надземная, подземная, по подвалу). При нажатии на участок сети всплывает форма, на которой можно указать год прокладки трубопровода, тип изоляции и вид прокладки трубопровода. На форме также должен быть блок с информацией об объекте теплопотребления, потребителе и здании, в котором он располагается.
Предоставление результатов
Реализованный проект разместить в репозитории на GitHub в виде встроенных страниц GitHub Pages, позволяющих просматривать готовый результат. Ссылку на репозиторий и опубликованный таким образом проект предоставить преподавателям курса.
Практическое задание №3 - Базы данных
Для реализации потребуется:
- Microsoft SQL Server
- Microsoft SQL Server Management Studio
- Git for Windows
Задание
Для указанной предметной области реализовать базу данных, заполнить базу скриптами (минимум по 5 записей на таблицу). Реализовать скрипты по созданию констрейнтов, индексов. Приложить скрипты создания БД и заполнения, бакап БД.
Подготовить SQL-скрипты для получения следующей информации:
- Вывести список сетевых районов, отсортированный по количеству объектов теплопотребления в них.
- Вывести топ N объектов теплопотребления с наибольшим количеством участков сети.
- Вывести потребителей (контрагентов), у объектов которых больше всего внутренних участков сети.
- Вывести рейтинг типов изоляций участков сети по сетевым районам.
- Вывести информацию о 5 зданиях, в которых больше всего объектов теплопотребления с наружными участками сети.
Предоставление результатов
Реализованные скрипты закоммитить в GitHub-репозиторий. Ссылку на репозиторий предоставить преподавателям курса.
Практическое задание №4 - Проектирование ИС
Для реализации потребуется:
- Flexberry Designer
Задание
Нарисовать UML-диаграммы для обозначенной предметной области. Состав диаграмм определяется самим слушателем курсов, но должен обеспечивать полноценное описание предметной области.
Предоставление результатов
Результатом работы является выгруженная в формате CRP стадия из Flexberry Designer. Стадию (файл с расширением *.CRP) следует закоммитить в репозиторий на GitHub, ссылку предоставить преподавателям курса.
Практическое задание №5 - Объектный дизайн и генерация приложений
Для реализации потребуется:
- Flexberry Designer
- Microsoft Visual Studio 2015
- Microsoft SQL Server
- Git for Windows
Задание
Выполнить объектный дизайн и генерацию ASP.NET-приложения для описанной предметной области. В качестве основы использовать реализованные ранее UML-модели. Генерация приложения и БД должна быть выполнена средствами Flexberry Designer приложение должно соответствовать требованиям и быть полностью работоспособным. Представления должны быть качественно настроены, подписи к классам и атрибутам на формах должны быть адекватными. Перечень форм и атрибутивный состав должны соответствовать предметной области и покрывать все требуемые бизнес-функции.
Предоставление результатов
Сгенерированное приложение и скрипты создания БД следует выложить в репозиторий на GitHub. Предоставить преподавателям ссылку на репозиторий.
Практическое задание №6 - Разработка бизнес-логики приложений
Для реализации потребуется:
- Flexberry Designer
- Microsoft Visual Studio 2015
- Microsoft SQL Server
- Git for Windows
Задание
В сгенерированном при помощи Flexberry Designer приложении требуется реализовать следующую бизнес-логику.
- Реализовать бизнес-сервер, который будет использовать .net-библиотеку для проставления буквенно-цифрового кода для QR-кода объекта теплопотребления.
- Реализовать бизнес-сервер, который будет проверять, что в объекте теплопотребления не завели дубли участков, т.е. нет совпадения по номеру и типу сети.
- Добавить хранимое поле в класс здания, которое будет содержать сумму площадей объектов теплопотребления в данном здании. Перевычисление этого поля реализовать в бизнес-сервере.
- Добавить не хранимое поле в класс участка сети, которое будет составлять строку, содержащую адрес здания, наименование объекта теплопотребления, номер участка и его тип изоляции.
Предоставление результатов
Доработанная бизнес-логика должна быть включена в разрабатываемое приложение и закоммичена в соответствующий репозиторий. Ссылка на репозиторий предоставляется для проверки преподавателям курса.
Практическое задание №7 - Разработка UI-логики приложения
Для реализации потребуется:
- Microsoft Visual Studio 2015
- Microsoft SQL Server
- Редактор кода для клиентской разработки: Visual Studio Code, Atom, Sublime Text и т.п.
- Git for Windows
Задание
Привязать реализованные ранее ascx-компоненты для работы с цифро-буквенными кодами к данным из БД.
Реализовать интеграцию формы для схемы расположения участков сети объекта теплопотребления с бизнес-логикой приложения. На форме для элементов управления с выбором должны браться из БД (через ORM и Lookup). Перетаскивание участков и их изменение также должно работать с сохранением в БД.
Требуется настроить красивый внешний вид для всех форм приложения. Улучшить визуальную тему оформления. Реализовать ярлыки на рабочем столе приложения для быстрого доступа к часто используемым функциям.
Реализовать дополнительные формы, которые будут выводить результаты выполнения запросов из задания по БД.
Предоставление результатов
Доработанная UI-логика должна быть включена в разрабатываемое приложение и закоммичена в соответствующий репозиторий. Ссылка на репозиторий предоставляется для проверки преподавателям курса.
Практическое задание №8 - Функциональные подсистемы Flexberry
Для реализации потребуется:
- Flexberry Designer
- Microsoft Visual Studio 2015
- Microsoft SQL Server
- Git for Windows
Задание
Для реализованного приложения настроить подсистему полномочий. Пользователи должны заводиться администратором приложения. Авторизация на основе форм. Создать иерархию ролей (Администратор, Старший инспектор, Инспектор). Инспектор имеет полные права на участки сети, старший инспектор имеет полные права менять объект теплопотребления и его детейлы. Администратор имеет права менять все данные. Настроить несколько ролей и назначить эти роли пользователям.
Настроить подсистему аудита. В разрабатываемом приложении все изменения объектов данных должно фиксироваться в подсистеме аудита. В навигационное меню следует добавить формы аудита, которые должны показываться только администраторам.
Предоставление результатов
Доработанное приложение должно быть закоммичено в соответствующий репозиторий. Дополнительно в репозиторий должны быть добавлены SQL-скрипты, которые нужно выполнить для функционирования приложения с подсистемой полномочий и аудита. Ссылка на репозиторий предоставляется для проверки преподавателям курса.