#11 C# WPF UI - Внедрение зависимостей и несколько проектов
00:08 Установка расширений в Visual Studio • Автор устанавливает несколько расширений для Visual Studio, хотя обычно избегает сторонних компонентов. • Расширения помогают повысить производительность, например, «Копировать как HTML» сохраняет цвета при вставке кода в HTML-документ. 01:06 Дополнительные расширения • Расширение для развёртывания окна двойным щелчком позволяет быстро перейти в полноэкранный режим. • Исправление смешанных табуляций помогает исправить проблемы с отступами в коде. 01:56 Power Commands • Power Commands содержат полезные команды, такие как удаление и сортировка using при сохранении. • Среди команд — «Редактировать файлы проекта» и фильтрация неиспользуемых пространств имён. 02:46 Процесс установки расширений • Расширения устанавливаются через Marketplace.visualstudio.com. • Важно, чтобы Visual Studio была закрыта во время установки. 03:51 Тестирование расширений • При первом запуске после установки расширений появляется окно с кэшем компонентов. • Проверка работы расширения для развёртывания окна: оно не всегда работает корректно, особенно с файлами XAML. 06:34 Настройка интерфейса • Изменение цвета фона и текста в текстовых полях для тёмной темы. • Настройка стилей для текстовых полей и полей ввода пароля. 10:29 Добавление страницы регистрации • Копирование страницы входа и переименование её в страницу регистрации. • Изменение текста на «Зарегистрироваться» и добавление ссылки для перехода на страницу входа. 12:03 Реализация команды регистрации • Привязка кнопки регистрации к команде регистрации в модели представления. • Создание асинхронной команды-ретранслятора для перенаправления пользователя на страницу регистрации. 13:53 Удаление временного кода и настройка анимации • Удаление команды запуска, так как анимация выполняется одновременно с переходом. • Ожидание устранения ошибки перед продолжением работы. • Добавление суффикса async к методам для обозначения асинхронности. 14:42 Конфигурация редактора в Visual Studio • Создание файла конфигурации для единообразия стиля в среде с несколькими разработчиками. • Настройка стиля для методов, полей, событий и свойств. • Устранение лишних пробелов и ошибок в коде. 15:39 Правила именования асинхронных методов • Объяснение важности суффикса async для методов, возвращающих задачи. • Проблемы с отключением предупреждений в Visual Studio. • Переименование метода login для добавления суффикса async. 18:26 Смена страниц в приложении • Использование главного окна и фрейма для смены страниц. • Применение конвертера значений страницы приложения. • Изменение текущей страницы через контекст данных окна. 20:23 Реализация смены страницы • Получение главного окна и его контекста данных. • Приведение контекста данных к модели представления окна. • Замена текущей страницы на страницу регистрации. 22:42 Проблемы с навигацией и разделение проекта • Необходимость привязки службы навигации к странице перехода. • Разделение проекта на ядро и WPF для упрощения управления кодом. • Проблемы с доступом к различным частям приложения из разных проектов. 24:35 Создание нового проекта и библиотеки классов • Создание нового проекта Windows и библиотеки классов .NET Framework. • Компиляция библиотеки классов в файл DLL. • Добавление ссылки на проект ядра в приложении WPF. 26:01 Организация проектов в решении • Перенос проекта ядра наверх для удобства доступа. • Проверка порядка сортировки проектов в решении. • Обеспечение доступа к общедоступным классам из ядра в приложении WPF. 26:53 Установка ссылки на ядро Faceto Word 27:42 Разделение кода на проекты 28:42 Перенос кода из WPF в основной проект 31:04 Исправление ошибок сборки 33:41 Замена пространств имён 38:14 Рефакторинг элементов управления 40:57 Работа с асинхронными функциями 41:43 Синхронная загрузка страницы и асинхронные функции 42:42 Работа с моделями представления 44:10 Очистка кода и перемещение файлов 45:16 Работа со стилями и конвертерами значений 47:17 Оптимизация кода 49:59 Работа с главным окном и приложением 51:19 Исправление ошибок сборки 53:13 Диагностика проблемы с загрузкой страницы 55:16 Решение проблемы с анимацией 56:14 Поток пользовательского интерфейса 57:12 Проверка исключений 58:02 Анализ потоков 59:17 Использование async 01:00:13 Перенос кода в библиотеку 01:01:12 Модель представления приложения 01:02:59 Инъекция зависимостей 01:05:55 Установка NInject 01:07:29 Создание IOC-контейнера 01:09:07 Настройка контейнера IOC 01:10:40 Привязка моделей представления 01:11:35 Контроль экземпляра модели представления 01:12:21 Инициализация контейнера при запуске 01:14:09 Пользовательский запуск приложения 01:17:23 Создание конвертера для IOC 01:20:36 Вспомогательная функция для получения сервисов 01:22:28 Тестирование конвертера 01:24:10 Преобразование модели представления 01:24:56 Работа со статическими значениями 01:27:12 Создание экземпляра локатора 01:28:48 Привязка в XAML 01:30:39 Изменение текущей страницы 01:31:39 Итоги работы 01:33:26 Будущие улучшения 01:35:21 Заключение
00:08 Установка расширений в Visual Studio • Автор устанавливает несколько расширений для Visual Studio, хотя обычно избегает сторонних компонентов. • Расширения помогают повысить производительность, например, «Копировать как HTML» сохраняет цвета при вставке кода в HTML-документ. 01:06 Дополнительные расширения • Расширение для развёртывания окна двойным щелчком позволяет быстро перейти в полноэкранный режим. • Исправление смешанных табуляций помогает исправить проблемы с отступами в коде. 01:56 Power Commands • Power Commands содержат полезные команды, такие как удаление и сортировка using при сохранении. • Среди команд — «Редактировать файлы проекта» и фильтрация неиспользуемых пространств имён. 02:46 Процесс установки расширений • Расширения устанавливаются через Marketplace.visualstudio.com. • Важно, чтобы Visual Studio была закрыта во время установки. 03:51 Тестирование расширений • При первом запуске после установки расширений появляется окно с кэшем компонентов. • Проверка работы расширения для развёртывания окна: оно не всегда работает корректно, особенно с файлами XAML. 06:34 Настройка интерфейса • Изменение цвета фона и текста в текстовых полях для тёмной темы. • Настройка стилей для текстовых полей и полей ввода пароля. 10:29 Добавление страницы регистрации • Копирование страницы входа и переименование её в страницу регистрации. • Изменение текста на «Зарегистрироваться» и добавление ссылки для перехода на страницу входа. 12:03 Реализация команды регистрации • Привязка кнопки регистрации к команде регистрации в модели представления. • Создание асинхронной команды-ретранслятора для перенаправления пользователя на страницу регистрации. 13:53 Удаление временного кода и настройка анимации • Удаление команды запуска, так как анимация выполняется одновременно с переходом. • Ожидание устранения ошибки перед продолжением работы. • Добавление суффикса async к методам для обозначения асинхронности. 14:42 Конфигурация редактора в Visual Studio • Создание файла конфигурации для единообразия стиля в среде с несколькими разработчиками. • Настройка стиля для методов, полей, событий и свойств. • Устранение лишних пробелов и ошибок в коде. 15:39 Правила именования асинхронных методов • Объяснение важности суффикса async для методов, возвращающих задачи. • Проблемы с отключением предупреждений в Visual Studio. • Переименование метода login для добавления суффикса async. 18:26 Смена страниц в приложении • Использование главного окна и фрейма для смены страниц. • Применение конвертера значений страницы приложения. • Изменение текущей страницы через контекст данных окна. 20:23 Реализация смены страницы • Получение главного окна и его контекста данных. • Приведение контекста данных к модели представления окна. • Замена текущей страницы на страницу регистрации. 22:42 Проблемы с навигацией и разделение проекта • Необходимость привязки службы навигации к странице перехода. • Разделение проекта на ядро и WPF для упрощения управления кодом. • Проблемы с доступом к различным частям приложения из разных проектов. 24:35 Создание нового проекта и библиотеки классов • Создание нового проекта Windows и библиотеки классов .NET Framework. • Компиляция библиотеки классов в файл DLL. • Добавление ссылки на проект ядра в приложении WPF. 26:01 Организация проектов в решении • Перенос проекта ядра наверх для удобства доступа. • Проверка порядка сортировки проектов в решении. • Обеспечение доступа к общедоступным классам из ядра в приложении WPF. 26:53 Установка ссылки на ядро Faceto Word 27:42 Разделение кода на проекты 28:42 Перенос кода из WPF в основной проект 31:04 Исправление ошибок сборки 33:41 Замена пространств имён 38:14 Рефакторинг элементов управления 40:57 Работа с асинхронными функциями 41:43 Синхронная загрузка страницы и асинхронные функции 42:42 Работа с моделями представления 44:10 Очистка кода и перемещение файлов 45:16 Работа со стилями и конвертерами значений 47:17 Оптимизация кода 49:59 Работа с главным окном и приложением 51:19 Исправление ошибок сборки 53:13 Диагностика проблемы с загрузкой страницы 55:16 Решение проблемы с анимацией 56:14 Поток пользовательского интерфейса 57:12 Проверка исключений 58:02 Анализ потоков 59:17 Использование async 01:00:13 Перенос кода в библиотеку 01:01:12 Модель представления приложения 01:02:59 Инъекция зависимостей 01:05:55 Установка NInject 01:07:29 Создание IOC-контейнера 01:09:07 Настройка контейнера IOC 01:10:40 Привязка моделей представления 01:11:35 Контроль экземпляра модели представления 01:12:21 Инициализация контейнера при запуске 01:14:09 Пользовательский запуск приложения 01:17:23 Создание конвертера для IOC 01:20:36 Вспомогательная функция для получения сервисов 01:22:28 Тестирование конвертера 01:24:10 Преобразование модели представления 01:24:56 Работа со статическими значениями 01:27:12 Создание экземпляра локатора 01:28:48 Привязка в XAML 01:30:39 Изменение текущей страницы 01:31:39 Итоги работы 01:33:26 Будущие улучшения 01:35:21 Заключение




