## Тема: «Разработка программного обеспечения на языке C#» Общие требования к программному обеспечению для разработки **технического задания:** 1. В качестве базы спроектируйте WPF-приложение с использованием паттерна MVVM (Model-View-ViewModel) и/или использованием Фреймворка Prism 2. Придерживайтесь принципам SOLID (single responsibility, open–closed, Liskov substitution, interface segregation и dependency inversion) и DRY (don’t repeat yourself - не повторяй себя) 3. Избегайте наследования там, где его можно заменить ассоциацией. Особое внимание уделяйте классам «Моделям» и классам «Сервисам» 4. Избегайте написание кода в code-behind (файл отдаленного кода - `*.xaml.cs`) 5. Выделяйте стили и темы оформления элементов пользовательского интерфейса в отдельные словари ресурсов 6. Реализуйте файловый ввод/вывод данных 7. Предусмотрите обработку различных исключительных ситуаций 8. Работа всех функций должна быть проверена и результаты проверки оформлены протоколом тестирования Примерное содержание работ в процессе выполнения курсовой работы: 1. Выбор и описание предметной области 2. Обзор основных частей Фреймворка Prism: - MVVM - Модули - Внедрение зависимостей (Unity или MEF) - Навигация - Интеграция с XAML 3. Разработка WPF-приложения: - Разработка диаграммы классов и диаграммы пакетов с учетом инверсии управления (IoC) - Построение оболочки с пользовательским интерфейсом и описанием регионов (представления) - Проектирование независимых модулей (модели и модели-представления) - Разработка бизнес логики приложения - Навигация и обмен между частями модулей - Тестирование. 4. Разработка руководства пользователя 5. Демонстрация и защита проекта 6. Приложения: 1) ТЗ 2) Руководство пользователя 3) Исходный код