Внедрение зависимостей в .NET Внедрение зависимостей в .NET Внедрение зависимостей позволяет уменьшить сильное связывание между программными компонентами. Вместо жесткого кодирования зависимостей (например, драйвера какой-либо базы данных), внедряется список сервисов, в которых может нуждаться компонент. После этого сервисы подключаются третьей стороной. Такой подход обеспечивает лучшее управление будущими изменениями и решение проблем в разрабатываемом программном обеспечении. Данная книга рассказывает о внедрении зависимостей и является практическим руководством по их применению в приложениях .NET. Издание содержит основные шаблоны внедрения зависимостей, написанные на «чистом» C#. Кроме того, рассмотрены способы интеграции внедрений зависимостей со стандартными технологиями Microsoft, такими как ASP.NET MVC, а также примеры применения фреймворков StructureMap, Castle Windsor и Unity. Питер 978-5-496-00657-6
1033 руб.
Russian
Каталог товаров

Внедрение зависимостей в .NET

  • Автор: Марк Симан
  • Мягкий переплет. Крепление скрепкой или клеем
  • Издательство: Питер
  • Год выпуска: 2014
  • Кол. страниц: 464
  • ISBN: 978-5-496-00657-6
Временно отсутствует
?
  • Описание
  • Характеристики
  • Отзывы о товаре
  • Отзывы ReadRate
Внедрение зависимостей позволяет уменьшить сильное связывание между программными компонентами. Вместо жесткого кодирования зависимостей (например, драйвера какой-либо базы данных), внедряется список сервисов, в которых может нуждаться компонент. После этого сервисы подключаются третьей стороной. Такой подход обеспечивает лучшее управление будущими изменениями и решение проблем в разрабатываемом программном обеспечении. Данная книга рассказывает о внедрении зависимостей и является практическим руководством по их применению в приложениях .NET. Издание содержит основные шаблоны внедрения зависимостей, написанные на «чистом» C#. Кроме того, рассмотрены способы интеграции внедрений зависимостей со стандартными технологиями Microsoft, такими как ASP.NET MVC, а также примеры применения фреймворков StructureMap, Castle Windsor и Unity.

Оставить заявку на описание
?
Содержание
Предисловие
Введение
Благодарности
Об этой книге
Для кого предназначена эта книга
Наш маршрут
Условные обозначения и возможности для
скачивания
Об авторе
Иллюстрация на обложке
От издательства
Часть 1. Последовательность изучения внедрения зависимостей
Глава 1. Дегустационное меню внедрения зависимостей
1.1.Написание удобного в сопровождении кода
1.1.1. Отучиться от внедрения зависимостей
1.1.2. Назначение внедрения зависимостей
1.2. Hello DI (Привет, ВЗ)
1.2.1. Код для Hello DI
1.2.2. Достоинства внедрения зависимостей
1.3.Что следует и что не следует внедрять
1.3.1. Швы
1.3.2. Стабильные зависимости
1.3.3. Нестабильные зависимости
1.4.Область применения внедрения зависимостей
1.4.1. Композиция объектов
1.4.2. Жизненный цикл объектов
1.4.3. Перехват
1.4.4. Внедрение зависимостей в трех измерениях
1.5.Резюме
Глава 2. Детальный пример
2.1.Неверная реализация
2.1.1. Разработка сильно связанного приложения
2.1.2. Тест "На дым" (Smoke test)
2.1.3. Оценка
2.1.4. Анализ
2.2.Правильная реализация
2.2.1. Новая разработка приложения
2.2.2. Анализ слабо связанной реализации
2.3.Расширение приложения-примера
2.3.1. Архитектура
2.3.2. Корзина покупок
2.4.Резюме
Глава 3. Контейнеры внедрения зависимостей
3.1.Введение в контейнеры внедрения зависимостей
3.1.1. Привет, контейнер
3.1.2. Автоподключение
3.2. Конфигурирование контейнеров внедрения
3.2.1. Конфигурирование контейнеров с использованием XML
3.2.2. Конфигурирование контейнеров при помощи кода
3.2.3. Конфигурирование контейнеров по соглашению
3.3. Паттерны контейнеров внедрения
3.3.1. Корень компоновки
3.3.2. "Регистрация, преобразование, высвобождение"
3.4. Панорама контейнеров внедрения
3.4.1. Выбор контейнера внедрения зависимостей
3.4.2. Microsoft и внедрение зависимостей
3.5.Резюме
Часть 2. Каталог паттернов внедрения зависимостей
Глава 4. Паттерны внедрения зависимостей
4.1. "Внедрение конструктора"
4.1.1. Как это работает
4.1.2. Когда должно использоваться внедрение конструктора
4.1.3. Известные способы применения
4.1.4. Пример: добавление сервиса конвертации валют в покупательскую корзину
4.1.5. Родственные паттерны
4.2. "Внедрение свойства"
4.2.1. Как это работает
4.2.2. Когда следует применять внедрение свойства
4.2.3. Известные способы применения
4.2.4. Пример: реализация сервиса профиля валюты для BasketController
4.2.5. Родственные паттерны
4.3. Внедрение метода
4.3.1. Как это работает
4.3.2. Когда следует использовать внедрение метода
4.3.3. Известные способы применения
4.3.4. Пример: конвертация валют в корзине
4.3.5. Родственные паттерны
4.4. "Окружающий контекст"
4.4.1. Как это работает
4.4.2. Когда следует использовать окружающий контекст
4.4.3. Известные способы применения
4.4.4. Пример: кэширование валюты
4.4.5. Родственные паттерны
4.5.Резюме
Глава 5. Антипаттерны внедрения зависимостей
5.1."Диктатор"
5.1.1. Пример: создание новых экземпляров зависимостей
5.1.2. Пример: фабрика
5.1.3. Анализ
5.2. "Гибридное внедрение"
5.2.1. Пример: ProductService с внешним умолчанием
5.2.2. Анализ
5.3. "Ограниченное конструирование"
5.3.1. Пример: динамическое связывание ProductRepository
5.3.2. Анализ
5.4. "Локатор сервисов"
5.4.1. Пример: ProductService, использующий "Локатор сервисов"
5.4.2. Анализ
5.5. Резюме
Глава 6. Рефакторинг внедрения зависимостей
6.1.Соотнесение значения времени исполнения с абстракциями
6.1.1. Абстракции с зависимостями времени исполнения
6.1.2. Пример: выбор алгоритма расчета пути
6.1.3. Пример: использование CurrencyProvider
6.2.Использование краткосрочных зависимостей
6.2.1. Закрытие соединений с помощью абстракций
6.2.2. Пример: обращение к сервису управления продуктами
6.3. Устранение циклических зависимостей
6.3.1. Устранение циклов зависимостей
6.3.2. Пример: компоновка окна
6.4. Использование сверхвнедрения конструктора
6.4.1. Распознавание и разрешение сверхвнедрения конструктора
6.4.2. Пример: рефакторинг получения заказов
6.5. Мониторинг связанности
6.5.1. Модульное тестирование связанности
6.5.2. Интеграционное тестирование связывания
6.5.3. Использование NDepend для отслеживания связей
6.6. Резюме
Часть 3. Самостоятельное создание внедрения зависимостей
Глава 7. Компоновка объектов
7.1. Компоновка в консольных приложениях
7.1.1. Пример: обновление валют
7.2. Компоновка приложений ASP.NET MVC
7.2.1. Расширяемость ASP.NET MVC
7.2.2. Пример: реализация CommerceControllerFactory
7.3. Компоновка WCF-приложений
7.3.1. Расширяемость WCF
7.3.2. Пример: подключение сервиса управления продуктами
7.4. Компоновка WPF-приложений
7.4.1. WPF-компоновка
7.4.2. Пример: подключение насыщенного клиента для управления продуктами
7.5. Компоновка приложений ASP.NET
7.5.1. Компоновка в ASP.NET
7.5.2 Пример: подключение CampaignPresenter
7.6.Компоновка PowerShell cmdlets
7.6.1. Пример: компоновка cmdlets для управления корзиной
7.7. Резюме
Глава 8. Время жизни объектов
8.1. Управление временем жизни зависимостей
8.1.1. Введение в управление временем жизни
8.1.2. Управление временем жизни с помощью контейнера
8.2. Использование одноразовых зависимостей
8.2.1. Использование одноразовых зависимостей
8.2.2. Управление одноразовыми зависимостями
8.3. Каталог жизненных стилей
8.3.1 Singleton
8.3.2. Transient
8.3.3. Per Graph
8.3.4. Web Request Context (Контекст веб-запроса)
8.3.5. Pooled (Пулированный, реализованный как пул)
8.3.6. Прочие жизненные стили
8.4. Резюме
Глава 9. Перехват
9.1. Вводная информация о перехватах
9.1.1. Пример: реализация аудита
9.1.2. Паттерны и принципы перехвата
9.2. Реализация сквозных аспектов приложения
9.2.1. Перехват с "Прерывателем цепи" (Circuit Breaker)
9.2.2. Обработка исключительных состояний
9.2.3. Добавление функционала безопасности
9.3. Объявление аспектов
9.3.1. Использование атрибутов для объявления аспектов
9.3.2. Применение динамического перехвата
9.3.3. Пример: перехват с Windsor
9.4. Резюме
Часть 4. Контейнеры внедрения зависимостей
Глава 10. Castle Windsor
10.1.Знакомство с Castle Windsor
10.1.1. Разрешение объектов
10.1.2. Конфигурирование контейнера
10.1.3. Размещение конфигурации
10.2. Управление жизненным циклом
10.2.1. Конфигурирование стилей жизненных циклов
10.2.2. Использование продвинутых стилей жизненных циклов
10.2.3. Разработка специальных стилей жизненных циклов
10.3. Работа с несколькими компонентами
10.3.1. Выбираем одного кандидата из нескольких
10.3.2. Подключение последовательностей
10.3.3. Подключение декораторов
10.4. Конфигурирование сложных API
10.4.1. Конфигурирование примитивных зависимостей
10.4.2. Регистрирование компонентов с помощью блоков кода
10.4.3. Подключение с внедрением свойств
10.5. Резюме
Глава 11. StructureMap
11.1. Знакомство со StructureMap
11.1.1. Разрешение объектов
11.1.2. Конфигурирование контейнера
11.1.3. Размещение конфигурации
11.2.Управление жизненным циклом
11.2.1. Конфигурирование стилей жизненных циклов
11.2.2. Разработка собственного стиля жизненных циклов
11.3. Работа с несколькими компонентами
11.3.1. Выбираем одного кандидата из нескольких
11.3.2. Подключение последовательностей
11.3.3. Подключение декораторов
11.4. Конфигурирование сложных API
11.4.1. Конфигурирование примитивных зависимостей
11.4.2. Создание компонентов с помощью блоков кода
11.4.3. Подключение с внедрением свойств
11.5. Резюме
Штрихкод:   9785496006576
Аудитория:   Для специалистов
Бумага:   Офсет
Масса:   540 г
Размеры:   235x 166x 22 мм
Тираж:   1 500
Литературная форма:   Учебно-практическое пособие
Сведения об издании:   Переводное издание
Тип иллюстраций:   Черно-белые
Переводчик:   Барышнев А., Зазноба Е.
Составитель:   Каляева Е.
Отзывы
Найти пункт
 Выбрать станцию:
жирным выделены станции, где есть пункты самовывоза
Выбрать пункт:
Поиск по названию улиц:
Подписка 
Введите Reader's код или e-mail
Периодичность
При каждом поступлении товара
Не чаще 1 раза в неделю
Не чаще 1 раза в месяц
Мы перезвоним

Возникли сложности с дозвоном? Оформите заявку, и в течение часа мы перезвоним Вам сами!

Captcha
Обновить
Сообщение об ошибке

Обрамите звездочками (*) место ошибки или опишите саму ошибку.

Скриншот ошибки:

Введите код:*

Captcha
Обновить