دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: 2
نویسندگان: Andrew Lock
سری:
ISBN (شابک) : 9781617298301
ناشر: Manning Publications
سال نشر: 2021
تعداد صفحات: 834
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 33 مگابایت
در صورت تبدیل فایل کتاب ASP.NET Core in Action به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب ASP.NET هسته در عمل نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
ASP.NET Core in Action، نسخه دوم دنیای توسعه وب چند پلتفرمی را با ASP.NET Core باز می کند. شما با یک دوره خرابی در NET Core شروع میکنید، سپس شروع به ساختن برنامههای وب شگفتانگیز گام به گام میکنید و به طور سیستماتیک ویژگیهای ضروری را اضافه میکنید. در طول مسیر، مراحل مهم فرآیند مانند آزمایش، استقرار چند پلتفرمی و امنیت را با هم ترکیب خواهید کرد. به طور کامل به ASP.NET 3.1، ASP.NET Core in Action، نسخه دوم بهروزرسانی شده است، یک آغازگر عملی برای ساختن برنامههای وب بین پلتفرمی با مهارتهای C# و NET شما. حتی اگر هرگز با ASP.NET کار نکرده اید، به سرعت شروع به ایجاد برنامه های وب چند پلتفرمی مولد خواهید کرد! ASP.NET Core in Action، نسخه دوم دنیای توسعه وب چند پلتفرمی را با ASP.NET Core باز می کند. شما با یک دوره خرابی در NET Core شروع میکنید، سپس شروع به ساختن برنامههای وب شگفتانگیز گام به گام میکنید و به طور سیستماتیک ویژگیهای ضروری را اضافه میکنید. در طول مسیر، مراحل مهم فرآیند مانند آزمایش، استقرار چند پلتفرمی و امنیت را با هم ترکیب خواهید کرد. خرید کتاب چاپی شامل یک کتاب الکترونیکی رایگان در قالبهای PDF، Kindle و ePub از انتشارات منینگ است.
ASP.NET Core in Action, Second Edition opens up the world of cross-platform web development with ASP.NET Core. You’ll start with a crash course in .NET Core, then you’ll begin to build amazing web applications step by step, systematically adding essential features. Along the way, you’ll mix in important process steps like testing, multiplatform deployment, and security. Fully updated to ASP.NET 3.1, ASP.NET Core in Action, Second Edition is a hands-on primer to building cross-platform web applications with your C# and .NET skills. Even if you’ve never worked with ASP.NET you’ll start creating productive cross-platform web apps fast! ASP.NET Core in Action, Second Edition opens up the world of cross-platform web development with ASP.NET Core. You’ll start with a crash course in .NET Core, then you’ll begin to build amazing web applications step by step, systematically adding essential features. Along the way, you’ll mix in important process steps like testing, multiplatform deployment, and security. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
Предисловие Благодарности Об этой книге Об авторе Об иллюстрации на обложке Часть I. Начало работы с ASP.NET Core Глава 1. Начало работы с ASP.NET Core 1.1 Введение в ASP.NET Core 1.1.1 Использование веб-фреймворка 1.1.2 Что такое ASP.NET Core? 1.2 Когда следует отдать предпочтение ASP.NET Core 1.2.1 Какие типы приложений можно создавать? 1.2.2 Если вы новичок в разработке на .NET 1.2.3 Если вы разработчик, создающий новое приложение 1.2.4 Перенос существующего ASP.NET-приложения на ASP.NET Core 1.3 Как работает ASP.NET Core? 1.3.1 Как работает веб-запрос по протоколу HTTP? 1.3.2 Как ASP.NET Core обрабатывает запрос? 1.4 Что вы узнаете из этой книги Резюме Глава 2. Ваше первое приложение 2.1 Краткий обзор приложения ASP.NET Core 2.2 Создание вашего первого приложения ASP.NET Core 2.2.1 Использование шаблона 2.2.2 Сборка приложения 2.3 Запуск веб-приложения 2.4 Разбираемся с макетом проекта 2.5 Файл проекта .csproj: определение зависимостей 2.6 Класс Program: сборка веб-хоста 2.7 Класс Startup: настройка вашего приложения 2.7.1 Добавление и настройка сервисов 2.7.2 Определяем, как обрабатываются запросы с помощью промежуточного программного обеспечения 2.8 Создание ответов с помощью Razor Pages 2.8.1 Создание HTML с помощью страниц Razor 2.8.2 Логика обработки запросов с помощью PageModels и обработчиков Резюме Глава 3. Обработка запросов с помощью конвейера промежуточного ПО 3.1 Что такое промежуточное ПО? 3.2 Объединение компонентов в конвейер 3.2.1 Простой сценарий конвейера 1: страница приветствия 3.2.2 Простой сценарий конвейера 2: обработка статических файлов 3.2.3 Простой сценарий конвейера 3: приложение со страницами Razor 3.3 Обработка ошибок с помощью промежуточного ПО 3.3.1 Просмотр исключений в окружении разработки: DeveloperExceptionPage 3.3.2 Обработка исключений в промышленном окружении: ExceptionHandlerMiddleware 3.3.3 Обработка других ошибок: StatusCodePagesMiddleware 3.3.4 Компонент обработки ошибок и веб-API Резюме Глава 4. Создание веб-сайта с помощью страниц Razor 4.1 Введение в Razor Pages 4.1.1 Изучение типичной страницы Razor 4.1.2 Паттерн проектирования MVC 4.1.3 Применение паттерна проектирования MVC к Razor Pages 4.1.4 Добавление Razor Pages в приложение 4.2 Сравнение Razor Pages и MVC в ASP.NET Core 4.2.1 Контроллеры MVC в ASP.NET Core 4.2.2 Преимущества Razor Pages 4.2.3 Когда выбирать контроллеры MVC вместо Razor Pages 4.3 Razor Pages и обработчики страниц 4.3.1 Прием параметров в обработчиках страниц 4.3.2 Возврат ответов с помощью ActionResults Резюме Глава 5. Сопоставление URL-адресов с Razor Pages с использованием маршрутизации 5.1 Что такое маршрутизация? 5.2 Маршрутизация в ASP.NET Core 5.2.1 Использование маршрутизации конечных точек в ASP.NET Core 5.2.2 Маршрутизация на основе соглашений и маршрутизация на основе атрибутов 5.2.3 Маршрутизация и страницы Razor 5.3 Настройка шаблонов маршрутов для страницы Razor 5.3.1 Добавление сегмента в шаблон маршрута 5.3.2 Полная замена шаблона маршрута страницы Razor 5.4 Изучение синтаксиса шаблона маршрута 5.4.1 Использование дополнительных значений и значений по умолчанию 5.4.2 Добавление дополнительных ограничений к параметрам маршрута 5.4.3 Сопоставление произвольных URL-адресов с помощью универсального параметра 5.5 Генерация URL-адресов из параметров маршрута 5.5.1 Создание URL-адресов для страницы Razor 5.5.2 Создание URL-адресов для контроллера MVC 5.5.3 Создание URL-адресов с помощью ActionResults 5.5.4 Создание URL-адресов из других частей вашего приложения 5.6 Выбор обработчика страницы для вызова 5.7 Настройка соглашений с помощью Razor Pages Резюме Глава 6. Модель привязки: получение и проверка пользовательского ввода 6.1 Модели в Razor Pages и MVC 6.2 От запроса к модели: делаем запрос полезным 6.2.1 Связывание простых типов 6.2.2 Привязка сложных типов 6.2.3 Выбор источника привязки 6.3 Обработка пользовательского ввода с помощью валидации модели 6.3.1 Необходимость валидации модели 6.3.2 Использование атрибутов DataAnnotations для валидации 6.3.3 Валидация модели на сервере в целях безопасности 6.3.4 Валидация на стороне клиента для улучшения пользовательского интерфейса 6.4 Организация моделей привязки в Razor Pages Резюме Глава 7. Визуализация HTML-кода с использованием представлений Razor 7.1 Представления: визуализация пользовательского интерфейса 7.2 Создание представлений Razor 7.2.1 Представления Razor и сопутствующий код 7.2.2 Знакомство с шаблонами Razor 7.2.3 Передача данных в представления 7.3 Создание динамических веб-страниц с помощью Razor 7.3.1 Использование C# в шаблонах Razor 7.3.2 Добавление циклов и условий в шаблоны Razor 7.3.3 Визуализация HTML с помощью метода Raw 7.4 Макеты, частичные представления и _ViewStart 7.4.1 Использование макетов для общей разметки 7.4.2 Переопределение родительских макетов с помощью секций 7.4.3 Использование частичных представлений для инкапсуляции разметки 7.4.4 Выполнение кода в каждом представлении с помощью _ViewStart и _ViewImports 7.5 Выбор представления из контроллера MVC Резюме Глава 8. Создание форм с помощью тег-хелперов 8.1 Редакторы кода и тег-хелперы 8.2 Создание форм с помощью тег-хелперов 8.2.1 Тег-хелпер формы 8.2.2 Тег-хелпер метки (label) 8.2.3 Тег-хелперы ввода (input) и области текста (textarea) 8.2.4 Тег-хелпер раскрывающегося списка 8.2.5 Тег-хелперы сообщений валидации и сводки сообщений (Validation Summary) 8.3 Создание ссылок с помощью тег-хелпера якоря (Anchor Tag Helper) 8.4 Сброс кеша с помощью тег-хелпера добавления версии (Append Version Tag Helper) 8.5 Использование условной разметки с помощью тег-хелпера окружения Резюме Глава 9. Создание веб-API для мобильных и клиентских приложений с помощью MVC 9.1 Что такое веб-API, и когда его следует использовать? 9.2 Создание первого проекта веб-API 9.3 Применение паттерна проектирования MVC к веб-API 9.4 Маршрутизация на основе атрибутов: связывание методов действий с URL-адресами 9.4.1 Сочетание атрибутов маршрута, чтобы ваши шаблоны маршрутов следовали принципу DRY 9.4.2 Использование замены маркера для уменьшения дублирования при маршрутизации на основе атрибутов 9.4.3 Обработка HTTP-методов с помощью маршрутизации на основе атрибутов 9.5 Использование общепринятых соглашений с атрибутом [ApiController] 9.6 Генерация ответа от модели 9.6.1 Настройка форматеров по умолчанию: добавляем поддержку XML 9.6.2 Выбор формата ответа с помощью согласования содержимого Резюме Часть II. Создание полноценных приложений Глава 10. Конфигурация сервисов с помощью внедрения зависимостей 10.1 Введение во внедрение зависимостей 10.1.1 Преимущества внедрения зависимостей 10.1.2 Создание слабосвязанного кода 10.1.3 Внедрение зависимостей в ASP.NET Core 10.2 Использование контейнера внедрения зависимостей 10.2.1 Добавление сервисов фреймворка ASP.NET Core в контейнер 10.2.2 Регистрация собственных сервисов в контейнере 10.2.3 Регистрация сервисов с использованием объектов и лямбда-функций 10.2.4 Многократная регистрация сервиса в контейнере 10.2.5 Внедрение сервисов в методы действий, обработчики страниц и представления 10.3 Жизненный цикл: когда создаются сервисы? 10.3.1 Transient: все уникально 10.3.2 Scoped: давайте держаться вместе 10.3.3 Singleton: может быть только один 10.3.4 Следите за захваченными зависимостями Резюме Глава 11. Конфигурирование приложения ASP.NETCore 11.1 Представляем модель конфигурации ASP.NET Core 11.2 Конфигурирование приложения с помощью метода CreateDefaultBuilder 11.3 Создание объекта конфигурации для вашего приложения 11.3.1 Добавление поставщика конфигурации в файле Program.cs 11.3.2 Использование нескольких поставщиков для переопределения значений конфигурации 11.3.3 Безопасное хранение секретов конфигурации 11.3.4 Перезагрузка значений конфигурации при их изменении 11.4 Использование строго типизированных настроек с паттерном Options 11.4.1 Знакомство с интерфейсом IOptions 11.4.2 Перезагрузка строго типизированных параметров с помощью IOptionsSnapshot 11.4.3 Разработка классов параметров для автоматической привязки 11.4.4 Связывание строго типизированных настроек без интерфейса IOptions 11.5 Настройка приложения для нескольких окружений 11.5.1 Определение окружения размещения 11.5.2 Загрузка файлов конфигурации для конкретного окружения 11.5.3 Задаем окружение размещения Резюме Глава 12. Cохраняем данные с Entity Framework Core 12.1 Знакомство с Entity Framework Core 12.1.1 Что такое EF Core? 12.1.2 Зачем использовать инструмент объектно-реляционного отображения? 12.1.3 Когда следует выбирать EF Core? 12.1.4 Отображение базы данных в код приложения 12.2 Добавляем EF Core в приложение 12.2.1 Выбор провайдера базы данных и установка EF Core 12.2.2 Создание модели данных 12.2.3 Регистрация контекста данных 12.3 Управление изменениями с помощью миграций 12.3.1 Создаем первую миграцию 12.3.2 Добавляем вторую миграцию 12.4 Выполнение запроса к базе данных и сохранение в ней данных 12.4.1 Создание записи 12.4.2 Загрузка списка записей 12.4.3 Загрузка одной записи 12.4.4 Обновление модели 12.5 Использование EF Core в промышленных приложениях Резюме Глава 13. Конвейер фильтров MVC и Razor Pages 13.1 Что такое фильтры, и когда их использовать 13.1.1 Конвейер фильтров MVC 13.1.2 Конвейер фильтров Razor Pages 13.1.3 Фильтры или промежуточное ПО: что выбрать? 13.1.4 Создание простого фильтра 13.1.5 Добавляем фильтры к действиям, контроллерам, страницам Razor Pages и глобально 13.1.6 Порядок выполнения фильтров 13.2 Создание фильтров для приложения 13.2.1 Фильтры авторизации: защита API 13.2.2 Фильтры ресурсов: прерывание выполнения методов действий 13.2.3 Фильтры действий: настройка привязки модели и результатов действий 13.2.4 Фильтры исключений: собственная обработка исключений для методов действий 13.2.5 Фильтры результатов: настройка результатов действий перед их выполнением 13.2.6 Фильтры страниц: настройка привязки модели для Razor Pages 13.3 Прерывание выполнения конвейера 13.4 Использование внедрения зависимостей с атрибутами фильтра Резюме Глава 14. Аутентификация: добавляем пользователей в приложение с помощью ASP.NET Core Identity 14.1 Знакомство с аутентификацией и авторизацией 14.1.1 Пользователи и утверждения в ASP.NET Core 14.1.2 Аутентификация в ASP.NET Core: сервисы и промежуточное ПО 14.1.3 Аутентификация для API и распределенных приложений 14.2 Что такое ASP.NET Core Identity? 14.3 Создание проекта, в котором используется ASP.NET Core Identity 14.3.1 Создание проекта из шаблона 14.3.2 Изучение шаблона в Обозревателе решений 14.3.3 Модель данных ASP.NET Core Identity 14.3.4 Взаимодействие с ASP.NET Core Identity 14.4 Добавляем ASP.NET Core Identity в существующий проект 14.4.1 Настройка сервисов ASP.NET Core Identity и промежуточного ПО 14.4.2 Обновление модели данных EF Core для поддержки Identity 14.4.3 Обновление представлений Razor для связи с пользовательским интерфейсом Identity 14.5 Настройка страницы в пользовательском интерфейсе ASP.NET Core Identity по умолчанию 14.6 Управление пользователями: добавление специальных данных для пользователей Резюме Глава 15. Авторизация: обеспечиваем защиту приложения 15.1 Знакомство с авторизацией 15.2 Авторизация в ASP.NET Core 15.2.1 Предотвращение доступа анонимных пользователей к вашему приложению 15.2.2 Обработка запросов, не прошедших аутентификацию 15.3 Использование политик для авторизации на основе утверждений 15.4 Создание специальных политик авторизации 15.4.1 Требования и обработчики: строительные блоки политики 15.4.2 Создание политики со специальным требованием и обработчиком 15.5 Управление доступом с авторизацией на основе ресурсов 15.5.1 Ручная авторизация запросов с помощью интерфейса IAuthorizationService 15.5.2 Создание обработчика AuthorizationHandler на основе ресурсов 15.6 Скрытие элементов в шаблонах Razor от незарегистрированных пользователей Резюме Глава 16. Публикация и развертывание приложения 16.1 Модель хостинга ASP.NET Core 16.1.1 Запуск и публикация приложения ASP.NET Core 16.1.2 Выбор метода развертывания для вашего приложения 16.2 Публикация приложения в IIS 16.2.1 Конфигурирование IIS для ASP.NET Core 16.2.2 Подготовка и публикация приложения в IIS 16.3 Размещение приложения в Linux 16.3.1 Запуск приложения ASP.NET Core за обратным прокси-сервером в Linux 16.3.2 Подготовка приложения к развертыванию в Linux 16.4 Настройка URL-адресов приложения 16.5 Оптимизация клиентских ресурсов с помощью BundlerMinifier 16.5.1 Ускорение работы приложения с помощью упаковки и минификации кода 16.5.2 Добавляем BundlerMinifier в приложение 16.5.3 Использование минифицированных файлов в промышленном окружении с помощью тег-хелпера окружения 16.5.4 Обслуживание часто используемых файлов из сети доставки содержимого Резюме Часть III. Расширение приложений Глава 17. Мониторинг и устранение ошибок с помощью журналирования 17.1 Эффективное использование журналирования в промышленном приложении 17.1.1 Выявление проблем с помощью специальных сообщений журнала 17.1.2 Абстракции журналирования ASP.NET Core 17.2 Добавление сообщений журнала в приложение 17.2.1 Уровень сообщения журнала: насколько важно сообщение журнала? 17.2.2 Категория сообщения журнала: какой компонент создал журнал 17.2.3 Форматирование сообщений и сбор значений параметров 17.3 Контроль места записи журналов с помощью поставщиков журналирования 17.3.1 Добавление нового поставщика журналирования в приложение 17.3.2 Замена ILoggerFactory по умолчанию на Serilog 17.4 Изменение избыточности сообщений журналов с помощью фильтрации 17.5 Структурное журналирование: создание полезных сообщений журналов с возможностью поиска 17.5.1 Добавление поставщика структурного журналирования в приложение 17.5.2 Использование областей журналирования для добавления дополнительных свойств в сообщения журнала Резюме Глава 18. Повышаем безопасность приложения 18.1 Добавляем протокол HTTPS в приложение 18.1.1 Использование HTTPS-сертификатов для разработки 18.1.2 Настройка Kestrel для использования сертификата HTTPS в промышленном окружении 18.1.3 Делаем так, чтобы протокол HTTPS использовался для всего приложения 18.2 Защита от межсайтового скриптинга 18.3 Защита от межсайтовой подделки запросов (CSRF) 18.4 Вызов веб-API из других доменов с помощью CORS 18.4.1 Разбираемся с CORS и тем, как он работает 18.4.2 Добавление глобальной политики CORS ко всему приложению 18.4.3 Добавляем CORS к определенным действиям веб-API с помощью атрибута EnableCors 18.4.4 Настройка политик CORS 18.5 Изучение других векторов атак 18.5.1 Обнаружение и предотвращение атак с открытым перенаправлением 18.5.2 Предотвращение атак с использованием внедрения SQL-кода с помощью EF Core и параметризации 18.5.3 Предотвращение небезопасных прямых ссылок на объекты 18.5.4 Защита паролей и данных пользователей Резюме Глава 19. Создание специальных компонентов 19.1 Настройка конвейера промежуточного ПО 19.1.1 Создание простых конечных точек с помощью метода расширения Run 19.1.2 Ветвление конвейера с помощью метода расширения Map 19.1.3 Добавление в конвейер с помощью метода расширения Use 19.1.4 Создание специального компонента промежуточного ПО 19.2 Создание специальных конечных точек с помощью маршрутизации конечных точек 19.2.1 Создание специального компонента маршрутизации конечных точек 19.2.2 Создание простых конечных точек с помощью MapGet и WriteJsonAsync 19.2.3 Применение авторизации к конечным точкам 19.3 Работа с требованиями к сложной конфигурации 19.3.1 Частичное создание конфигурации для настройки дополнительных поставщиков 19.3.2 Использование сервисов для настройки IOptions с помощью IConfigureOptions 19.4 Использование стороннего контейнера внедрения зависимостей Резюме Глава 20. Создание специальных компонентов MVC и Razor Pages 20.1 Создание специального тег-хелпера Razor 20.1.1 Вывод информации об окружении с помощью специального тег-хелпера 20.1.2 Создание специального тег-хелпера для условного скрытия элементов 20.1.3 Создание тег-хелпера для преобразования Markdown в HTML 20.2 Компоненты представления: добавление логики в частичные представления 20.3 Создание специального атрибута валидации 20.4 Замена фреймворка валидации на FluentValidation 20.4.1 Сравнение FluentValidation и атрибутов DataAnnotations 20.4.2 Добавляем FluentValidation в приложение Резюме Глава 21. Вызов удаленных API с помощью IHttpClientFactory 21.1 Вызов API для протокола HTTP: проблема с классом HttpClient 21.2 Создание экземпляров класса HttpClient с помощью интерфейса IHttpClientFactory 21.2.1 Использование IHttpClientFactory для управления жизненным циклом HttpClientHandler 21.2.2 Настройка именованных клиентов во время регистрации 21.2.3 Использование типизированных клиентов для инкапсуляции HTTP-вызовов 21.3 Обработка временных ошибок HTTP с помощью библиотеки Polly 21.4 Создание специального обработчика HttpMessageHandler Резюме Глава 22. Создание фоновых задач и сервисов 22.1 Запуск фоновых задач с помощью интерфейса IHostedService 22.1.1 Запуск фоновых задач по таймеру 22.1.2 Использование сервисов с жизненным циклом Scoped в фоновых задачах 22.2 Создание сервисов рабочей роли без пользовательского интерфейса с использованием IHost 22.2.1 Создание сервиса рабочей роли из шаблона 22.2.2 Запуск сервисов рабочей роли в промышленном окружении 22.3 Координация фоновых задач с помощью Quartz.NET 22.3.1 Установка Quartz.NET в приложение ASP.NET Core 22.3.2 Настройка запуска задания по расписанию с помощью Quartz.NET 22.3.3 Использование кластеризации для добавления избыточности в фоновые задачи Резюме Глава 23. Тестирование приложения 23.1 Тестирование в ASP.NET Core 23.2 Модульное тестирование с xUnit 23.2.1 Создание первого тестового проекта 23.2.2 Запуск тестов командой dotnet test 23.2.3 Ссылка на приложение из тестового проекта 23.2.4 Добавление модульных тестов с атрибутами Fact и Theory 23.2.5 Тестирование условий отказа 23.3 Модульное тестирование специального промежуточного ПО 23.4 Модульное тестирование API-контроллеров 23.5 Интеграционное тестирование: тестирование всего приложения в памяти 23.5.1 Создание TestServer с помощью пакета Test Host 23.5.2 Тестирование приложения с помощью класса WebApplicationFactory 23.5.3 Замена зависимостей в классе WebApplicationFactory 23.5.4 Уменьшение дублирования кода за счет создания специального класса WebApplicationFactory 23.6 Изоляция базы данных с помощью поставщика EF Core в памяти Резюме Приложение А. Подготовка окружения разработки Приложение В. Экосистема .NET Приложение C. Полезные ссылки Предметный указатель