C# 7 и .NET Core. Кросс-платформенная разработка для профессионалов. 3 изд

C# 7 и .NET Core. Кросс-платформенная разработка для профессионалов. 3 изд

C# 7 и .NET Core. Кросс-платформенная разработка для профессионалов. 3 изд
Автор: Прайс Марк Дж.
Дата выхода: 2018
Издательство: Питер
Количество страниц: 640
Размер файла: 12.3 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Оглавление....-1

 Об авторе....26

 О рецензентах....28

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

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

 Часть I. C# 7.1....30

 Часть II. .NET Core 2.0 и .NET Standard 2.0....30

 Часть III. Модели приложений....31

 Необходимое программное обеспечение....32

 Для кого эта книга....32

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

 Загрузка примеров кода....34

 Цветные изображения из книги....34

 Глава 1. Привет C#! Здравствуй .NET Core!....35

 Настройка среды разработки....36

 Альтернативные среды разработки C#....37

 Кросс-платформенное развертывание....38

 Установка Microsoft Visual Studio 2017....38

 Установка Microsoft Visual Studio Code....42

 Установка Microsoft Visual Studio для Mac....45

 Знакомство с .NET....48

 Обзор .NET Framework....48

 Проекты Mono и Xamarin....48

 Обзор .NET Core....48

 Обзор .NET Standard....50

 Обзор .NET Native....52

 Сравнение технологий .NET....52

 Написание и компиляция кода с помощью интерфейса командной строки .NET Core....52

 Кодирование в простом текстовом редакторе....53

 Создание и компиляция приложений с помощью интерфейса командной строки .NET Core....55

 Решение проблем компиляции....57

 Знакомство с промежуточным языком....57

 Написание и компиляция кода с применением Microsoft Visual Studio 2017....58

 Кодирование в Microsoft Visual Studio 2017....58

 Компиляция кода в Visual Studio 2017....62

 Работа над ошибками....63

 Добавление ранее созданных проектов в Visual Studio 2017....64

 Автоматическое форматирование кода....65

 Интерактивный C#....65

 Другие полезные окна....67

 Написание и компиляция кода с использованием Microsoft Visual Studio Code....68

 Кодирование в Visual Studio Code....68

 Компиляция кода в Visual Studio Code....70

 Автоматическое форматирование кода....70

 Написание и компиляция кода с помощью Microsoft Visual Studio для Mac....71

 Управление исходным кодом с применением GitHub....73

 Использование системы Git в Visual Studio 2017....73

 Использование системы Git в Visual Studio Code....75

 Практические задания....77

 Проверочные вопросы....77

 Упражнение 1.1....77

 Дополнительные ресурсы....77

 Резюме....78

 Часть I. C# 7.1....79

 Глава 2. Говорим на языке C#....81

 Основы языка C#....81

 Visual Studio 2017....82

 Visual Studio Code в среде macOS Linux или Windows....84

 Грамматика языка C#....85

 Словарь языка C#....87

 Помощь в написании корректного кода....88

 Глаголы = методы....90

 Существительные = типы данных поля и переменные....91

 Подсчет количества типов и методов....91

 Объявление переменных....93

 Присвоение имен переменным....94

 Литеральные значения....94

 Хранение текста....95

 Хранение чисел....95

 Хранение логических значений....100

 Тип object....100

 Тип dynamic....101

 Локальные переменные....101

 Создаем тип допускающий значение null....102

 Обзор ссылочных типов допускающих значение null....103

 Хранение группы значений в массиве....105

 Анализ консольных приложений....106

 Отображение вывода пользователю....106

 Получение пользовательского ввода....107

 Импорт пространства имен....107

 Упрощение работы с командной строкой....108

 Чтение аргументов и работа с массивами....109

 Работа с переменными....113

 Экспериментируем с унарными операторами....113

 Экспериментируем с арифметическими операторами....114

 Логические операторы и операторы сравнения....115

 Практические задания....115

 Проверочные вопросы....115

 Упражнение 2.1. Числовые размеры и диапазоны....116

 Дополнительные ресурсы....116

 Резюме....117

 Глава 3. Управление потоком выполнения и преобразование типов....118

 Инструкции выбора....118

 Visual Studio 2017....118

 Visual Studio Code в среде macOS Linux или Windows....119

 Инструкция if....119

 Инструкция switch....121

 Инструкции перебора....123

 Инструкция while....124

 Инструкция do....124

 Инструкция for....125

 Инструкция foreach....125

 Приведение и преобразование типов....126

 Приведение от числа к числу....126

 Использование типа System.Convert....128

 Округление чисел....128

 Преобразование любого типа в строку....129

 Конвертация бинарного объекта в строку....130

 Разбор строк для преобразования в числа или значения даты и времени....131

 Обработка исключений при преобразовании типов....132

 Инструкция try....132

 Перехват всех исключений....133

 Перехват определенных исключений....133

 Проверка переполнения....135

 Инструкция checked....135

 Инструкция unchecked....136

 Поиск документации....137

 Сайты Microsoft Docs и MSDN....137

 Переход к определению....138

 Сайт StackOverflow....138

 Поисковая система Google....140

 Подписка на блоги....142

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

 Практические задания....142

 Проверочные вопросы....142

 Упражнение 3.1. Циклы и переполнение....143

 Упражнение 3.2. Циклы и операторы....143

 Упражнение 3.3. Обработка исключений....144

 Дополнительные ресурсы....144

 Резюме....145

 Глава 4. Создание отладка и тестирование функций....146

 Написание функций....146

 Написание функции таблицы умножения....147

 Написание функции возвращающей значение....148

 Написание математических функций....150

 Отладка приложений в процессе разработки....154

 Создание приложения с умышленной ошибкой....154

 Установка точек останова....155

 Панель Debugging....156

 Дополнительные панели отладки....157

 Пошаговое выполнение кода....158

 Настройка точек останова....160

 Ведение журнала во время разработки и выполнения....161

 Реализация прослушивателей Debug и Trace....162

 Переключение уровней трассировки....165

 Функции модульного тестирования....167

 Создание библиотеки классов для тестирования в Visual Studio 2017....167

 Создание проекта модульного тестирования в Visual Studio 2017....168

 Создание библиотеки классов для тестирования в Visual Studio Code....170

 Разработка модульных тестов....171

 Выполнение модульных тестов в Visual Studio 2017....172

 Выполнение модульных тестов в Visual Studio Code....173

 Практические задания....175

 Проверочные вопросы....175

 Упражнение 4.1. Отладка и модульное тестирование....175

 Дополнительные ресурсы....176

 Резюме....176

 Глава 5. Создание пользовательских типов с помощью объектно-ориентированного программирования....177

 Вкратце об объектно-ориентированном программировании....177

 Сборка библиотек классов....178

 Создание библиотек классов в Visual Studio 2017....178

 Создание библиотек классов в Visual Studio Code....179

 Определение классов....180

 Создание экземпляров классов....181

 Управление проектами в Visual Studio Code....184

 Наследование System.Object....185

 Хранение данных в полях....186

 Определение полей....186

 Хранение значения с помощью ключевого слова enum....188

 Хранение группы значений с помощью коллекций....191

 Создание статического поля....192

 Создание константного поля....193

 Создание поля только для чтения....194

 Инициализация полей с помощью конструкторов....194

 Настройка полей через символьные константы default....195

 Запись и вызов методов....197

 Комбинация нескольких значений с помощью кортежей....197

 Определение и передача параметров в методы....200

 Перегрузка методов....201

 Необязательные параметры и именованные аргументы....202

 Управление передачей параметров....203

 Разделение классов с помощью ключевого слова partial....205

 Управление доступом с помощью свойств и индексаторов....205

 Определение свойств только для чтения....206

 Определение настраиваемых свойств....207

 Определение индексаторов....208

 Практические задания....209

 Проверочные вопросы....209

 Дополнительные ресурсы....209

 Резюме....210

 Глава 6. Реализация интерфейсов и наследование классов....211

 Настройка библиотеки классов и консольного приложения....211

 Visual Studio 2017....212

 Visual Studio Code....212

 Определение классов....214

 Упрощение методов с помощью операторов....214

 Реализация функционала с применением метода....214

 Реализация функционала с помощью оператора....216

 Определение локальных функций....217

 Вызов и обработка событий....218

 Вызов методов с помощью делегатов....218

 Определение событий....219

 Реализация интерфейсов....221

 Универсальные интерфейсы....221

 Сравнение объектов при сортировке....222

 Многократное использование типов с помощью универсальных шаблонов....225

 Создание универсальных типов....226

 Создание универсального метода....228

 Управление памятью с применением ссылочных типов и типов значений....229

 Определение структур....229

 Освобождение неуправляемых ресурсов....230

 Обеспечение вызова метода Dispose....232

 Наследование классов....233

 Расширение классов....233

 Скрытие членов класса....234

 Переопределение членов....235

 Предотвращение наследования и переопределения....236

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

 Приведение в иерархиях наследования....238

 Неявное приведение....238

 Явное приведение....238

 Обработка исключений приведения....238

 Наследование и расширение типов .NET....239

 Наследование исключений....239

 Расширение типов при невозможности наследования....241

 Практические задания....243

 Проверочные вопросы....243

 Упражнение 6.1. Создание иерархии наследования....243

 Дополнительные ресурсы....243

 Резюме....244

 Часть II. .NET Core 2.0 и .NET Standard 2.0....245

 Глава 7. Обзор и упаковка типов .NET Standard....247

 Использование сборок и пространств имен....247

 Стандартные библиотеки классов и CoreFX....248

 Добавление ссылок на зависимые сборки....249

 Связанные сборки и пространства имен....250

 Связывание ключевых слов C# с типами .NET....255

 Совместное кросс-платформенное использование кода с помощью библиотек классов .NET Standard 2.0....256

 Создание библиотеки классов .NET Standard 2.0....257

 Использование NuGet-пакетов....258

 Метапакеты....259

 Платформы....260

 Исправление зависимостей....263

 Публикация приложений....263

 Подготовка консольного приложения к публикации....263

 Публикация в Visual Studio 2017....264

 Публикация в Visual Studio Code....267

 Упаковка библиотек для распространения с помощью NuGet....268

 Команды dotnet....268

 Добавление ссылки на пакет....269

 Упаковка библиотеки для распространения с помощью NuGet....271

 Тестирование пакетов....275

 Портирование кода в .NET Core....276

 Можно ли портировать?....277

 Нужно ли портировать?....277

 Анализатор портируемости .NET....277

 Сравнение .NET Framework и .NET Core....278

 Использование библиотек не относящихся к .NET Standard....278

 Практические задания....279

 Проверочные вопросы....280

 Дополнительные ресурсы....280

 Резюме....280

 Глава 8. Использование распространенных типов .NET Standard....281

 Работа с числами....281

 Крупные целые числа....282

 Работа с комплексными числами....283

 Работа с текстом....283

 Извлечение длины строки....284

 Извлечение символов строки....284

 Разделение строк....284

 Извлечение фрагмента строки....284

 Проверка содержимого строк....285

 Другие члены класса string....285

 Эффективное оперирование строками....286

 Сопоставление шаблонов с регулярными выражениями....287

 Работа с коллекциями....289

 Общие характеристики всех коллекций....290

 Понятие коллекции....291

 Работа со списками....293

 Работа со словарями....294

 Сортировка коллекций....295

 Использование специализированных коллекций....295

 Использование неизменяемых коллекций....296

 Работа с сетевыми ресурсами....296

 Работа с идентификаторами URI DNS и IP-адресами....297

 Опрос сервера....298

 Работа с типами и атрибутами....299

 Указание версий сборок....299

 Чтение метаданных о сборке....300

 Создание собственных атрибутов....301

 Другие возможности Reflection....303

 Глобализация кода....303

 Практические задания....305

 Проверочные вопросы....305

 Упражнение 8.1. Регулярные выражения....306

 Упражнение 8.2. Методы расширения....306

 Дополнительные ресурсы....306

 Резюме....307

 Глава 9. Работа с файлами потоками и сериализация....308

 Управление файловой системой....308

 Работа в кросс-платформенных средах и файловых системах....308

 Работа с дисками....311

 Работа с каталогами....312

 Управление файлами....314

 Управление путями....316

 Извлечение информации о файле....316

 Управление файлами....317

 Чтение и запись с помощью потоков....318

 Запись в текстовые и XML-потоки....322

 Освобождение файловых ресурсов....324

 Сжатие потоков....326

 Кодирование текста....328

 Преобразование строк в последовательности байтов....328

 Кодирование/декодирование текста в файлах....331

 Сериализация графов объектов....331

 XML-сериализация....331

 XML-десериализация....334

 Контроль результата XML-сериализации....335

 JSON-сериализация....335

 Сериализация в другие форматы....336

 Практические задания....337

 Проверочные вопросы....337

 Упражнение 9.1. XML-сериализация....337

 Дополнительные ресурсы....338

 Резюме....338

 Глава 10. Защита данных и приложений....339

 Терминология безопасности....339

 Ключи и их размеры....340

 Векторы инициализации (IV) и размеры блоков....340

 Соли....341

 Генерация ключей и векторов инициализации....341

 Шифрование и дешифрование данных....342

 Симметричное шифрование с помощью алгоритма AES....344

 Хеширование данных....348

 Подписывание данных....352

 Подписывание с помощью алгоритмов SHA256 и RSA....352

 Проверка подписи и валидация....354

 Генерация случайных чисел....355

 Генерация случайных чисел для игр....356

 Генерация случайных чисел для криптографии....356

 Тестирование генерации случайного числа или проверки подлинности....357

 Аутентификация и авторизация пользователей....358

 Реализация аутентификации и авторизации....359

 Тестирование аутентификации и авторизации....360

 Защита функций приложения....362

 Практические задания....363

 Проверочные вопросы....363

 Упражнение 10.1. Защита данных с помощью шифрования и хеширования....363

 Упражнение 10.2. Дешифрование данных....364

 Дополнительные ресурсы....364

 Резюме....364

 Глава 11. Работа с базами данных с помощью Entity Framework Core....365

 Современные базы данных....365

 Использование образца реляционной базы данных....366

 Microsoft SQL Server....366

 SQLite....371

 Настройка Entity Framework Core....375

 Выбор поставщика данных .NET....375

 Подключение к базе данных....376

 Определение моделей Entity Framework Core....378

 Соглашения EF Core....378

 Атрибуты аннотации EF Core....379

 EF Core Fluent API....379

 Создание модели EF Core....380

 Запрос данных из модели EF Core....384

 Логирование EF Core....386

 Соотнесение шаблонов с помощью Like....390

 Определение глобальных фильтров....391

 Схемы загрузки данных в EF Core....392

 Управление данными с помощью EF Core....395

 Добавление элементов....395

 Обновление элементов....396

 Удаление элементов....397

 Группировка контекстов базы данных....398

 Транзакции....398

 Определение явной транзакции....399

 Практические задания....400

 Проверочные вопросы....400

 Упражнение 11.1. Практика экспорта данных с помощью различных форматов сериализации....401

 Упражнение 11.2. Изучение документации EF Core....401

 Резюме....401

 Глава 12. Создание запросов и управление данными с помощью LINQ....402

 Написание запросов LINQ....402

 Расширение последовательностей с помощью перечислимого класса....403

 Фильтрация элементов с помощью метода Where....403

 Сортировка элементов....408

 Фильтрация по типу....409

 Работа с множествами....411

 Применение LINQ на платформе EF Core....413

 Проекция элементов с помощью ключевого слова select....413

 Создание модели EF Core....413

 Присоединение и группировка....416

 Агрегирование последовательностей....419

 Подслащение синтаксиса с помощью синтаксического сахара....419

 Использование нескольких потоков с помощью PLINQ....420

 Создание собственных методов расширения LINQ....424

 Работа с LINQ to XML....427

 Генерация XML с помощью LINQ to XML....427

 Чтение XML с применением LINQ to XML....428

 Практические задания....429

 Проверочные вопросы....429

 Упражнение 12.1. Создание запросов LINQ....429

 Дополнительные ресурсы....430

 Резюме....430

 Глава 13. Улучшение производительности и масштабируемости с помощью многозадачности....431

 Мониторинг производительности и использования ресурсов....431

 Оценка эффективности типов....431

 Мониторинг производительности и использования памяти....432

 Процессы потоки и задачи....437

 Асинхронное выполнение задач....439

 Синхронное выполнение нескольких действий....439

 Асинхронное выполнение нескольких действий с помощью задач....441

 Ожидание выполнения задач....443

 Задачи продолжения....444

 Вложенные и дочерние задачи....445

 Синхронизация доступа к общим ресурсам....446

 Доступ к ресурсу из нескольких потоков....447

 Применение к ресурсу взаимоисключающей блокировки....449

 Инструкция lock....449

 Выполнение атомарных операций....451

 Использование других типов синхронизации....451

 Методы async и await....452

 Увеличение скорости отклика консольных приложений....452

 Увеличение скорости отклика приложений с GUI....454

 Улучшение масштабируемости веб-приложений и веб-сервисов....454

 Часто используемые типы поддерживающие многозадачность....454

 Ключевое слово await в блоках catch....455

 Практические задания....455

 Проверочные вопросы....455

 Дополнительные ресурсы....456

 Резюме....456

 Часть III. Модели приложений....457

 Глава 14. Создание сайтов с помощью ASP.NET Core Razor Pages....461

 Веб-разработка....461

 Протокол передачи гипертекста....461

 Клиентская веб-разработка....464

 ASP.NET Core....466

 Классический ASP.NET и современный ASP.NET Core....467

 Создание проекта ASP.NET Core в Visual Studio 2017....467

 Создание проекта ASP.NET Core в Visual Studio Code....468

 Обзор шаблона пустого проекта ASP.NET Core Empty....468

 Тестирование пустого веб-сайта....470

 Включение статических файлов....472

 Включение файлов по умолчанию....474

 Технология Razor Pages....475

 Включение страниц Razor....475

 Определение страницы Razor....475

 Использование общих макетов с Razor Pages....476

 Использование отдельных файлов кода программной части с технологией Razor Pages....479

 Использование Entity Framework Core совместно с ASP.NET Core....481

 Создание сущностных моделей для базы данных Northwind....481

 Создание базы данных Northwind на сайте....489

 Настройка Entity Framework Core в качестве сервиса....490

 Работа с данными....492

 Практические задания....494

 Упражнение 14.1. Создание сайта ориентированного на данные....494

 Дополнительные ресурсы....494

 Резюме....495

 Глава 15. Разработка сайтов с помощью ASP.NET Core MVC....496

 Создание и настройка сайта ASP.NET Core MVC....496

 Создание сайта ASP.NET Core MVC....497

 Структура проекта веб-приложения ASP.NET Core MVC....500

 Миграция баз данных....502

 Тестирование сайта ASP.NET MVC....504

 Проверка подлинности с помощью системы ASP.NET Identity....505

 Структура сайта ASP.NET Core MVC....507

 Запуск ASP.NET Core....507

 Маршрутизация по умолчанию....509

 Контроллеры ASP.NET Core MVC....509

 Модели ASP.NET Core MVC....510

 Представления ASP.NET Core MVC....512

 Передача параметров с помощью значения маршрута....519

 Передача параметров с помощью строки запроса....521

 Практические задания....524

 Упражнение 15.1. Практика улучшения масштабируемости за счет понимания и реализации асинхронных методов....524

 Дополнительные ресурсы....524

 Резюме....524

 Глава 16. Создание веб-сервисов и приложений с помощью ASP.NET Core....525

 Создание сервисов с помощью веб-API ASP.NET Core и Visual Studio Code....525

 Обзор контроллеров ASP.NET Core....526

 Создание проекта веб-API ASP.NET Core....526

 Создание веб-сервиса для базы данных Northwind....530

 Создание репозиториев данных для сущностей....531

 Документирование и тестирование сервисов с применением Swagger....537

 Тестирование запросов GET в любом браузере....537

 Тестирование запросов POST PUT и DELETE с помощью Swagger....538

 Установка пакета Swagger....538

 Тестирование запросов GET с помощью Swagger UI....540

 Тестирование запросов POST с помощью Swagger UI....542

 Создание SPA с помощью Angular....545

 Шаблон проекта Angular....545

 Вызов NorthwindService....549

 Тестирование вызова сервиса компонентом Angular....552

 Использование других шаблонов проектов....554

 Практические задания....555

 Упражнение 16.1. React и Redux....555

 Дополнительные ресурсы....556

 Резюме....556

 Глава 17. Разработка Windows-приложений с помощью языка XAML и системы проектирования Fluent....557

 Общие сведения о современной платформе Windows....558

 Общие сведения об универсальной платформе Windows....558

 Обзор системы проектирования Fluent....559

 Набор стандартов XAML Standard 1.0....560

 Разработка современных Windows-приложений....561

 Активизация режима разработчика....562

 Создание проекта UWP-приложения....562

 Обзор основных элементов управления и акрилового материала....567

 Обзор эффекта отображения....568

 Установка дополнительных элементов управления....571

 Использование ресурсов и шаблонов....572

 Общий доступ к ресурсам....573

 Замена шаблона элемента управления....574

 Привязка данных....576

 Привязка к элементам....576

 Привязка к источникам данных....577

 Создание приложений с помощью Windows Template Studio....588

 Установка Windows Template Studio....588

 Выбор типов проектов сред страниц и функциональности....588

 Ретаргетинг проекта....591

 Настройка нескольких видов....591

 Тестирование функциональности приложения....592

 Практические задания....594

 Дополнительные ресурсы....594

 Резюме....594

 Глава 18. Разработка мобильных приложений с помощью XAML и Xamarin.Forms....595

 Знакомство с Xamarin и Xamarin.Forms....595

 Xamarin.Forms в качестве расширения Xamarin....596

 Говорим «мобильность» подразумеваем «облака»....596

 Разработка мобильных приложений с помощью Xamarin.Forms....597

 Установка Android SDK....598

 Создание решения Xamarin.Forms....598

 Создание модели....601

 Создание интерфейса для набора телефонных номеров....605

 Создание представлений для списка клиентов и подробной информации о клиенте....607

 Тестирование мобильного приложения в среде iOS....612

 Добавление NuGet-пакетов для вызова REST-сервиса....616

 Получение данных о клиентах с помощью сервиса....618

 Практические задания....619

 Дополнительные ресурсы....619

 Резюме....619

 Заключение....620

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

 Глава 1. Привет C#! Здравствуй .NET Core!....621

 Глава 2. Говорим на языке C#....622

 Глава 3. Управление потоком выполнения и преобразование типов....623

 Глава 4. Создание отладка и тестирование функций....625

 Глава 5. Создание пользовательских типов с помощью объектно-ориентированного программирования....626

 Глава 6. Реализация интерфейсов и наследование классов....627

 Глава 7. Обзор и упаковка типов .NET Standard....628

 Глава 8. Использование распространенных типов .NET Standard....629

 Глава 9. Работа с файлами потоками и сериализация....631

 Глава 10. Защита данных и приложений....632

 Глава 11. Работа с базами данных с помощью Entity Framework Core....633

 Глава 12. Создание запросов и управление данными с помощью LINQ....634

 Глава 13. Улучшение производительности и масштабируемости с помощью многозадачности....635

C# 7 – новая мощная и многофункциональная версия популярнейшего языка программирования от Майкрософт. Вы встретите немало интересных книг по языку C# и платформе .NET, однако, в большинстве из них лишь мельком рассматривается столь важный аспект, как кросс-платформенная разработка.

Научитесь писать приложения, которые работают всегда и везде, на ПК и мобильных устройствах. Познакомьтесь с инструментом Xamarin.Forms, освойте тонкости работы с Visual Studio 2017, добейтесь многогранности и универсальности ваших программ на C#.


Похожее:

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

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