My-library.info
Все категории

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

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

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

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

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

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

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

Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

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

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

В первой строке расширяющего метода в контейнер DI добавляется

ApiServiceSettings
. Во второй строке в контейнер DI добавляется
IApiServiceWrapper
и регистрируется класс с помощью фабрики
HTTPClient
. Это позволяет внедрять
IApiServiceWrapper
в другие классы, а фабрика
HTTPClient
будет управлять внедрением и временем существования
HTTPClient
:

public static IServiceCollection ConfigureApiServiceWrapper(this IServiceCollection

services, IConfiguration config)

{

<b>  services.Configure&lt;ApiServiceSettings&gt;(</b>

<b>      config.GetSection(nameof(ApiServiceSettings)));</b>

<b>  services.AddHttpClient&lt;IApiServiceWrapper,ApiServiceWrapper&gt;();</b>

  return services;

}

Откройте файл

Startup.cs
и добавьте следующий оператор
using
:

using AutoLot.Services.ApiWrapper;

Перейдите к методу

ConfigureServices()
и добавьте в него показанную ниже строку:

services.ConfigureApiServiceWrapper(Configuration);

Построение класса CarsController

Текущая версия

CarsController
жестко привязана к хранилищам в библиотеке доступа к данным. Следующая итерация
CarsController
для связи с базой данных будет применять оболочку службы. Переименуйте
CarsController
в
CarsDalController
(включая конструктор) и добавьте в каталог
Controllers
новый класс по имени
CarsController
. Код этого класса является практически точной копией
CarsController
, но они хранятся по отдельности с целью прояснения разницы между использованием хранилищ и службы.

На заметку! При работе с одной и той же базой данных вам редко придется применять вместе уровень доступа к данным и оболочку службы. Здесь показаны оба варианта, чтобы вы смогли решить, какой из них лучше подходит в вашей ситуации.

Приведите операторы

using
к следующему виду:

using System.Threading.Tasks;

using AutoLot.Dal.Repos.Interfaces;

using AutoLot.Models.Entities;

using AutoLot.Services.ApiWrapper;

using AutoLot.Services.Logging;

using Microsoft.AspNetCore.Mvc;

using Microsoft.AspNetCore.Mvc.Rendering;

Далее сделайте класс открытым, унаследуйте его от

Controller
и добавьте атрибут
Route
. Создайте конструктор, который принимает экземпляры реализаций
IAutoLotServiceWrapper
и
IAppLogging
, после чего присвойте оба экземпляра переменным уровня класса. Вот начальный код:

namespace AutoLot.Mvc.Controllers

{

[Route(&quot;[controller]/[action]&quot;)]

public class CarsController : Controller

{

  private readonly IApiServiceWrapper _serviceWrapper;

  private readonly IAppLogging&lt;CarsController&gt; _logging;

  public CarsController(IApiServiceWrapper serviceWrapper,

      IAppLogging&lt;CarsController&gt;
logging)

  {

    _serviceWrapper = serviceWrapper;

    _logging = logging;

  }

}

Вспомогательный метод GetMakes()

Вспомогательный метод

GetMakes()
строит экземпляр
SelectList
со всеми записями 
Make
в базе данных. Он использует
Id
в качестве значения и
Name
в качестве отображаемого текста:

internal async Task&lt;SelectList&gt; GetMakesAsync()=&gt;

  new SelectList(

    await _serviceWrapper.GetMakesAsync(),

    nameof(Make.Id),

    nameof(Make.Name));

Вспомогательный метод GetOneCar()

Вспомогательный метод

GetOneCar()
получает одиночную запись
Car
:

internal async Task&lt;Car&gt; GetOneCarAsync(int? id)

  =&gt; !id.HasValue ? null : await _serviceWrapper.GetCarAsync(id.Value);

Открытые методы действий

Единственное отличие между открытыми методами действий в этом контроллере и аналогичными методами в

CarsDalController
связано с доступом к данным, а также с тем,что все методы определены как асинхронные. Поскольку вы уже понимаете, для чего предназначено то или иное действие, ниже приведены остальные методы, изменения в которых выделены полужирным:

[Route(&quot;/[controller]&quot;)]

[Route(&quot;/[controller]/[action]&quot;)]

public <b>async Task&lt;IActionResult&gt;</b> Index()

  =&gt; View(<b>await _serviceWrapper.GetCarsAsync()</b>);

[HttpGet(&quot;{makeId}/{makeName}&quot;)]


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

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


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

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

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