Язык программирования C#9 и платформа .NET5
- Автор: Эндрю Троелсен
- Жанр: Базы данных
- Дата выхода: 2022
Читать книгу "Язык программирования C#9 и платформа .NET5" полностью
Построение кисти DrawingBrush с использованием геометрических объектов
Рисование с помощью DrawingBrush
Включение типов Drawing в DrawingImage
Работа с векторными изображениями
Преобразование файла с векторной графикой в файл XAML
Импортирование графических данных в проект WPF
Взаимодействие с изображением
Визуализация графических данных с использованием визуального уровня
Базовый класс Visual и производные дочерние классы
Первый взгляд на класс DrawingVisual
Визуализация графических данных в специальном диспетчере компоновки
Реагирование на операции проверки попадания
Резюме
Глава 27
Система ресурсов WPF
Работа с двоичными ресурсами
Включение в проект несвязанных файлов ресурсов
Конфигурирование несвязанных ресурсов
Программная загрузка изображения
Встраивание ресурсов приложения
Работа с объектными (логическими) ресурсами
Роль свойства Resources
Определение ресурсов уровня окна
Расширение разметки {StaticResource}
Расширение разметки {DynamicResource}
Ресурсы уровня приложения
Определение объединенных словарей ресурсов
Определение сборки, включающей только ресурсы
Службы анимации WPF
Роль классов анимации
Свойства То, From и By
Роль базового класса Timeline
Реализация анимации в коде C#
Управление темпом анимации
Запуск в обратном порядке и циклическое выполнение анимации
Реализация анимации в разметке XAML
Роль раскадровок
Роль триггеров событий
Анимация с использованием дискретных ключевых кадров
Роль стилей WPF
Определение и применение стиля
Переопределение настроек стиля
Влияние атрибута TargetType на стили
Создание подклассов существующих стилей
Определение стилей с триггерами
Определение стилей с множеством триггеров
Стили с анимацией
Применение стилей в коде
Логические деревья, визуальные деревья и стандартные шаблоны
Программное инспектирование логического дерева
Программное инспектирование визуального дерева
Программное инспектирование стандартного шаблона элемента управления
Построение шаблона элемента управления с помощью инфраструктуры триггеров
Шаблоны как ресурсы
Встраивание визуальных подсказок с использованием триггеров
Роль расширения разметки {TemplateBinding}
Роль класса ContentPresenter
Встраивание шаблонов в стили
Резюме
Глава 28
Введение в паттерн MWM
Модель
Представление
Модель представления
Анемичные модели или анемичные модели представлений
Система уведомлений привязки WPF
Наблюдаемые модели и коллекции
Добавление привязок и данных
Изменение данных об автомобиле в коде
Наблюдаемые модели
Использование операции nameof
Наблюдаемые коллекции
Использование класса ObservableCollection<T>
Реализация флага изменения
Обновление источника через взаимодействие с пользовательским интерфейсом
Итоговые сведения об уведомлениях и наблюдаемых моделях
Проверка достоверности WPF
Модификация примера для демонстрации проверки достоверности
Класс Validation
Варианты проверки достоверности
Уведомление по исключениям
Интерфейс IDataErrorInfo
Интерфейс INotifyDataErrorInfo
Реализация поддерживающего кода
Использование интерфейса INotifyDataErrorInfo для проверки достоверности
Комбинирование IDataErrorInfo С INotifyDataErrorInfo для проверки достоверности
Отображение всех ошибок
Перемещение поддерживающего кода в базовый класс
Использование аннотаций данных в WPF
Добавление аннотаций данных к модели
Контроль ошибок проверки достоверности на основе аннотаций данных
Настройка свойства ErrorTemplate
Итоговые сведения о проверке достоверности
Создание специальных команд
Реализация интерфейса ICommand
Добавление класса ChangeColorCommand
Присоединение команды к CommandManager
Изменение файла MainWindow.xaml.cs
Изменение файла MainWindow.xaml
Тестирование приложения
Создание класса CommandBase
Добавление класса AddCarCommand
Изменение файла MainWindow.xaml.cs
Изменение файла MainWindow.xaml
Изменение класса ChangeColorCommand
Объекты RelayCommand
Создание базового класса RelayCommand
Создание класса RelayCommand<T>
Изменение файла MainWindow.xaml.cs
Добавление и реализация кнопки удаления записи об автомобиле
Итоговые сведения о командах
Перенос кода и данных в модель представления
Перенос кода MainWindow.xaml.cs
Обновление кода и разметки MainWindow
Обновление разметки элементов управления
Итоговые сведения о моделях представлений
Обновление проекта AutoLot.Dal для MWM
Резюме
Часть IX
Глава 29
Краткий экскурс в прошлое
Введение в паттерн MVC
Модель
Представление
Контроллер
ASP.NET Core и паттерн MVC
ASP.NET Core и .NET Core
Одна инфраструктура, много сценариев использования
Функциональные средства ASP.NET Core из MVC/Web API
Соглашения по конфигурации
Соглашения об именовании
Структура каталогов
Папка Controllers
Папка Views
Папка Shared
Папка wwwroot (нововведение в ASP.NET Core)
Контроллеры и действия
Класс Controller
Класс ControllerBase
Действия
Привязка моделей
Словарь ModelState
Добавление специальных ошибок в словарь ModelState
Неявная привязка моделей
Явная привязка моделей
Атрибут Bind
Управление источниками привязки моделей в ASP.NET Core
Проверка достоверности моделей
Маршрутизация
Шаблоны URL и маркеры маршрутов
Маршрутизация и REST-службы ASP.NET Core
Маршрутизация на основе соглашений
Именованные маршруты
Маршрутизация с помощью атрибутов
Именованные маршруты
Маршрутизация и методы HTTP
Методы HTTP при маршрутизации в веб-приложениях (MVC)
Маршрутизация для служб API
Перенаправление с использованием маршрутизации
Фильтры
Фильтры авторизации
Фильтры ресурсов
Фильтры действий
Фильтры исключений
Фильтры результатов
Нововведения в ASP.NET Core
Встроенное внедрение зависимостей
Осведомленность о среде
Выяснение среды времени выполнения
Конфигурация приложений
Извлечение настроек
Развертывание приложений ASP.NET Core
Легковесный и модульный конвейер запросов HTTP
Создание и конфигурирование решения
Использование Visual Studio
Создание решения и проектов
Добавление проектов AutoLot.Models и AutoLot.Dal
Добавление ссылок на проекты
Добавление пакетов NuGet
Использование командной строки
Запуск приложений ASP.NET Core
Конфигурирование настроек запуска
Использование Visual Studio
Использование командной строки или окна терминала Visual Studio Code
Изменение кода во время отладки
Использование Visual Studio Code
Изменение кода во время отладки
Отладка приложений ASP.NET Core
Присоединение с помощью Visual Studio
Присоединение с помощью Visual Studio Code
Обновление портов AutoLot.Api
Создание и конфигурирование экземпляра WebHost
Файл Program.cs
Файл Startup.cs
Доступные службы для класса Startup
Конструктор
Метод ConfigureServices()
AutoLot.Api
Добавление строки подключения к настройкам приложения
AutoLot.Mvc
Добавление строки подключения к настройкам приложения
Метод Configure()
AutoLot.Api
AutoLot.Mvc
Ведение журнала
Интерфейс IAppLogging
Класс AppLogging
Конфигурация ведения журнала
Обновление настроек приложения
Обновление Program.cs
Обновление Startup.cs
Обновление контроллера
Испытание инфраструктуры ведения журнала
Резюме
Глава 30
Введение в REST-службы ASP.NET Core
Создание действий контроллера с использованием служб REST
Результаты ответов в формате JSON
Атрибут ApiController
Обязательность маршрутизации с помощью атрибутов
Автоматические ответы с кодом состояния 400
Выведение источников для привязки параметров
Детальные сведения о проблемах для кодов состояния ошибок
Обновление настроек Swagger/OpenAPI
Обновление обращений к Swagger в классе Startup
Добавление файла XML-документации
Добавление XML-комментариев в процесс генерации Swagger
Дополнительные возможности документирования для конечных точек API
Построение методов действий API
Конструктор
Методы GetXXX()
Метод UpdateOne()
Метод AddOne()
Метод DeleteOne()
Класс CarsController
Оставшиеся контроллеры
Фильтры исключений
Создание специального фильтра исключений
Добавление фильтров в конвейер обработки
Тестирование фильтра исключений
Добавление поддержки запросов между источниками
Создание политики CORS
Добавление политики CORS в конвейер обработки HTTP
Резюме
Глава 31
Введение в представления ASP.NET Core
Экземпляры класса ViewResult и методы действий
Механизм визуализации и синтаксис Razor
Представления
Каталог Views
Каталог Shared
Каталог DisplayTemplates
Шаблон отображения DateTime
Шаблон отображения Car
Шаблон отображения CarWithColor
Каталог EditorTemplates
Шаблон редактирования Car
Компоновки
Указание стандартной компоновки для представлений
Частичные представления
Обновление компоновки с использованием частичных представлений
Создание частичных представлений
Частичное представление Head
Частичное представление Menu
Частичное представление JavaScriptFiles
Отправка данных представлениям
Строго типизированные представления и модели представлений
Объекты ViewBag, ViewData и TempData
Вспомогательные функции дескрипторов
Включение вспомогательных функций дескрипторов
Вспомогательная функция дескриптора для формы
Форма создания для сущности Car