Репозиторий спецкурса ".NET технологии" для магистрантов специальности "Веб-программирование и интернет-технологии" (срок обучения - 1 год, 1.5 года, 2 года, 2.5 года, очное и заочное), отчетность - экзамен (1 год, 1.5 года) и зачет (2 года, 2.5 года).
Экзамен (1 год, 1.5 года): 20.12.2017 - 11.15, БГУ, аудитория 120.
Зачет (2 года, 2.5 года): январь 2018 год (дата будет уточнена после 03.01.2018).
Форма отчетности по спецкурсу: выполнение лабораторных работ.
Требования к лабораторным работам
- Задание выполняется c использованием в Visual Studio.
- Логика решения задачи помещается в проект типа Class Library.
- Тестирование решенной задачи выполняется с использованием тестовых фреймворков Microsoft Unit Testing Framework или NUnit.
- Выполненные задания выкладываются на github не позднее указанного срока и сдаются в форме устной защиты во время занятия.
- Выслать на электронный адрес anzhelika.kravchuk@gmail.com письмо с указанием своего github-acc.
Лабораторная работа 1
Последний срок сохранения изменений на github.com: 24.00, 05.10.17.
Срок защиты лабораторной работы: 06.10.17.
Теория:
Задача:
Разработать обобщенный класс-коллекцию BinarySearchTree (бинарное дерево поиска). Предусмотреть возможности использования подключаемого интерфейса для реализации отношения порядка. Реализовать три способа обхода дерева: прямой (preorder), поперечный (inorder), обратный (postorder): для реализации использовать блок-итератор (yield). Разработать unit-тесты. Для тестирования использовать следующие типы:
- System.Int32 (использовать сравнение по умолчанию и подключаемый компаратор);
- System.String (использовать сравнение по умолчанию и подключаемый компаратор);
- пользовательский класс Student (информация о студенте содержит поля, хранящие имя и фамилию студента, название теста, дату прохождения теста и полученную студнтом за тест оценку), для объектов которого реализовано отношения порядка (использовать сравнение по умолчанию и подключаемый компаратор);
- пользовательскую структуру Point, для объектов которого не реализовано отношения порядка (использовать подключаемый компаратор).
Лабораторная работа 2
Последний срок сохранения изменений на github.com: 24.00, 12.10.12.
Срок защиты лабораторной работы: 13.10.17.
Теория:
Задача:
Разработать консольное приложениие, использующее запросы LINQ для получения и отображения данных. Данные хранятся в двоичных файлах и представляют собой информацию о результатах прохождения студентами тестов. Информация о студенте содержит поля, хранящие имя и фамилию студента, название теста, дату прохождения теста и полученную студнтом за тест оценку. Для работы с данными информация считывается в двоичное дерево. Предусмотреть возможность определения пользователем критериев для просмотра данных. Расширить возможности работы с приложением таким образом, чтобы пользователи могли указать последовательность сортировки и ограничить количество извлекаемых строк. При разработке приложения использовать подход, учитывающий возможность изменении источника хранения данных и пользовательского интерфеса.
Лабораторная работа 3
Последний срок сохранения изменений на github.com: 24.00, 19.10.12.
Срок защиты лабораторной работы: 20.10.17.
Теория:
Задача:
Изменить пользовательский интерфейс приложения из Лабораторной работы 2, используя технологию WPF.
Лабораторная работа 4
Последний срок сохранения изменений на github.com: 24.00, 02.11.17.
Срок защиты лабораторной работы: 03.11.17.
Теория:
https://github.com/EPM-RD-NETLAB/.NET-Framework-modules/tree/master/M14.%20XML%20Technologies
Задача:
https://github.com/EPM-RD-NETLAB/.NET-Framework-modules/tree/master/M14.%20XML%20Technologies
Лабораторная работа 5
Последний срок сохранения изменений на github.com: 24.00, 10.11.17.
Срок защиты лабораторной работы: 17.11.17.
Задача:
Описать класс светофор для системы управления различными светофорами, соответствующий принципам ООП и SOLID.
Лабораторная работа 6
Последний срок сохранения изменений на github.com: 24.00, 30.11.17.
Срок защиты лабораторной работы: 01.12.17.
Теория:
- http://www.entityframeworktutorial.net/
- https://www.asp.net/mvc/overview
- https://github.com/EPM-RD-NETLAB/ASP.NET.MVC
Задача:
Разработать систему типов для описания работы с банковским счетом. Состояние счета определяется его номером, данными о владельце счета, суммой на счете и некоторыми бонусными баллами, которые увеличиваются/уменьшаются каждый раз при пополнении счета/списании со счета на величины различные для пополнения и списания и рассчитываемые в зависимости от некоторых значений величин «стоимости» баланса и «стоимости» пополнения. Величины «стоимости» баланса и «стоимости» пополнения являются целочисленными значениями и зависят от типа счета, который может быть, например, Base, Gold, Platinum и т.п.
Для работы со счетом реализовать только следующие возможности:
- выполнить пополнение на счет;
- выполнить списание со счета;
- создать новый счет;
- закрыть счет.
При проектировании типов учитывать следующие возможности расширения/изменения функциональности
- добавление новых видов счетов;
- изменение/добавление источников хранения информации о счетах;
- изменение логики расчета бонусных баллов;
- изменении логики генерации номера счета.
Работу классов продемонстрировать на примере простейшего ASP.NET MVC приложения. Данные о счетах хранить в базе данных.