MyBooks.club
Все категории

Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

На сайте mybooks.club вы можете бесплатно читать книги онлайн без регистрации, включая Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен. Жанр: Программирование . Доступна полная версия книги с кратким содержанием для предварительного ознакомления, аннотацией (предисловием), рецензиями от других читателей и их экспертным мнением.
Кроме того, на сайте mybooks.club вы найдете множество новинок, которые стоит прочитать.

Название:
Язык программирования C#9 и платформа .NET5
Дата добавления:
26 август 2023
Количество просмотров:
39
Читать онлайн
Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен краткое содержание

Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен - описание и краткое содержание, автор Эндрю Троелсен, читайте бесплатно онлайн на сайте электронной библиотеки mybooks.club

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле.
Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных.
Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

Язык программирования C#9 и платформа .NET5 читать онлайн бесплатно

Язык программирования C#9 и платформа .NET5 - читать книгу онлайн бесплатно, автор Эндрю Троелсен
class="empty-line"/>

В первой вспомогательной функции дескриптора для среды применяется атрибут include="Development", чтобы включить содержащиеся файлы, когда среда установлена в Development. В таком случае загружается неминифицированная версия Bootstrap. Во второй вспомогательной функции дескриптора для среды используется атрибут exclude="Development", чтобы задействовать содержащиеся файлы, когда среда отличается от Development. В таком случае загружается минифицированная версия Bootstrap. Файл site.css остается тем же самым в среде Development и других средах, поэтому он загружается за пределами вспомогательной функции дескриптора для среды.

Теперь модифицируйте частичное представление _JavaScriptFiles.cshtml, как показано ниже (обратите внимание, что файлы в разделе Development больше не имеют расширения .min):

<environment include="Development">

  <script src="~/lib/jquery/dist/jquery.js"></script>

  <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.js"></script>

</environment>

<environment exclude="Development">

  <script src="~/lib/jquery/dist/jquery.min.js"></script>

  <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>

</environment>

<script src="~/js/site.js" asp-append-version="true"></script>

Вспомогательная функция дескриптора для ссылки

Вспомогательная функция дескриптора для ссылки (<link>) имеет атрибуты, применяемые с локальными и удаленными файлами. Атрибут asp-append-version, используемый с локальными файлами, добавляет хеш-значение для файла как параметр строки запроса в URL, который отправляется браузеру. При изменении файла изменяется и хеш-значение, обновляя посылаемый браузеру URL. Поскольку ссылка изменилась, браузер очищает кеш от этого файла и перезагружает его. Модифицируйте дескрипторы ссылок для bootstrap.css и site.css в файле _Head.cshtml следующим образом:

<environment include="Development">

   <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css"

      asp-append-version="true"/>

</environment>

<environment exclude="Development">

  <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />

</environment>

<link rel="stylesheet" href="~/css/site.css" asp-append-version="true"/>

Ссылка, отправляемая браузеру для файла site.css, теперь выглядит так (ваше хеш-значение будет другим):

<link href="/css/site.css?v=v9cmzjNgxPHiyLIrNom5fw3tZj3TNT2QD7a0hBrSa4U"

    rel="stylesheet">

При загрузке файлов CSS из сети доставки содержимого вспомогательные функции дескрипторов предоставляют механизм тестирования, позволяющий удостовериться в том, что файл был загружен надлежащим образом. Тест ищет конкретное значение для свойства в определенном классе CSS, и если свойство не дает совпадения, то вспомогательная функция дескриптора загрузит запасной файл. Модифицируйте раздел <environment exclude="Development"> в файле _Head.cshtml, как показано ниже:

<environment exclude="Development">

  <link rel="stylesheet"

    href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/

bootstrap.min.css"

    asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.css"

    asp-fallback-test-class="sr-only"

    asp-fallback-test-property="position"

    asp-fallback-test-value="absolute"

crossorigin="anonymous"

    integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/

iJTQUOhcWr7x9JvoRxT2MZw1T"/>

</environment>

Вспомогательная функция дескриптора для сценария

Вспомогательная функция дескриптора для сценария (<script>) похожа на вспомогательную функцию дескриптора для ссылки с настройками очистки кеша и перехода на запасной вариант загрузки из сети доставки содержимого. Атрибут asp-append-version работает для сценариев точно так же, как для ссылок на таблицы стилей. Атрибуты asp-fallback-* также применяются с источниками файлов в сети доставки содержимого. Атрибут asp-fallback-test просто проверяет достоверность кода JavaScript и в случае неудачи загружает файл из запасного источника.

Обновите частичное представление _JavaScriptFiles.cshtml, чтобы использовать очистку кеша и переход на запасной вариант загрузки из сети доставки содержимого (обратите внимание, что шаблон MVC уже содержит атрибут asp-append-version в дескрипторе <script> для site.js):

<environment include="Development">

  <script src="~/lib/jquery/dist/jquery.js"

      asp-append-version="true"></script>

  <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.js"

      asp-append-version="true">

</script>

</environment>

<environment exclude="Development">

  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"

    asp-fallback-src="~/lib/jquery/dist/jquery.min.js"

    asp-fallback-test="window.jQuery"

    crossorigin="anonymous"

    integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=">

  </script>

  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/

bootstrap.bundle.min.js"

    asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"

    asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"

    crossorigin="anonymous"

    integrity="sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C

8PRhcEn3czEjhAO9o">

  </script>

</environment>

<script src="~/js/site.js" asp-append-version="true"></script>

Частичное представление _ValidationScriptsPartial.cshtml необходимо обновить с применением вспомогательных функций дескрипторов для среды и сценариев:

<environment include="Development">

   <script src="~/lib/jquery-validation/dist/jquery.validate.js"

     asp-append-version="true"></script>

   <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.

unobtrusive.js"

     asp-append-version="true"></script>

   </environment>

   <environment exclude="Development">

   <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-

validate/1.19.1/jquery.validate.min.js"

    asp-fallback-src="~/lib/jquery-validation/dist/jquery.validate.min.js"

    asp-fallback-test="window.jQuery && window.jQuery.validator"

    crossorigin="anonymous"

    integrity="sha256-F6h55Qw6sweK+t7SiOJX+2bpSAa3b/fnlrVCJvmEj1A=">

  </script>

   <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-

validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js"

    asp-fallback-src="~/lib/jquery-validation-unobtrusive/

jquery.validate.unobtrusive.min.js"

     asp-fallback-test="window.jQuery && window.jQuery.validator &&

window.jQuery.validator.

unobtrusive"

    crossorigin="anonymous"

    integrity="sha256-9GycpJnliUjJDVDqP0UEu/bsm9U+3dnQUH8+3W10vkY=">

  </script>

</environment>

Вспомогательная функция дескриптора для изображения

Вспомогательная функция дескриптора для изображения (<img>) предоставляет атрибут asp-append-version, который работает точно так же, как во вспомогательных функциях дескрипторов для ссылки и сценария.

Специальные вспомогательные функции дескрипторов

Специальные вспомогательные функции дескрипторов могут помочь избавиться от повторяющегося кода. В проекте AutoLot.Mvc специальные вспомогательные функции дескрипторов заменят HTML-разметку, используемую для навигации между экранами CRUD для Car.

Подготовительные шаги

Специальные вспомогательные функции дескрипторов задействуют UrlHelperFactory и IActionContextAccessor для ссылок на основе маршрутизации. Кроме того, будет добавлен расширяющий метод для типа string, чтобы удалять суффикс Controller из имен контроллеров.

Обновление Startup.cs

Для создания экземпляра UrlFactory класса, производного не от класса Controller, в коллекцию служб потребуется добавить IActionContextAccessor. Начните с добавления в файл Startup.cs следующих пространств имен:

using Microsoft.AspNetCore.Mvc.Infrastructure;

using Microsoft.Extensions.DependencyInjection.Extensions;

Затем добавьте в метод ConfigureServices() такую строку:

services.TryAddSingleton<IActionContextAccessor, ActionContextAccessor>();

Создание расширяющего метода для типа string

При обращении к именам контроллеров в коде инфраструктуре ASP.NET Core довольно часто требуется низкоуровневое строковое значение, не содержащее суффикс Controller, что препятствует использованию метода nameof() без последующего вызова string.Replace(). Со временем задача становится утомительной, поэтому для ее решения будет создан расширяющий метод для типа string.

Создайте в проекте AutoLot.Services новый каталог по имени Utilities и добавьте в него файл StringExtensions.cs со статическим классом StringExtensions. Модифицируйте код, добавив расширяющий метод RemoveController():

using System;

namespace AutoLot.Mvc.Extensions

{

  public static class StringExtensions

  {

    public static string RemoveController(this string original)

      => original.Replace("Controller", "", StringComparison.OrdinalIgnoreCase);

  }

}

Создание базового класса

Создайте в проекте AutoLot.Mvc новый каталог по имени TagHelpers и внутри него каталог Base. Добавьте в каталог Base файл класса ItemLinkTagHelperBase.cs, сделайте класс ItemLinkTagHelperBase открытым и абстрактным, а также унаследованным от класса


Эндрю Троелсен читать все книги автора по порядку

Эндрю Троелсен - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mybooks.club.


Язык программирования C#9 и платформа .NET5 отзывы

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Эндрю Троелсен. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.