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

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

Читать бесплатно Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен. Жанр: Программирование год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:
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

Перейти на страницу:

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

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


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

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


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

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

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


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*