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 - читать книгу онлайн бесплатно, автор Эндрю Троелсен
TagHelper. Приведите код класса к следующему виду:

using AutoLot.Mvc.Controllers;

using AutoLot.Services.Utilities;

using Microsoft.AspNetCore.Mvc;

using Microsoft.AspNetCore.Mvc.Infrastructure;

using Microsoft.AspNetCore.Mvc.Routing;

using Microsoft.AspNetCore.Razor.TagHelpers;

namespace AutoLot.Mvc.TagHelpers.Base

{

  public abstract class ItemLinkTagHelperBase : TagHelper

  {

  }

}

Добавьте конструктор, который принимает экземпляры реализаций IActionContextAccessor и IUrlHelperFactory. Используйте UrlHelperFactory с ActionContextAccessor, чтобы создать экземпляр реализации IUrlHelper, и сохраните его в переменной уровня класса. Вот необходимый код:

protected readonly IUrlHelper UrlHelper;

protected ItemLinkTagHelperBase(IActionContextAccessor contextAccessor,

                                IUrlHelperFactory urlHelperFactory)

{

  UrlHelper = urlHelperFactory.GetUrlHelper(contextAccessor.ActionContext);

}

Добавьте открытое свойство для хранения Id элемента:

public int? ItemId { get; set; }

При вызове вспомогательной функции дескриптора вызывается метод Process(), принимающий два параметра, TagHelperContext и TagHelperOutput. Параметр TagHelperContext применяется для получения остальных атрибутов дескриптора и словаря объектов, которые используются с целью взаимодействия с другими вспомогательными функциями дескрипторов, нацеленными на дочерние элементы. Параметр TagHelperOutput применяется для создания визуализированного вывода. Поскольку это базовый класс, создайте метод по имени BuildContent(), который производные классы смогут вызывать из метода Process(). Добавьте следующий код:

protected void BuildContent(TagHelperOutput output,

  string actionName, string className, string displayText, string fontAwesomeName)

{

  output.TagName = "a";   // Заменить <item-list> дескриптором <a>.

  var target = (ItemId.HasValue)

    ? UrlHelper.Action(actionName,

       nameof(CarsController).RemoveController(), new {id = ItemId})

    : UrlHelper.Action(actionName, nameof(CarsController).RemoveController());

  output.Attributes.SetAttribute("href", target);

  output.Attributes.Add("class",className);

  output.Content.AppendHtml($@"{displayText}

    <i class=""fas fa-{fontAwesomeName}""></i>");

}

В предыдущем код присутствует ссылка на набор инструментов для значков и шрифтов Font Awesome, который будет добавлен в проект позже в главе.

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

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

using AutoLot.Mvc.Controllers;

using AutoLot.Mvc.TagHelpers.Base;

using Microsoft.AspNetCore.Mvc.Infrastructure;

using Microsoft.AspNetCore.Mvc.Routing;

using Microsoft.AspNetCore.Razor.TagHelpers;

namespace AutoLot.Mvc.TagHelpers

{

  public class ItemDetailsTagHelper : ItemLinkTagHelperBase

  {

  }

}

Добавьте открытый конструктор, который принимает обязательные экземпляры и передает их конструктору базового класса:

public ItemDetailsTagHelper(

    IActionContextAccessor contextAccessor,

    IUrlHelperFactory urlHelperFactory)

      : base(contextAccessor, urlHelperFactory) {}

Переопределите метод Process(), чтобы вызывать метод BuildContent() базового класса:

public override void Process(TagHelperContext context, TagHelperOutput output)

{

  BuildContent(output,nameof(CarsController.Details),

              "text-info","Details","info-circle");

}

Код создает ссылку Details (Детали) с изображением значка информации из Font Awesome. Чтобы не возникали ошибки при компиляции, добавьте в CarsController базовый метод Details():

public IActionResult Details()

{

  return View();

}

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

Создайте в каталоге TagHelpers новый файл класса по имени ItemDeleteTagHelper.cs. Сделайте класс ItemDeleteTagHelper открытым и унаследованным от класса ItemLinkTagHelperBase. Добавьте в новый файл следующий код:

using AutoLot.Mvc.Controllers;

using AutoLot.Mvc.TagHelpers.Base;

using Microsoft.AspNetCore.Mvc.Infrastructure;

using Microsoft.AspNetCore.Mvc.Routing;

using Microsoft.AspNetCore.Razor.TagHelpers;

namespace AutoLot.Mvc.TagHelpers

{

  public class ItemDeleteTagHelper : ItemLinkTagHelperBase

  {

  }

}

Добавьте открытый конструктор, который принимает обязательные экземпляры и передает их конструктору базового класса:

public ItemDeleteTagHelper(

    IActionContextAccessor contextAccessor,

    IUrlHelperFactory urlHelperFactory)

      : base(contextAccessor, urlHelperFactory) {}

Переопределите метод Process(), чтобы вызывать метод BuildContent() базового класса:

public override void Process(TagHelperContext context, TagHelperOutput output)

{

  BuildContent(output,nameof(CarsController.Delete),"text-danger","Delete","trash");

}

Код создает ссылку Delete (Удалить) с изображением значка мусорного ящика из Font Awesome. Чтобы не возникали ошибки при компиляции, добавьте в CarsController базовый метод Delete():

public IActionResult Delete()

{

  return View();

}

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

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

using AutoLot.Mvc.Controllers;

using AutoLot.Mvc.TagHelpers.Base;

using Microsoft.AspNetCore.Mvc.Infrastructure;

using Microsoft.AspNetCore.Mvc.Routing;

using Microsoft.AspNetCore.Razor.TagHelpers;

namespace AutoLot.Mvc.TagHelpers

{

  public class ItemEditTagHelper : ItemLinkTagHelperBase

  {

  }

}

Добавьте открытый конструктор, который принимает обязательные экземпляры и передает их конструктору базового класса:

public ItemEditTagHelper(

    IActionContextAccessor contextAccessor,

    IUrlHelperFactory urlHelperFactory)

      : base(contextAccessor, urlHelperFactory) {}

Переопределите метод Process(), чтобы вызывать метод BuildContent() базового класса:

public override void Process(TagHelperContext context, TagHelperOutput output)

{

  BuildContent(output,nameof(CarsController.Edit),"text-warning","Edit","edit");

}

Код создает ссылку Edit (Редактировать) с изображением значка карандаша из Font Awesome. Чтобы не возникали ошибки при компиляции, добавьте в CarsController базовый метод Edit():

public IActionResult Edit()

{

  return View();

}

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

Создайте в каталоге TagHelpers новый файл класса по имени itemCreateTagHelper.cs. Сделайте класс ItemCreateTagHelper открытым и унаследованным от класса ItemLinkTagHelperBase. Добавьте в новый файл следующий код:

using AutoLot.Mvc.Controllers;

using AutoLot.Mvc.TagHelpers.Base;

using Microsoft.AspNetCore.Mvc.Infrastructure;

using Microsoft.AspNetCore.Mvc.Routing;

using Microsoft.AspNetCore.Razor.TagHelpers;

namespace AutoLot.Mvc.TagHelpers

{

  public class ItemCreateTagHelper : ItemLinkTagHelperBase

  {

  }

}

Добавьте открытый конструктор, который принимает обязательные экземпляры и передает их конструктору базового класса:

public ItemCreateTagHelper(

    IActionContextAccessor contextAccessor,

    IUrlHelperFactory urlHelperFactory)

      : base(contextAccessor, urlHelperFactory) {}

Переопределите метод Process(), чтобы вызывать метод BuildContent() базового класса:

public override void Process(TagHelperContext context, TagHelperOutput output)

{

  BuildContent(output,nameof(CarsController.Create),"text-success","Create new","plus");

}

Код создает ссылку Create new (Создать) с изображением значка плюса из Font Awesome.

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

Создайте в каталоге TagHelpers новый файл класса по имени


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

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


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

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

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