Паттерны проектирования для C# и платформы .NET Core

Паттерны проектирования для C# и платформы .NET Core

Паттерны проектирования для C# и платформы .NET Core
Автор: Арораа Гаурав, Чилберто Джеффри
Дата выхода: 2021
Издательство: Питер
Количество страниц: 352
Размер файла: 4.3 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Введение....18

Кому подойдет эта книга....18

Структура издания....19

Как получить максимум от книги....20

Загрузка файлов с примерами....21

Код в действии....21

Полноцветные изображения....21

Условные обозначения....21

О научных редакторах....17

Об авторах....16

Предисловие....14

Часть I. Основы паттернов проектирования в C# и .NET Core....23

Глава 1. Обзор ООП в .NET Core и C#....24

Технические требования....25

Установка Visual Studio....25

Установка .NET Core....25

Используемые в книге модели....26

Определение ООП. Как работают классы и объекты....28

Определение ООП....28

Класс....29

Объект....30

Интерфейс....33

Наследование....34

Инкапсуляция....36

Полиморфизм....36

Статический полиморфизм....37

Динамический полиморфизм....38

Резюме....40

Вопросы....41

Глава 2 Современные паттерны и принципы проектирования ПО....42

Технические требования....43

Установка Visual Studio....43

Установка .NET Core....43

Принципы проектирования....44

DRY — «Не повторяйся»....44

KISS — «Делай проще, тупица»....44

YAGNI — «Вам это не понадобится»....45

MVP — «Продукт с минимальным функционалом»....45

SOLID....45

Паттерны программного обеспечения....47

Паттерны «Банды четырех»....47

Паттерны интеграции корпоративных приложений....59

Паттерны жизненного цикла разработки программного обеспечения....65

Waterfall SDLC....65

Agile SDLC....66

Резюме....67

Вопросы....68

Часть II. Углубленное изучение утилит и паттернов .NET Core....69

Глава 3. Реализация паттернов проектирования — основы (часть 1)....70

Технические требования....71

Установка Visual Studio....71

Установка .NET Core....71

Продукт с минимальным функционалом....71

Требования....72

Каковы преимущества MVP в дальнейшей разработке....74

Разработка через тестирование....75

Почему разработчики выбирают TDD....76

Настройка проектов....77

Определения начальных модульных тестов....80

Паттерн проектирования «Абстрактная фабрика»....82

Принципы SOLID....87

Принцип единственной ответственности (SRP)....87

Принцип открытости/закрытости (OCP)....88

Принцип замещения Лисков (LSP)....89

Принцип сегрегации интерфейса (ISP)....90

Принцип инверсии зависимостей....91

Модульные тесты для InventoryCommand....93

Резюме....98

Вопросы....99

Глава 4. Реализация паттернов проектирования — основы (часть 2)....100

Технические требования....101

Установка Visual Studio....101

Установка .NET Core....101

Паттерн «Синглтон»....101

Процессы и потоки....102

Паттерн «Репозиторий» ....104

Модульные тесты....105

Иллюстрация состояния гонки....112

Класс AddInventoryCommand ....115

Класс UpdateQuanittyCommand....119

Команда GetInventoryCommand ....121

Паттерн «Фабрика»....123

Модульные тесты....124

Функциональность .NET Core....128

Интерфейс IServiceCollection ....128

Интерфейс CatalogService....129

IServiceProvider....130

Консольное приложение....131

Резюме....133

Вопросы....133

Глава 5. Реализация паттернов проектирования в .Net Core....134

Технические требования....134

Установка Visual Studio....135

Установка .NET Core....135

Время жизни сервисов в .Net Core....135

Временная зависимость (Transient)....136

Время жизни области применения (Scoped)....136

«Синглтон» в .Net Core....136

Вернемся к FlixOne....136

Время жизни области применения (Scope)....142

Внедрение фабрики....143

Интерфейс IInventoryContext....144

Интерфейс IInventoryReadContext....144

Интерфейс IInventoryWriteContext....145

Класс InventoryCommandFactory....146

Класс InventoryCommand....147

Резюме....155

Вопросы....156

Глава 6. Реализация паттернов проектирования для веб-приложений (часть 1)....157

Технические требования....157

Установка Visual Studio....158

Установка .NET Core....158

Установка SQL Server....158

Создание веб-приложения .NET Core....159

Запуск проекта....159

Разработка веб-приложения....160

Реализация CRUD-страниц ....166

Резюме....176

Вопросы....177

Дальнейшее чтение....177

Глава 7. Реализация паттернов проектирования для веб-приложений (часть 2)....178

Технические требования....178

Установка Visual Studio....179

Установка .NET Core....179

Установка SQL Server....179

Расширение веб-приложения .NET Core....180

Начало проекта....180

Аутентификация и авторизация....182

Аутентификация в действии....187

Авторизация в действии....197

Создание тестового проекта веб-приложения....205

Резюме....209

Вопросы....209

Дальнейшее чтение....210

Часть III. Функциональное программирование, реактивное программирование и кодирование для облака....211

Глава 8 . Конкурентное программирование в .NET Core....212

Технические требования....212

Установка Visual Studio....213

Установка .NET Core....213

Установка SQL Server....213

Конкурентность в реальном мире....214

Многопоточное и асинхронное программирование....216

Async/Await — чем плоха блокировка....219

Конкурентная коллекция....220

Паттерны и рекомендации — TDD и параллельный LINQ....221

Резюме....227

Вопросы....228

Дальнейшее чтение....228

Глава 9. Функциональное программирование....229

Технические требования....229

Установка Visual Studio....230

Установка .NET Core....230

Установка SQL Server....230

Основы функционального программирования....231

Совершенствование приложения FlixOne....235

Требования....236

Вернемся к FlixOne....237

Паттерн «Стратегия» и функциональное программирование....242

Резюме....243

Вопросы....244

Глава 10. Модели и методы реактивного программирования....245

Технические требования....245

Установка Visual Studio....246

Установка .NET Core....246

Установка SQL Server....246

Принципы реактивного программирования....247

Будьте реактивны с реактивным программированием....249

Реактивность и интерфейс IObservable....257

Паттерн «Наблюдатель» — реализация с помощью IObservable....257

Реактивные расширения: .NET Rx Extensions....264

Настройка приложения FlixOne....266

Начало проекта....266

Применение в приложении FlixOne фильтрации, пагинации и сортировки....267

Паттерны и практики — MVVM....275

Реализация MVVM....277

Резюме....282

Вопросы....283

Дальнейшее чтение....283

Глава 11. Усовершенствованные методы проектирования и применения баз данных....284

Технические требования....284

Установка Visual Studio....285

Установка .NET Core....285

Установка SQL Server....285

Обсуждение примера использования....286

Начало проекта....286

Требования....287

Поговорим о базах данных....289

Обработка баз данных....289

OLTP....290

OLAP....291

Базы данных в стиле бухгалтерской книги....291

Реализация паттерна CQRS....293

Резюме....307

Вопросы....308

Глава 12. Разработка облачных приложений....309

Технические требования....310

Ключевые моменты, которые следует учитывать при разработке облачных решений....310

Масштабируемость....311

Рабочая нагрузка....311

Паттерны....312

Устойчивость/доступность....319

Паттерны решений....320

Безопасность....323

Паттерны решений....323

Проектирование приложения....325

Паттерны решений....325

DevOps....330

Паттерны решений....330

Резюме....333

Вопросы....334

Дальнейшее чтение....334

Приложения....335

Приложение А. Практические рекомендации....336

Технические требования....336

Обсуждение примера использования....337

UML-диаграмма....338

Практические рекомендации....339

Другие паттерны проектирования....340

Резюме....341

Вопросы....342

Дальнейшее чтение....342

Приложение Б. Ответы на вопросы....343

Глава 1. Обзор ООП в .NET Core и C#....343

Глава 2. Современные паттерны и принципы проектирования ПО....343

Глава 3. Реализация паттернов проектирования — основы (часть 1)....344

Глава 4. Реализация паттернов проектирования — основы (часть 2)....345

Глава 5. Реализация паттернов проектирования в .Net Core....345

Глава 6. Реализация паттернов проектирования для веб-приложений (часть 1)....346

Глава 7. Реализация паттернов проектирования для веб-приложений (часть 2)....346

Глава 8. Конкурентное программирование в .NET Core....347

Глава 9. Функциональное программирование....348

Глава 10. Модели и методы реактивного программирования....348

Глава 11. Усовершенствованные методы проектирования и применения баз данных....350

Глава 12. Разработка облачных приложений....350

Приложение А. Практические рекомендации....351

В этой книге на конкретных примерах описываются способы использования паттернов в современной разработке приложений. Количество паттернов, применяемых для поиска решений, огромно. Чаще всего разработчики пользуются ими, не понимая в полной мере, что и как эти паттерны делают. В издании рассматриваются паттерны от низкоуровневого кода до высокоуровневых концептуальных решений, которые работают в облачных системах.Несмотря на то что большинство паттернов не требуют применения конкретного языка, для иллюстрации многих из них мы используем C# и .NET Core. Эти технологии были выбраны из-за их популярности и удобства архитектуры, на основе которой можно создавать различные решения — от простых консольных приложений до крупных корпоративных распределенных систем.Описывая большое количество паттернов, эта книга знакомит со многими из них, позволяет глубже понять их на практике. Представленные паттерны были выбраны, чтобы проиллюстрировать определенные аспекты проектирования. Кроме того, добавлены ссылки на дополнительные материалы, которые помогут читателю подробнее изучить конкретный интересующий его паттерн.И в простых сайтах, и в огромных корпоративных системах правильно подобранный паттерн может в корне изменить заведомо неверное решение, ведущее к краху проекта из-за его высокой стоимости и низкой производительности, и превратить это решение в выгодное, долгоживущее и успешное. Паттерны, описанные в книге, призваны преодолеть неизбежные проблемы, которые иначе не позволили бы вам оставаться конкурентоспособными. Они также позволят вашим приложениям достичь устойчивости и надежности, которыми должны обладать современные проекты.


Похожее:

Список отзывов:

Нет отзывов к книге.