Первое приложение на ASP.NET Core с .NET CLI

Последнее обновление: 11.11.2022

Создадим первую программу на ASP.NET Core. Что нам для этого потребуется? Прежде всего необходим текстовый редактор для написания кода программы. В данном случае я буду использовать в качестве текстового редактора Visual Studio Code

Также для компиляции и запуска программы нам потребуется .NET SDK. Для его установки перейдем на официальный сайт по ссылке .NET SDK

Загрузка .NET SDK для ASP.NET CoreC:\dotnet\aspnet\helloapp. Откроем терминал/командную строку и перейдем к созданной папке проекта с помощью команды cd

cd C:\dotnet\aspnet\helloapp

В данном случае мы для создания и запуска проекта мы будем использовать встроенную инфраструктуру .NET CLI, которая устанавливается вместе с .NET SDK.

Для создания проекта в .NET CLI применяется команда dotnet new, после которой указывается тип проекта. Для ASP.NET Core есть ряд встроенных типов проектов. В данном случае мы будем использовать самый простейший тип - web. Поэтому введем в терминале команду

dotnet new web
Создание первого проекта ASP.NET Core и C# с помощью .NET CLI

Структура проекта ASP.NET Core

Рассмотрим базовую структуру простейшего стандартного проекта ASP.NET Core:

  • Dependencies: все добавленные в проект пакеты и библиотеки, иначе говоря зависимости

  • Properties: узел, который содержит некоторые настройки проекта. В частности, в файле launchSettings.json описаны настройки запуска проекта, например, адреса, по которым будет запускаться приложение.

  • appsettings.json: файл конфигурации приложения в формате json

  • appsettings.Development.json: версия файла конфигурации приложения, которая используется в процессе разработки

  • helloapp.csproj: стандартный файл проекта C#, который соответствует назанию проекта (по умолчанию названию каталога) и описывает все его настройки.

  • Program.cs: главный файл приложения, с которого и начинается его выполнение. Код этого файла настраивает и запускает веб-приложение

Например, посмотрим на содержимое файла helloapp.csproj

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

</Project>

Ключевой компонент здесь - атрибут Sdk="Microsoft.NET.Sdk.Web", который собственно и определяет, что приложение будет использовать SDK "Microsoft.NET.Sdk.Web", который предназначен именно для веб-проектов.

Запуск проекта

Проект по умолчанию не представляет какой-то грандиозной функциональности, тем не менее этот проект мы уже можем запустить. Итак, запустим проект. Для этого выполним команду

dotnet run
запуск проекта ASP.NET Core и C# с помощью .NET CLI

При запуске в консоли мы можем увидеть адрес, по которому мы можем обращаться к приложению. В моем случае это адрес "http://localhost:5204". И я могу обратиться по этому адресу к приложению в браузере и увидеть в нем строку "Hello World!" - результат работы кода по умолчанию из файла Program.cs:

Первое приложение на ASP.NET Core на С# с .NET CLI

Запуск приложения и файл Program.cs

Рассмотрим код файла Program.cs, который создает подобное приложение:

    var builder = WebApplication.CreateBuilder(args);
    var app = builder.Build();
    
    app.MapGet("/", () => "Hello World!");
    
    app.Run();
    
    

Это так называемое Minimal API - упрощенная минизированная модель для запуска веб-приложения в ASP.NET.

Приложение в ASP.NET Core представляет объект Microsoft.AspNetCore.Builder.WebApplication. Этот объект настраивает всю конфигурацию приложения, его маршруты, используемые зависимости и т.д.. Исходный код класса на github: https://github.com/dotnet/aspnetcore/blob/main/src/DefaultBuilder/src/WebApplication.cs

Для создания объекта WebApplication необходим специальный класс-строитель - WebApplicationBuilder. И в файле Program.cs вначале создается данный объект с помощью статического метода WebApplication.CreateBuilder:

var builder = WebApplication.CreateBuilder(args);

В качестве параметра в метод передаются аргументы, которые передаются приложению при запуске.

Получив объект WebApplicationBuilder, у него вызывается метод Build(), который собствено и создает объект WebApplication:

var app = builder.Build();

С помощью объекта WebApplication можно настроить всю инфраструктуру приложения - его конфигурацию, маршруты и так далее. В файле Program.cs по умолчанию для приложения определяется один маршрут:

app.MapGet("/", () => "Hello World!");

Метод MapGet() в качестве первого параметра принимает путь, по которому можно обратиться к приложению. В данном случае это путь "/", то есть по сути корень веб-приложения - имя домена и порта, после которых может идти слеш, например, https://localhost:7256/

В качестве второго параметра в метод MapGet() передаются обработчик запроса по этому маршруту в виде функции. Здесь это лямбда-выражение, которое возвращает строку "Hello World!". Именно поэтому при обращении к приложению мы увидим данную строку в браузере.

И в конце необходимо запустить приложение. Для этого у класса WebApplication вызывается метод Run():

app.Run();

В итоге запустится приложение в виде консоли, и мы сможем обращаться к приложению из различных браузеров.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850