Упражнение. Создание проекта веб-приложения ASP.NET Core на основе шаблона

Завершено

В этом упражнении вы выполните следующие действия.

  • Создайте проект веб-приложения ASP.NET Core на основе шаблона.
  • Изучите структуру созданного проекта.

Создание веб-приложения ASP.NET Core с помощью шаблона

В Visual Studio Code создайте проект:

  1. Выберите представление Эксплорер

    Снимок экрана: выбор представления обозревателя.

  2. Нажмите кнопку "Создать проект .NET ". Кроме того, можно открыть палитру команд с помощью CTRL+SHIFT+P, а затем ввести ".NET" для поиска и выбора команды .NET: New Project .

    Снимок экрана: выбор элемента

  3. Выберите шаблон проекта ASP.NET Core Empty из списка.

  4. В диалоговом окне "Расположение проекта " создайте папку с именем MyWebApp , включаемую в проект.

  5. В Палитре команд присвойте проекту MyWebAppимя, с учетом заглавной буквы. Использование этого точного имени проекта важно, чтобы пространства имен для кода в этой инструкции соответствовали вашим.

  6. Выберите "Создать проект " в палитре команд.

Изучение структуры проекта

Содержимое папки проекта MyWebApp отображается в обозревателе Visual Studio Code:

Снимок экрана: файлы проекта в обозревателе Visual Studio Code.

В терминале или командной строке создайте проект:

  1. Перейдите в каталог (cd), который будет содержать проект.

  2. Создайте веб-приложение ASP.NET Core в каталоге MyWebApp , выполнив команду dotnet new.NET CLI:

    dotnet new web -o MyWebApp
    

    Новый пустой веб-проект ASP.NET Core был создан в каталоге с именем MyWebApp.

    В следующем описании синтаксиса команды:

    • dotnet new: команда .NET CLI для создания различных артефактов разработки .NET на основе шаблонов, таких как проекты, решения, библиотеки, конфигурация и другие специализированные файлы.
    • web: шаблон проекта, используемый для создания пустого веб-проекта ASP.NET Core, в котором нет примера содержимого. web — это один из многих встроенных шаблонов проектов , доступных в пакете SDK для .NET.
    • -o: выходной параметр указывает каталог, в котором создается новый проект:
      • Если каталог не существует, интерфейс командной строки .NET создает его.
      • Каталог, в котором создается проект, служит именем проекта по умолчанию, пространством имен и именем сборки (именем скомпилированных выходных данных).
      • Если параметр -o <directory> вывода не используется, используется текущий каталог.
  3. Откройте папку проекта MyWebApp .

Изучение структуры проекта

Содержимое папки проекта MyWebApp отображается в обозревателе Visual Studio Code:

Снимок экрана: файлы проекта в обозревателе Visual Studio Code.

В следующих разделах содержится обзор основных папок проекта и файлов пустого проекта ASP.NET Core:

Файл проекта MyWebApp.csproj

Файл проекта CSPROJ используется для:

  • Настройка сборки проекта
  • Укажите версию .NET для целевой
  • Управление зависимостями проекта

Файл решения .sln

При создании или открытии проекта ASP.NET Core в Visual Studio Code (с расширением пакета разработки на C#) он создает файл решения [имя проекта].sln . Файл решения [имя проекта].sln содержит сведения для одного или нескольких связанных проектов, включая сведения о сборке, параметры и любые другие файлы, которые не связаны только с одним конкретным проектом.

Папка obj

Папка obj содержит промежуточные файлы, используемые системой сборки, включая скомпилированные файлы объектов, созданные из исходных файлов. Выходные данные сборки помещаются в папку, созданную bin во время процесса сборки.

Файл Properties/launchSettings.json

Файл Properties/launchSettings.json содержит данные конфигурации для запуска приложения во время разработки. Эти параметры включают applicationUrl свойство, указывающее корневой URL-адрес, используемый приложением, например https://localhost:{port}, где {port} случайный номер локального порта, назначенный при создании проекта.

Файл launchSettings.json содержит следующую конфигурацию:

{
  "$schema": "https://json.schemastore.org/launchsettings.json",
  "profiles": {
    "http": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "http://localhost:5218",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "https": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "https://localhost:7140;http://localhost:5218",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Файл Program.cs

Файл Program.cs служит точкой входа для приложения ASP.NET Core и имеет несколько ключевых целей, в том числе:

  • Конфигурация узла: настраивает узел, включая настройку веб-сервера.
  • Регистрация службы. Добавляет службы в функциональные возможности приложения, такие как контексты базы данных, ведение журнала и специализированные службы для конкретных платформ.
  • Конфигурация конвейера ПО промежуточного слоя: определяет конвейер обработки запросов приложения в виде ряда экземпляров ПО промежуточного слоя.
  • Конфигурация среды: настройка параметров, относящихся к среде для разработки, промежуточного хранения и рабочей среды.

В новом созданном пустом проекте ASP.NET Core файл Program.cs содержит следующий минимальный код:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

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

app.Run();

Следующие строки кода в этом файле создаются WebApplicationBuilder с предварительно настроенными значениями по умолчанию и создают приложение:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

Метод app.MapGet() напрямую определяет конечную точку, которая обрабатывает HTTP-запросы GET:

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

app.MapGet("/"): определяет маршрут для HTTP-запроса GET. Указывает / , что этот маршрут отвечает на запросы, сделанные на корневой URL-адрес приложения. Например, http://localhost:{port}/где {port} случайным образом назначается номер порта, назначенный в файле Properties/launchSettings.json при создании проекта.

() => "Hello World!": лямбда-выражение, которое служит обработчиком запросов. Когда запрос GET выполняется в корневой URL-адрес, это лямбда-выражение выполняется, и он возвращает строку "Hello World!"