Skip to content

Flexberry/FlexberryStudy2015

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FlexberryStudy2015

Выполненные задания по курсу "Разработка Enterprise-приложений"

Видео с занятий

Записанные видео с занятий по курсу можно посмотреть на канале FlexberryPLATFORM на YouTube: Плейлист c занятиями

Презентации с занятий

Ссылки на презентации с занятий, а также инструкции по просмотру находятся в файле: PRESENTATIONS.md

Номера вариантов для участников курса

Распределение по вариантам участников курса находится в файле: TaskVariants.txt

Правила выполнения и сдачи заданий

Правила выполнения и сдачи заданий приведены в файле: CONTRIBUTING.md

Описния предметных областей для заданий

Описания предметных областей, на основании которых разрабатывается модель предметной области, а также последующая генерация и доработка приложения, находятся в файле: DomainVariants.txt

Задания

На протяжении курса будут даваться задания, связанные с проектированием, генерацией и последующей доработкой веб-приложения с использованием инструментов платформы Flexberry и платформы Microsoft .NET. При этом каждое задание будет охватывать один из этапов или одну из частей работ, которые необходимо выполнять на проекте по разработке корпоративного приложения, в котором используются перечисленные инструменты.

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

Задание №1

Срок: 19.10.2015 и 21.10.2015 для каждой из групп соответственно

Выполнить лабораторные работы №№1-3: https://yadi.sk/d/PeXA0BVZjince

Задание №2

Срок: 19.10.2015 и 21.10.2015 для каждой из групп соответственно

Создать модель предметной области при помощи Flexberry Designer, сгенгенерировать веб-приложение, доработать клиентскую часть сгенерированного веб-приложения.

Описания предметных областей по вариантам приведены в файле: DomainVariants.txt

  1. Построить модель предметной области с использованием Flexberry Designer (обязательно)
  2. Сгенерировать веб-приложение (обязательно)
  3. Выполнить доработку клиентской части (минимум для двух тем - обязательно):
  • Логитип и название системы (обязательно)
  • Добавить иконки для пунктов иерархического меню (обязательно)
  • Любые "красивости" на ваше усмотрение (не обязательно)
  1. Выполнить доработку рабочего стола главной страницы по своему усмотрению (обязательно)
  2. Продемонстрирвать умение использовать скрипты (не обязательно):
  • Например, добавить любые эффекты анимации с использованием jQuery
  • Подключить готовый плагин jQuery и использовать его функционал на какой-либо странице

Задание №3

Срок: 26.10.2015 и 28.10.2015 для каждой из групп соответственно

Добавить страницы с запросами для веб-приложения, полученного в результате выполнения задания №2.

Перечень запросов по вариантам приведен в файле: QueriesVariants.txt

  1. Проанализировать запросы и при необходимости внести исправления в модель предметной области на диаграммах классов - добавить необходимые атрибуты/классы/связи. В случае внесения изменений в модель предметной области исправить соответствующие представления у классов, при необходимости также выполнить повторное создание прототипа приложения (если были добавлены новые классы; перед этим необходимо удалить сгенерированную ранее диаграмму классов с прототипом приложения и все представления из всех классов предметной области). Если были внесены изменения в модель предметной области, необходимо также выполнить повторную генерацию всех проектов решения (обязательно).
  2. Создать страницы для выполнения запросов - по одной странице на запрос. Страницы добавить с использованием Flexberry Designer - на диаграмме классов с прототипом приложения добавить пользовательские (пустые) формы со стереотипом "userform", настроить контейнеры веб-приложения (меню), после чего выполнить повторную генерацию проекта с формами для веб-приложения (обязательно).
  3. В исходном коде сгенерированных форм для запросов разместить необходимые разметку и компоненты, а также написать соответствующие LINQ-запросы (либо функции ограничения) с использованием сервиса данных и LINQ-провайдера Flexberry ORM. Для отображения результатов запроса можно использовать любую разметку и компоненты (для отображения списка объектов, как вариант, можно использовать компонент WebObjectListView) (обязательно).

Задание №4

Срок: 16.11.2015

Добавить реализацию визуальной логики и бизнес-логики для веб-приложения, полученного в результате выполнения задания №3.

Варианты заданий по реализации прикладной логики приведены в файле: BusinessLogicVariants.md

  1. Добавить валидацию вводимых пользователем данных на формах редактирования: выполнить проверку на реалистичность вводимых значений (например, неотрицательные цена и количество и т.п.) Для валидации данных использовать (способ(ы) выбрать самостоятельно) (обязательно):
  • Валидаторы ASP.NET
  • Валидация с использованием специализированных плагинов jQuery
  • Валидация с использованием бизнес-серверов
  1. Рализовать прикладную логику веб-приложения согласно заданиям по вариантам. При необходимости добавить нужные изменения в модель предметной области и выполнить перегенерацию приложения (обязательно, постараться сделать максимум пунктов в своем варианте).
  2. Добавить запись в лог информации обо всех исключениях или ошибках, которые инициируются в созданном серверном коде, при помощи Flexberry LogService. Тип (категорию) ошибок при записи в лог определить самостоятельно. Запись сообщений, которые попадают в лог, должна производиться как в базу данных веб-приложения, так и в лог-файл (обязательно).

Задание №5

Срок: 16.11.2015

Включить и настроить подсистемы полномочий и аудита для веб-приложения, полученного в результате выполнения задания №4.

  1. Настроить подсистему полномочий для веб-приложения (обязательно):
  • Установить AccessType во Flexberry Designer для всех классов предметной области, выполнить перегенерацию и перекомпиляцию объектов данных и веб-приложения
  • Выполнить создание полномочий при помощи Flexberry Designer (генерацию необходимых таблиц и записей в базу данных)
  • Добавить как минимум одного пользователя помимо администратора, назначить ему права на объекты данных предметной области (решение по количеству пользователей, использованию ролей и назначению прав на конкретные объекты данных принять самостоятельно)
  • Настроить процесс авторизации для созданных пользователей и ролей, а также вид иерархического меню в файлах Web.config и Web.sitemap
  • Добавить код для всех списковых форм, который будет на основании имеющихся у текущего пользователя полномочий отключать отображение кнопок с соответствующими операциями у WebObjectListView (например, если у текущего пользователя нет прав на добавление объектов данных, кнопки для добавления объектов данных на списковой форме показываться не должны и т.п.)
  1. Включить подсистему аудита для веб-приложения (обязательно):
  • Создать необходимые таблицы для подсистемы аудита, включить аудит для всех классов данных из Flexberry Designer, привести базу данных в соответствие с измененной моделью, выполнить перегенерацию и перекомпиляцию объектов данных и приложения
  • Выполнить (проверить) небоходимые для работы подсистемы аудита настройки в файле Web.config
  • Добавить код для инициализации подсистемы аудита в веб-приложение
  • Добавить в иерархическое меню технологические формы для просмотра операций аудита, сделать эти формы доступными только для администратора

Задание №6

Срок: 23.11.2015

Написать модульные, интеграционные и автоматизированные системные тесты для веб-приложения, полученного в результате выполнения задания №5.

  1. Написать модульные тесты для бизнес-серверов с использованием тестового фреймворка MSTest (обязательно 3 теста, хотя бы один из них должен проверять выбрасываемое исключение на валидацию данных):
  • Тесты написать для тех сценариев работы бизнес-серверов, которые не вызывают метод UpdateObject/UpdateObjects сервиса данных, а также не предполагают инициирования вызовов других бизнес-серверов
  • Экземпляр бизнес-сервера необходимо создать в тесте вручную
  • Результатом теста должно быть либо сравнение ожидаемых значений свойств изменяемого в бизнес-сервере объекта данных с их фактическими значениями, либо ожидание выброшенного исключения определенного типа
  1. Написать модульные тесты для JavaScript-кода с использованием тестового фреймворка QUnit и mock-библиотеки Sinon.JS (обязательно 1 тест):
  • Написать тесты для вызовов веб-сервиса или вычислений на стороне клиента, которые было необходимо реализовать в рамках выполнения задания №4
  • В случае тестирования вызовов веб-сервиса с использованием AJAX, необходимо использовать фейковый сервер Sinon.JS для возврата ожидаемых со стороны сервера данных
  1. Написать интеграционные тесты для бизнес-серверов с использованием тестового фреймворка MSTest (необязательно):
  • Тесты написать для тех сценариев работы бизнес-серверов, которые предполагают каскадное удаление данных
  • В данных тестах изолировать бизнес-сервер не требуется, должна использоваться рабочая инстанция сервиса данных
  • Необходимо сделать копию базы данных (например, сгенерировать из Flexberry Designer) для использования в тестах и заполнить ее тестовыми данными
  • При создании экземпляра бизнес-сервера в тесте необходимо передать ему инстанцию сервиса данных, которая создана на основе информации из конфигурационного файла
  • В тесте необходимо предусмотреть добавление необходимых тестовых данных в базу данных или приведение существующих данных в базе данных в нужное состояние (можно использовать, например, методы с атрибутами TestInitializeAttribute и TestCleanupAttribute)
  • После выполнения каскадного обновления необходимо прочитать требуемые данные из базы данных и сравнить фактическое состояние прочитанных объектов данных с ожидаемым
  1. Написать автоматизированные системные тесты с использованием Selenium WebDriver (обязательно 3 теста):
  • Сценарии тестирования веб-приложения можно выбрать произвольно
  • Вызовы Selenium WebDriver необходимо использовать внутри модульных тестов MSTest на основе фреймворка MSTest