Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/flexberry/flexberrystudy2015

Accomplished tasks for "Enterprise development" course.
https://github.com/flexberry/flexberrystudy2015

Last synced: about 1 month ago
JSON representation

Accomplished tasks for "Enterprise development" course.

Awesome Lists containing this project

README

        

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

## Видео с занятий
Записанные видео с занятий по курсу можно посмотреть на канале [FlexberryPLATFORM](http://www.youtube.com/user/FlexberryPLATFORM) на YouTube: [Плейлист c занятиями](http://www.youtube.com/playlist?list=PLlhqsC7hBaSdmDSFBfFFRJuDpkTRp_h9P)

## Презентации с занятий
Ссылки на презентации с занятий, а также инструкции по просмотру находятся в файле: [PRESENTATIONS.md](https://github.com/Flexberry/FlexberryStudy2015/blob/master/PRESENTATIONS.md)

## Номера вариантов для участников курса
Распределение по вариантам участников курса находится в файле: [TaskVariants.txt](https://github.com/Flexberry/FlexberryStudy2015/blob/master/TaskVariants.txt)

## Правила выполнения и сдачи заданий
Правила выполнения и сдачи заданий приведены в файле: [CONTRIBUTING.md](https://github.com/Flexberry/FlexberryStudy2015/blob/master/CONTRIBUTING.md)

## Описния предметных областей для заданий
Описания предметных областей, на основании которых разрабатывается модель предметной области, а также последующая генерация и доработка приложения, находятся в файле: [DomainVariants.txt](https://github.com/Flexberry/FlexberryStudy2015/blob/master/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](https://github.com/Flexberry/FlexberryStudy2015/blob/master/DomainVariants.txt)

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

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

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

Перечень запросов по вариантам приведен в файле: [QueriesVariants.txt](https://github.com/Flexberry/FlexberryStudy2015/blob/master/QueriesVariants.txt)

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

### Задание №4
Срок: 16.11.2015

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

Варианты заданий по реализации прикладной логики приведены в файле: [BusinessLogicVariants.md](https://github.com/Flexberry/FlexberryStudy2015/blob/master/BusinessLogicVariants.md)

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

### Задание №5
Срок: 16.11.2015

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

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

### Задание №6
Срок: 23.11.2015

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

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