C# 8 и .NET Core. Разработка и оптимизация. 4 изд

C# 8 и .NET Core. Разработка и оптимизация. 4 изд

C# 8 и .NET Core. Разработка и оптимизация. 4 изд
Автор: Прайс Марк Дж.
Переводчик: Павлов А.
Дата выхода: 2021
Издательство: «Питер»
Количество страниц: 816
Размер файла: 7,8 МБ
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Об авторе
О научном редакторе
Предисловие
Структура книги
Необходимое программное обеспечение
Условные обозначения
Скачивание примеров кода
Скачивание цветных изображений для книги
От издательства
Глава 1. Привет, C#! Здравствуй, .NET Core!
Настройка среды разработки
Использование Visual Studio Code для разработки кросс-платформенных приложений
Использование Visual Studio 2019 для разработки Windows-приложений
Использование Visual Studio для Mac с целью разработки мобильных приложений
Рекомендуемые инструменты и операционные системы
Кросс-платформенное развертывание
Знакомство с версиями Microsoft Visual Studio Code
Скачивание и установка среды Visual Studio Code
Установка расширений
Знакомство с .NET
Обзор .NET Framework
Проекты Mono и Xamarin
Обзор .NET Core
Обзор последующих версий .NET
Поддержка .NET Core
В чем особенность .NET Core
Обзор .NET Standard
Платформы .NET в изданиях этой книги
Знакомство с промежуточным языком
Обзор .NET Native
Сравнение технологий .NET
Разработка консольных приложений с использованием Visual Studio Code
Написание кода с помощью Visual Studio Code
Компиляция и запуск кода с использованием инструмента командной строки dotnet
Скачивание кода решения из репозитория GitHub
Использование системы Git в Visual Studio Code
Клонирование репозитория с примерами из книги
Поиск справочной информации
Знакомство с Microsoft Docs
Получение справки для инструмента dotnet
Получение определений типов и их элементов
Ищем ответы на Stack Overflow
Поисковая система Google
Подписка на официальный блог .NET
Практические задания
1.1. Проверочные вопросы
1.2. Практическое задание
1.3. Дополнительные ресурсы
Резюме
Глава 2. Говорим на языке C#
Введение в C#
Обзор версий языка и их функций
Версии компилятора C#
Включение версии компилятора на определенном языке
Основы языка C#
Грамматика языка C#
Терминология языка C#
Работа с переменными
Присвоение переменным имен
Хранение текста
Хранение чисел
Хранение логических значений
Использование рабочих областей Visual Studio Code
Хранение объектов любого типа
Хранение данных динамического типа
Локальные переменные
Получение значений по умолчанию для типов
Хранение нескольких значений
Работа со значениями null
Создание значимого типа, допускающего значение null
Включение ссылочных типов, допускающих и не допускающих значение null
Объявление переменных и параметров, не допускающих значение null
Проверка на null
Дальнейшее изучение консольных приложений
Отображение вывода пользователю
Форматирующие строки
Получение пользовательского ввода
Импорт пространства имен
Упрощение работы с командной строкой
Получение клавиатурного ввода от пользователя
Чтение аргументов
Настройка параметров с помощью аргументов
Работа с платформами, не поддерживающими некоторые API
Практические задания
2.1. Проверочные вопросы
2.2. Практическое задание — числовые размеры и диапазоны
2.3. Дополнительные ресурсы
Резюме
Глава 3. Управление потоком исполнения и преобразование типов
Глава 4. Разработка, отладка и тестирование функций
Глава 5. Создание пользовательских типов с помощью объектно-ориентированного программирования
Коротко об объектно-ориентированном программировании
Разработка библиотек классов
Создание библиотек классов
Создание экземпляров классов
Управление несколькими файлами
Работа с объектами
Хранение данных в полях
Определение полей
Модификаторы доступа
Установка и вывод значений полей
Хранение значения с помощью типа-перечисления
Хранение нескольких значений с помощью типа enum
Хранение нескольких значений с помощью коллекций
Создание статического поля
Создание константного поля
Создание поля только для чтения
Инициализация полей с помощью конструкторов
Установка значения поля с использованием литерала для значения по умолчанию
Запись и вызов методов
Возвращение значений из методов
Возвращение нескольких значений с помощью кортежей
Определение и передача параметров в методы
Перегрузка методов
Передача необязательных параметров и именованных аргументов
Управление передачей параметров
Разделение классов с помощью ключевого слова partial
Управление доступом с помощью свойств и индексаторов
Определение свойств только для чтения
Определение изменяемых свойств
Определение индексаторов
Практические задания
5.1. Проверочные вопросы
5.2. Дополнительные ресурсы
Резюме
Глава 6. Реализация интерфейсов и наследование классов
Настройка библиотеки классов и консольного приложения
Упрощение методов
Реализация функционала с помощью методов
Реализация функционала с помощью операций
Реализация функционала с помощью локальных функций
Подъем и обработка событий
Вызов методов с помощью делегатов
Определение и обработка делегатов
Определение и обработка событий
Реализация интерфейсов
Универсальные интерфейсы
Сравнение объектов при сортировке
Сравнение объектов с помощью отдельных классов
Определение интерфейсов с реализациями по умолчанию
Обеспечение безопасности многократного использования типов с помощью дженериков
Работа с типами-дженериками
Работа с методами-дженериками
Управление памятью с помощью ссылочных типов и типов значений
Работа со структурами
Освобождение неуправляемых ресурсов
Обеспечение вызова метода Dispose
Наследование классов
Расширение классов
Сокрытие членов класса
Переопределение членов
Предотвращение наследования и переопределения
Полиморфизм
Приведение в иерархиях наследования
Неявное приведение
Явное приведение
Обработка исключений приведения
Наследование и расширение типов .NET
Наследование исключений
Расширение типов при невозможности наследования
Практические задания
6.1. Проверочные вопросы
6.2. Создание иерархии наследования
6.3. Дополнительные ресурсы
Резюме
Глава 7. Описание и упаковка типов .NET
Введение в .NET Core 3.0
.NET Core 1.0
.NET Core 1.1
.NET Core 2.0
.NET Core 2.1
.NET Core 2.2
.NET Core 3.0
Использование компонентов .NET Core
Сборки, пакеты и пространства имен
Импорт пространства имен для использования типа
Связь ключевых слов языка C# с типами .NET
Создание кросс-платформенных библиотек классов  с помощью .NET Standard
Публикация и развертывание ваших приложений
Разработка консольного приложения для публикации
Команды dotnet
Публикация автономного приложения
Декомпиляция сборок
Упаковка библиотек для распространения через NuGet
Ссылка на пакет NuGet
Упаковка библиотеки для NuGet
Тестирование пакета
Перенос приложений с .NET Framework на .NET Core
Что означает перенос
Стоит ли переносить?
Сравнение .NET Framework и .NET Core
Анализатор переносимости .NET
Использование библиотек, не скомпилированных для .NET Standard
Практические задания
7.1. Проверочные вопросы
7.2. Дополнительные ресурсы
Резюме
Глава 8. Работа с распространенными типами .NET
Работа с числами
Большие целые числа
Комплексные числа
Работа с текстом
Извлечение длины строки
Извлечение символов строки
Разделение строк
Извлечение фрагмента строки
Поиск содержимого в строках
Конкатенация строк, форматирование и различные члены типа string
Эффективное создание строк
Сопоставление шаблонов с использованием регулярных выражений
Проверка цифр, введенных как текст
Синтаксис регулярных выражений
Примеры регулярных выражений
Разбивка сложных строк, разделенных запятыми
Хранение данных с помощью коллекций
Общие свойства коллекций
Выбор коллекции
Работа со списками
Работа со словарями
Сортировка коллекций
Использование специализированных коллекций
Использование неизменяемых коллекций
Работа с интервалами, индексами и диапазонами
Управление памятью с помощью интервалов
Идентификация позиций с типом Index
Идентификация диапазонов с помощью типа Range
Использование индексов и диапазонов
Работа с сетевыми ресурсами
Работа с URI, DNS и IP-адресами
Проверка соединения с сервером
Работа с типами и атрибутами
Версии сборок
Чтение метаданных сборки
Создание пользовательских атрибутов
Еще немного об отражении
Интернационализация кода
Практические задания
8.1. Проверочные вопросы
8.2. Регулярные выражения
8.3. Методы расширения
8.4. Дополнительные ресурсы
Резюме
Глава 9. Работа с файлами, потоками и сериализация
Управление файловой системой
Работа с различными платформами и файловыми системами
Управление дисками
Управление каталогами
Управление файлами
Управление путями
Извлечение информации о файле
Контроль работы с файлами
Чтение и запись с помощью потоков
Запись в текстовые потоки
Запись в XML-потоки
Освобождение файловых ресурсов
Сжатие потоков
Сжатие с помощью алгоритма Brotli
Высокопроизводительные потоки с использованием конвейеров
Асинхронные потоки
Кодирование и декодирование текста
Преобразование строк в последовательности байтов
Кодирование и декодирование текста в файлах
Сериализация графов объектов
XML-сериализация
Генерация компактного XML
XML-десериализация
JSON-сериализация
Высокопроизводительный процессор JSON
Практические задания
9.1. Проверочные вопросы
9.2. XML-сериализация
9.3. Дополнительные ресурсы
Резюме
Глава 10. Защита данных и приложений
Терминология безопасности
Ключи и их размеры
Векторы инициализации и размеры блоков
Соли
Генерация ключей и векторов инициализации
Шифрование и дешифрование данных
Симметричное шифрование с помощью алгоритма AES
Хеширование данных
Хеширование с помощью алгоритма SHA256
Подписывание данных
Подписывание с помощью алгоритмов SHA256 и RSA
Генерация случайных чисел
Генерация случайных чисел для игр
Генерация случайных чисел для криптографии
Криптография: что нового
Аутентификация и авторизация пользователей
Реализация аутентификации и авторизации
Защита приложения
Практические задания
10.1. Проверочные вопросы
10.2. Защита данных с помощью шифрования и хеширования
10.3. Дешифрование данных
10.4. Дополнительные ресурсы
Резюме
Глава 11. Работа с базами данных с помощью Entity Framework Core
Современные базы данных
Введение в Entity Framework
Использование образца реляционной базы данных
Создание образца базы данных Northwind для SQLite
Управление образцом базы данных Northwind в SQLiteStudio
Настройка EF Core
Выбор поставщика данных Entity Framework Core
Подключение к базе данных
Определение моделей EF Core
Соглашения EF Core
Атрибуты аннотаций Entity Framework Core
Entity Framework Core Fluent API
Заполнение таблиц базы данных
Создание модели Entity Framework Core
Запрос данных из моделей EF Core
Фильтрация и сортировка товаров
Логирование в EF Core
Теги запросов
Сопоставление с образцом с помощью оператора Like
Определение глобальных фильтров
Схемы загрузки данных при использовании EF Core
Жадная загрузка сущностей
Использование ленивой загрузки
Явная загрузка сущностей
Управление данными с помощью EF Core
Добавление сущностей
Обновление сущностей
Удаление сущностей
Пулы соединений с базами данных
Транзакции
Определение явной транзакции
Практические задания
11.1. Проверочные вопросы
11.2. Экспорт данных с помощью различных форматов сериализации
11.3. Изучение документации EF Core
Резюме
Глава 12. Создание запросов и управление данными с помощью LINQ
Написание запросов LINQ
Расширение последовательностей с помощью класса Enumerable
Фильтрация сущностей с помощью метода Where
Сортировка сущностей
Фильтрация по типу
Работа с множествами с помощью LINQ
Использование LINQ с EF Core
Создание модели EF Core
Фильтрация и сортировка последовательностей
Проецирование последовательностей в новые типы
Объединение и группировка
Агрегирование последовательностей
Подслащение синтаксиса LINQ с помощью синтаксического сахара
Использование нескольких потоков и параллельного LINQ
Разработка приложения с помощью нескольких потоков
Создание собственных методов расширения LINQ
Работа с LINQ to XML
Генерация XML с помощью LINQ to XML
Чтение XML с помощью LINQ to XML
Практические задания
12.1. Проверочные вопросы
12.2. Создание запросов LINQ
12.3. Дополнительные ресурсы
Резюме
Глава 13. Улучшение производительности и масштабируемости с помощью многозадачности
Процессы, потоки и задачи
Мониторинг производительности и использования ресурсов
Оценка эффективности типов
Мониторинг производительности и использования памяти
Реализация класса Recorder
Асинхронное выполнение задач
Синхронное выполнение нескольких действий
Асинхронное выполнение нескольких действий с помощью задач
Ожидание выполнения задач
Задачи продолжения
Вложенные и дочерние задачи
Синхронизация доступа к общим ресурсам
Доступ к ресурсу из нескольких потоков
Применение к ресурсу взаимоисключающей блокировки
Оператор блокировки и избежание взаимоблокировок
Выполнение атомарных операций
Использование других типов синхронизации
Ключевые слова async и await
Увеличение скорости отклика консольных приложений
Увеличение скорости отклика GUI-приложений
Улучшение масштабируемости клиент-серверных приложений
Распространенные типы, поддерживающие многозадачность
Ключевое слово await в блоках catch
Работа с асинхронными потоками
Практические задания
13.1. Проверочные вопросы
13.2. Дополнительные ресурсы
Резюме
Глава 14. Практическое применение C# и .NET
Модели приложений для C# и .NET
Разработка сайтов с помощью ASP.NET Core
Разработка сайтов с использованием системы управления веб-контентом (веб-содержимым)
Веб-приложения
Создание и использование веб-сервисов
Разработка интеллектуальных приложений
Нововведения ASP.NET Core
ASP.NET Core 1.0
ASP.NET Core 1.1
ASP.NET Core 2.0
ASP.NET Core 2.1
ASP.NET Core 2.2
ASP.NET Core 3.0
SignalR
Blazor
JavaScript и другие технологии
Silverlight — использование C# и .NET через плагин
WebAssembly — база для Blazor
Blazor — на стороне сервера или клиента
Дополнительные главы
Разработка настольных Windows-приложений
Разработка кросс-платформенных мобильных приложений
Разработка модели данных объекта для Northwind
Разработка библиотеки классов для сущностных моделей Northwind
Создание библиотеки классов для контекста базы данных Northwind
Резюме
Глава 15. Разработка сайтов с помощью ASP.NET Core Razor Pages
Веб-разработка
Протокол передачи гипертекста
Клиентская веб-разработка
Обзор ASP.NET Core
Классический ASP.NET против современного ASP.NET Core
Разработка проекта ASP.NET Core
Тестирование и защита сайта
Включение статических файлов и файлов по умолчанию
Технология Razor Pages
Включение Razor Pages
Определение Razor Pages
Использование общих макетов в Razor Pages
Использование файлов с выделенным кодом в Razor Pages
Использование Entity Framework Core совместно с ASP.NET Core
Настройка Entity Framework Core в виде сервиса
Управление данными с помощью страниц Razor
Применение библиотек классов Razor
Использование библиотек классов Razor
Практические задания
15.1. Проверочные вопросы
15.2. Веб-приложение, управлямое данными
15.3. Дополнительные ресурсы
Резюме
Глава 16. Разработка сайтов с использованием паттерна MVC
Настройка сайта ASP.NET Core MVC
Создание и изучение сайтов ASP.NET Core MVC
Обзор сайта ASP.NET Core MVC
Обзор базы данных ASP.NET Core Identity
Изучение сайта ASP.NET Core MVC
Запуск ASP.NET Core MVC
Маршрутизация по умолчанию
Контроллеры и действия
Фильтры
Сущности и модели представлений
Представления
Добавление собственного функционала на сайт ASP.NET Core MVC
Определение пользовательских стилей
Настройка категории изображений
Синтаксис Razor
Определение типизированного представления
Тестирование измененной главной страницы
Передача параметров с помощью значения маршрута
Привязка моделей
Проверка модели
Методы класса-помощника для представления
Отправка запросов в базу данных и использование шаблонов отображения
Улучшение масштабируемости с помощью асинхронных задач
Использование других шаблонов проектов
Установка дополнительных шаблонов
Практические задания
16.1. Проверочные вопросы
16.2. Реализация MVC для страницы, содержащей сведения о категориях
16.3. Улучшение масштабируемости за счет понимания и реализации асинхронных методов действий
16.4. Дополнительные ресурсы
Резюме
Глава 17. Разработка сайтов с помощью системы управления контентом (CMS)
Преимущества CMS
Основные функции CMS
Возможности корпоративной CMS
Платформы CMS
Piranha CMS
Создание веб-приложения с помощью Piranha CMS
Редактирование содержимого сайта и страницы
Создание новой страницы верхнего уровня
Создание новой дочерней страницы
Обзор архива блога
Аутентификация и авторизация
Изучение конфигурации
Тестирование нового контента
Маршрутизация
Мультимедиа
Сервис приложения
Типы контента
Стандартные блоки
Типы компонентов и стандартных блоков
Определение компонентов, типов контента и шаблонов
Стандартные типы страницы
Тип страниц «архив блога»
Определение пользовательских типов контента и компонентов
Определение пользовательских шаблонов контента для типов контента
Настройка запуска и импорта из базы данных
Тестирование сайта Northwind CMS
Загрузка изображений и создание корня каталога
Импорт контента (содержимого) страниц категорий и товаров
Управление контентом (содержимым) каталога
Хранение контента в системе Piranha
Практические задания
17.1. Проверочные вопросы
17.2. Определение типа блока для отображения  видео с YouTube
17.3. Дополнительные ресурсы
Резюме
Глава 18. Создание и использование веб-сервисов
Создание веб-сервисов с помощью Web API в ASP.NET Core
Аббревиатуры, типичные для веб-сервисов
Разработка проекта Web API в ASP.NET Core
Функциональность веб-сервисов
Создание веб-сервиса для базы данных Northwind
Создание хранилищ данных для сущностей
Реализация контроллера Web API
Настройка хранилища данных клиентов и контроллера Web API
Спецификация деталей проблемы
Документирование и тестирование веб-сервисов
Тестирование GET-запросов в браузерах
Тестирование HTTP-запросов с помощью расширения REST Client
Swagger
Тестирование запросов с помощью Swagger UI
Обращение к сервисам с помощью HTTP-клиентов
HttpClient
Настройка HTTP-клиентов с помощью HttpClientFactory
Включение совместного использования ресурсов между источниками
Реализация расширенных функций
Мониторинг работоспособности — HealthCheck API
Реализация анализаторов и соглашений Open API
Система маршрутизации на основе конечных точек
Настройки маршрутизации на основе конечных точек
Прочие коммуникационные технологии
Windows Communication Foundation (WCF)
gRPC
Практические задания
18.1. Проверочные вопросы
18.2. Создание и удаление клиентов с помощью HttpClient
18.3. Дополнительные ресурсы
Резюме
Глава 19. Разработка интеллектуальных приложений с помощью алгоритмов машинного обучения
Общие сведения о машинном обучении
Жизненный цикл систем машинного обучения
Наборы данных для обучения и тестирования
Задачи машинного обучения
Машинное обучение Microsoft Azure
Знакомство с ML.NET
Знакомство с Infer.NET
Обучающие конвейеры ML.NET
Концепции обучения моделей
Пропущенные значения и типы ключей
Характеристики и метки
Рекомендация товаров пользователю
Анализ проблем
Сбор и обработка данных
Разработка проекта сайта NorthwindML
Тестирование сайта с рекомендациями по покупке товара
Практические задания
19.1. Проверочные вопросы
19.2. Примеры
19.3. Дополнительные ресурсы
Резюме
Глава 20. Разработка настольных Windows-приложений
Общие сведения об устаревших платформах Windows-приложений
Поддержка .NET Core 3.0 для устаревших Windows-платформ
Установка Microsoft Visual Studio 2019 для операционной системы Windows
Работа с Windows Forms
Миграция приложений WPF в .NET Core 3.0
Миграция устаревших приложений с помощьюWindows Compatibility Pack (пакет обеспечения совместимости Windows)
Общие сведения о современной платформе Windows
Общие сведения об универсальной платформе Windows
Fluent Design System
Стандарт XAML
Разработка современного Windows-приложения
Включение режима разработчика
Разработка UWP-приложений
Типовые элементы управления и акриловая кисть
Подсвечивание
Установка дополнительных элементов управления
Использование ресурсов и шаблонов
Общий доступ к ресурсам
Замена шаблона элемента управления
Привязка данных
Привязка к элементам
Создание HTTP-сервиса для привязки к данным
Привязка к данным из безопасного HTTP-сервиса
Создание пользовательского интерфейса для вызова HTTP-сервиса
Преобразование чисел в изображения
Тестирование привязки данных HTTP-сервиса
Практические задания
20.1. Проверочные вопросы
20.2. Дополнительные ресурсы
Резюме
Глава 21. Разработка кросс-платформенных мобильных приложений с помощью Xamarin.Forms
Знакомство с Xamarin и Xamarin.Forms
Xamarin.Forms в качестве расширения Xamarin
Мобильные стратегии
Дополнительная функциональность
Компоненты пользовательского интерфейса Xamarin.Forms
Разработка мобильных приложений с помощью Xamarin.Forms
Добавление Android SDK
Создание решения Xamarin.Forms
Создание модели объекта с двусторонней привязкой данных
Создание компонента для набора телефонных номеров
Создание представлений для списка клиентов и подробной информации о клиенте
Тестирование мобильного приложения в среде iOS
Взаимодействие мобильных приложений с веб-сервисами
Настройка веб-сервиса в целях разрешения небезопасных запросов
Настройка приложения для iOS в целях разрешения небезопасных подключений
Добавление NuGet-пакетов для потребления веб-сервиса
Получение данных о клиентах с помощью сервиса
Практические задания
21.1. Проверочные вопросы
21.2. Дополнительные ресурсы
Резюме
Послесловие
Приложение. Ответы на проверочные вопросы
Глава 1. Привет, C#! Здравствуй, .NET Core!
Глава 2. Говорим на языке C#
Глава 3. Управление потоками и преобразование типов
Глава 4. Разработка, отладка и тестирование функций
Глава 5. Создание пользовательских типов с помощью объектно-ориентированного программирования
Глава 6. Реализация интерфейсов и наследование классов
Глава 7. Описание и упаковка типов .NET
Глава 8. Работа с распространенными типами .NET
Глава 9. Работа с файлами, потоками и сериализация
Глава 10. Защита данных и приложений
Глава 11. Работа с базами данных с помощью Entity Framework Core
Глава 12. Создание запросов и управление данными с помощью LINQ
Глава 13. Улучшение производительности и масштабируемости с помощью многозадачности
Глава 15. Разработка сайтов с помощью ASP.NET Core Razor Pages
Глава 16. Разработка сайтов с использованием паттерна MVC
Глава 17. Разработка сайтов с помощью системы управления контентом (CMS)
Глава 18. Разработка и использование веб-сервисов
Глава 19. Разработка интеллектуальных приложений с помощью алгоритмов машинного обучения
Глава 20. Разработка настольных Windows-приложений
Глава 21. Разработка кросс-платформенных мобильных приложений с помощью Xamarin.Forms

В издании рассмотрены все темы, связанные с разработкой на C#. В начале книги вы ознакомитесь с основами C#, в том числе с объектно-ориентированным программированием, а также с новыми возможностями C# 8.0. Несколько глав посвящено .NET Standard API, применяемым для запроса данных и управления ими, отслеживания производительности и ее повышения, работы с файловой системой, асинхронными потоками, сериализацией и шифрованием. Кроме того, на примерах кроссплатформенных приложений вы сможете собрать и развернуть собственные. Например, веб-приложения с использованием ASP.NET Core или мобильные приложения на Xamarin Forms.

Также вы познакомитесь с технологиями, применяемыми при создании приложений Windows для ПК, в частности с Windows Forms, Windows Presentation Foundation (WPF) и Universal Windows Platform (UWP).


Похожее:

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

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