ASP.NET Core/Program.cs: различия между версиями
Dzmuh (обсуждение | вклад) |
Dzmuh (обсуждение | вклад) |
||
| Строка 44: | Строка 44: | ||
=== Класс WebApplicationBuilder === | === Класс WebApplicationBuilder === | ||
Для создания объекта '''WebApplication''' необходим специальный класс-строитель - <code>WebApplicationBuilder</code>. В файле <code>Program.cs</code> вначале создается данный объект с помощью статического метода <code>WebApplication.CreateBuilder</code>, так: | Для создания объекта '''WebApplication''' необходим специальный класс-строитель - <code>WebApplicationBuilder</code><ref>{{cite web | ||
|url = https://github.com/dotnet/aspnetcore/blob/main/src/DefaultBuilder/src/WebApplicationBuilder.cs | |||
|title = Исходный код WebApplicationBuilder.cs | |||
|lang = en | |||
|access-date = 2022-11-28 | |||
|website = [[GitHub]] | |||
}}</ref>. В файле <code>Program.cs</code> вначале создается данный объект с помощью статического метода <code>WebApplication.CreateBuilder</code>, так: | |||
<syntaxhighlight lang="csharp"> | <syntaxhighlight lang="csharp"> | ||
| Строка 79: | Строка 85: | ||
* Services: представляет коллекцию сервисов и позволяет добавлять сервисы в приложение. | * Services: представляет коллекцию сервисов и позволяет добавлять сервисы в приложение. | ||
* WebHost: объект IWebHostBuilder, который позволяет настроить отдельные настройки сервера. | * WebHost: объект IWebHostBuilder, который позволяет настроить отдельные настройки сервера. | ||
=== Класс WebApplication === | |||
Метод '''build()''' класса <code>WebApplicationBuilder</code> создает объект '''WebApplication''': | |||
<syntaxhighlight lang="csharp"> | |||
WebApplicationBuilder builder = WebApplication.CreateBuilder(args); | |||
WebApplication app = builder.Build(); | |||
</syntaxhighlight> | |||
== Файл <code>Startup.cs</code> и класс <code>Startup</code> == | == Файл <code>Startup.cs</code> и класс <code>Startup</code> == | ||
Версия от 06:13, 28 ноября 2022
Program.cs и класс Startup в ASP.NET Core проекте.
Program.cs
Program.cs — это место, с которого начинается приложение. Файл Program.cs в ASP.NET Core работает так же, как файл Program.cs в традиционном консольном приложении .NET Framework. Файл Program.cs является точкой входа в приложение, IISIntegration и создания хоста с помощью инстанса IWebHostBuilder, метода Main.
До ASP.NET Core 6, в котором была применена новая модель минимального размещения, файл Program.cs отвечает за регистрацию и заполнение Startup.cs.
| Стандартная модель | Модель минимального размещения |
|---|---|
namespace WebApp
{
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
}
}
}
|
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
|
Приложение в ASP.NET Core представляет объект Microsoft.AspNetCore.Builder.WebApplication. Этот объект настраивает всю конфигурацию приложения, его маршруты, используемые зависимости и т.д..
Класс WebApplicationBuilder
Для создания объекта WebApplication необходим специальный класс-строитель - WebApplicationBuilder[1]. В файле Program.cs вначале создается данный объект с помощью статического метода WebApplication.CreateBuilder, так:
var builder = WebApplication.CreateBuilder(args);
В качестве параметра в метод передаются аргументы, которые передаются приложению при запуске (доступны через неявно определенный параметр args)
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
Либо можно передавать объект WebApplicationOption:
WebApplicationOptions options = new() { Args = args };
WebApplicationBuilder builder = WebApplication.CreateBuilder(options);
Кроме создания объекта WebApplication класс WebApplicationBuilder выполняет еще ряд задач, среди которых можно выделить следующие:
- Установка конфигурации приложения
- Добавление сервисов
- Настройка логгирования в приложении
- Установка окружения приложения
- Конфигурация объектов IHostBuilder и IWebHostBuilder, которые применяются для создания хоста приложения
Для реализации этих задач в классе WebApplicationBuilder определены следующие свойства:
- Configuration: представляет объект ConfigurationManager, который применяется для добавления конфигурации к приложению.
- Environment: предоставляет информацию об окружении, в котором запущено приложение.
- Host: объект IHostBuilder, который применяется для настройки хоста.
- Logging: позволяет определить настройки логгирования в приложении.
- Services: представляет коллекцию сервисов и позволяет добавлять сервисы в приложение.
- WebHost: объект IWebHostBuilder, который позволяет настроить отдельные настройки сервера.
Класс WebApplication
Метод build() класса WebApplicationBuilder создает объект WebApplication:
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
WebApplication app = builder.Build();
Файл Startup.cs и класс Startup
Файл Startup.cs — это точка входа в приложение, аналог Global.asax в классическом ASP.NET и он будет вызываться после выполнения файла Program.cs на уровне приложения[4]. Этот класс производит конфигурацию приложения, настраивает сервисы, которые приложение будет использовать, устанавливает компоненты для обработки запроса или middleware и обрабатывает конвейер запросов. Класс Startup запускается в момент запуска приложения.
Примечания
- ↑ Исходный код WebApplicationBuilder.cs (англ.). GitHub. Дата обращения: 28 ноября 2022.
- ↑ Переход с ASP.NET Core 5.0 на 6.0: Новая модель размещения. Документация к ASP.NET Core (30 сентября 2022). Дата обращения: 28 ноября 2022. Архивировано 28 ноября 2022 года.
- ↑ Универсальный узел .NET в ASP.NET Core. Microsoft Learn: Документация к ASP.NET Core 7.0 (30 сентября 2022). Дата обращения: 28 ноября 2022. Архивировано 28 ноября 2022 года.
- ↑ Что из себя представляет класс Startup и Program.cs в ASP.NET Core. Хабрахабр (15 февраля 2021). Дата обращения: 27 ноября 2022. Архивировано 22 сентября 2022 года.