Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/flexberry/flexberrystudy2015
- Owner: Flexberry
- License: mit
- Created: 2015-10-12T09:56:47.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2015-11-25T19:44:31.000Z (about 9 years ago)
- Last Synced: 2023-03-30T14:33:53.230Z (over 1 year ago)
- Language: CSS
- Homepage: http://flexberry.ru/FlexberryStudy2015.aspx
- Size: 0 Bytes
- Stars: 0
- Watchers: 24
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
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