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

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

Книгу Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

177 0 18:04, 26-08-2023
Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
26 август 2023

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

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

    1 ... 376 377 378 379 380 381 382 383 384 ... 407
    Перейти на страницу:
    class="code">  if (env.IsDevelopment())

      {

        app.UseDeveloperExceptionPage();

      }

      else

      {

        app.UseExceptionHandler("/Home/Error");

        app.UseHsts();

      }

      app.UseHttpsRedirection();

      app.UseStaticFiles();

      app.UseRouting();

      app.UseAuthorization();

      app.UseEndpoints(endpoints =>

      {

        endpoints.MapControllerRoute(

          name: "default",

          pattern: "{controller=Home}/{action=Index}/{id?}");

      });

    }

    Метод Configure() также проверяет среду, и если она установлена в Development (среда разработки), тогда в конвейер обработки добавляется промежуточное ПО UseDeveloperExceptionPage(). Для любой другой среды в конвейер обработки добавляется универсальное промежуточное ПО UseExceptionHandler() и поддержка протокола строгой транспортной безопасности HTTP (HTTP Strict Transport Security — HSTS). Как и в аналоге для API, добавляется вызов app.UseHttpsRedirection(). Следующим шагом является добавление поддержки статических файлов с помощью вызова app.UseStaticFiles(). Поддержка статических файлов включается как мера по усилению безопасности. Если ваше приложение в ней не нуждается (подобно API-интерфейсам), тогда не добавляйте такую поддержку. Затем добавляется промежуточное ПО для маршрутизации, авторизации и конечных точек.

    Добавьте в метод параметр типа АрplicationDbContext и вызовите InitializeData() из AutoLot.Dal. Вот модифицированный код:

    public void Configure(

      IApplicationBuilder app,

      IWebHostEnvironment env,

      ApplicationDbContext context)

    {

      if (env.IsDevelopment())

      {

        // Если среда разработки, тогда отображать отладочную информацию.

        app.UseDeveloperExceptionPage();

        // Инициализировать базу данных.

       if (Configuration.GetValue<bool>("RebuildDataBase"))

        {

          SampleDataInitializer.InitializeData(context);

        }

      }

      ...

    }

    Обновите файл appsettings.development.json с учетом свойства RebuildDataBase (пока что установив его в false):

    {

      "Logging": {

        "LogLevel": {

          "Default": "Information",

          "Microsoft": "Warning",

          "Microsoft.Hosting.Lifetime": "Information"

        }

      },

      "RebuildDataBase": false,

      "ConnectionStrings": {

        "AutoLot": "Server=db;Database=AutoLotPresentation;

        User ID=sa;Password=P@ssw0rd;"

      }

    }

    Стандартный шаблон настраивает в методе UseEndpoints() маршрутизацию на основе соглашений. Ее понадобится отключить и повсюду в приложении применять маршрутизацию с помощью атрибутов. Закомментируйте (или удалите) вызов MapControllerRoute() и замените его вызовом MapControllers():

    app.UseEndpoints(endpoints =>

    {

      endpoints.MapControllers();

    });

    Далее добавьте атрибуты маршрутов к HomeController в приложении AutoLot.Mvc. Первым делом добавьте шаблон контроллер/действие к самому контроллеру:

    [Route("[controller]/[action]")]

    public class HomeController : Controller

    {

      ...

    }

    Затем добавьте три маршрута к методу Index(), так что он будет стандартным действием, когда не указано действие либо когда не указан контроллер или действие. Кроме того, снабдите метод атрибутом HttpGet, чтобы явно объявить его действием GET:

    [Route("/")]

    [Route("/[controller]")]

    [Route("/[controller]/[action]")]

    [HttpGet]

    public IActionResult Index()

    {

      return View();

    }

    Ведение журнала

    Базовая инфраструктура ведения журнала добавляется в контейнер DI как часть процесса запуска и конфигурирования. Инфраструктура ведения журнала использует довольно простой интерфейс ILogger<T>. Основополагающим компонентом ведения журнала является класс LoggerExtensions, определения методов которого показаны ниже:

    public static class LoggerExtensions

    {

      public static void LogDebug(this ILogger logger, EventId eventId,

        Exception exception, string message, params object[] args)

      public static void LogDebug(this ILogger logger, EventId eventId,

        string message, params object[] args)

      public static void LogDebug(this ILogger logger, Exception exception,

        string message, params object[] args)

      public static void LogDebug(this ILogger logger,

        string message, params object[] args)

      public static void LogTrace(this ILogger logger, EventId eventId,

        Exception exception, string message, params object[] args)

      public static void LogTrace(this ILogger logger, EventId eventId,

        string message, params object[] args)

      public static void LogTrace(this ILogger logger, Exception exception,

        string message, params object[] args)

      public static void LogTrace(this ILogger logger,

        string message, params object[] args)

        Exception exception, string message, params object[] args)

      public static void LogInformation(this ILogger logger, EventId eventId,

        string message, params object[] args)

      public static void LogInformation(this ILogger logger, Exception exception,

        string message, params object[] args)

      public static void LogInformation(this ILogger logger,

        string message, params object[] args)

      public static void LogWarning(this ILogger logger, EventId eventId,

        Exception exception, string message, params object[] args)

      public static void LogWarning(this ILogger logger, EventId eventId,

        string message, params object[] args)

      public static void LogWarning(this ILogger logger, Exception exception,

        string message, params object[] args)

      public static void LogWarning(this ILogger logger,

        string message, params object[] args)

      public static void LogError(this ILogger logger, EventId eventId,

        Exception exception, string message, params object[] args)

      public static void LogError(this ILogger logger, EventId eventId,

        string message, params object[] args)

      public static void LogError(this ILogger logger, Exception exception,

        string message, params object[] args)

      public static void LogError(this ILogger logger,

        string message, params object[] args)

      public static void LogCritical(this ILogger logger, EventId eventId,

        Exception exception, string message, params object[] args)

      public static void LogCritical(this ILogger logger, EventId eventId,

        string message, params object[] args)

      public static void LogCritical(this ILogger logger, Exception exception,

        string message, params object[] args)

      public static void LogCritical(this ILogger logger,

        string message, params object[] args)

      public static void Log(this ILogger logger, LogLevel logLevel,

        string message, params object[] args)

      public static void Log(this ILogger logger, LogLevel logLevel, EventId eventId,

        string message, params object[] args)

      public static void Log(this ILogger logger, LogLevel logLevel,

        Exception exception, string message, params object[] args)

      public static void Log(this ILogger logger, LogLevel logLevel, EventId eventId,

        Exception exception, string

    1 ... 376 377 378 379 380 381 382 383 384 ... 407
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


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

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Лариса Лариса04 июнь 12:43 Да, просто до слез похоже на сериал ,,Даррел,,... Смерть в райском уголке - Эмили Салливан
    2. Stmara Stmara02 июнь 22:44 Приятная история, чтобы скоротать вечер. Любимая книга из последних "Любовь со смертью", также очень понравилась -"Суженная... Сердце космического дракона - Ольга Вадимовна Гусейнова
    3. Alex Alex01 июнь 17:12 💩💩💩🖕🖕🖕🖕🖕🖕🖕... Игровой момент II - Александр Андреевич Бодров
    Все комметарии
    Новинки бесплатной онлайн библиотеки