Инструменты для ASP.NET Core Blazor

Note

Это не последняя версия этой статьи. В текущей версии см. версию .NET 10 этой статьи.

Warning

Эта версия ASP.NET Core больше не поддерживается. Дополнительные сведения см. в политике поддержки .NET и .NET Core. В текущей версии см. версию .NET 10 этой статьи.

В этой статье описаны средства для создания Blazor приложений с помощью нескольких средств:

  • Visual Studio (VS): самая полная интегрированная среда разработки (IDE) для разработчиков .NET в Windows. Включает в себя массив инструментов и функций для повышения и улучшения каждого этапа разработки программного обеспечения.
  • Visual Studio Code (VS Code) — это открытый код кроссплатформенный редактор кода, который можно использовать для разработки Blazor приложений.
  • .NET CLI. Интерфейс командной строки .NET — это кроссплатформенный набор инструментов для разработки, создания, запуска и публикации приложений .NET. Интерфейс командной строки .NET включается в пакет SDK для .NET и выполняется на любой платформе, поддерживаемой пакетом SDK.

Выберите раздел этой статьи, соответствующий выбранному вами инструменту.

Чтобы создать Blazor приложение с помощью Visual Studio, используйте следующее руководство.

  • Установите последнюю версию Visual Studio с рабочей нагрузкой ASP.NET и веб-разработки .

  • Создайте проект с помощью одного из доступных Blazor шаблонов:

    • Blazor Web App: создает приложение, которое поддерживает интерактивную отрисовку на стороне сервера (интерактивный SSR) и отрисовку на стороне клиента (CSR). Шаблон Blazor Web App рекомендуется для начала работы с Blazor, чтобы ознакомиться с возможностями Blazor на стороне сервера и клиента.
    • Blazor WebAssembly Автономное приложение: создает автономное клиентское веб-приложение, которое можно развернуть как статический сайт.

Нажмите кнопку Далее.

  • Установите последнюю версию Visual Studio с рабочей нагрузкой ASP.NET и веб-разработки .

  • Создайте новый проект:

    • Для удобства работы с Blazor Server выберите шаблон Blazor Server Приложение, который содержит демонстрационный код и Bootstrap, или шаблон Blazor Server Пустое приложение без демонстрационного кода и Bootstrap. Нажмите кнопку Далее.
    • Для автономного Blazor WebAssembly приложения выберите шаблон Blazor WebAssembly «Приложение», который включает демонстрационный код и Bootstrap, или шаблон Blazor WebAssembly «Пустое приложение» без демонстрационного кода и Bootstrap. Нажмите кнопку Далее.
  • Установите последнюю версию Visual Studio с рабочей нагрузкой ASP.NET и веб-разработки .

  • Создайте новый проект:

    • Для работы с Blazor Server выберите шаблон приложения Blazor Server. Нажмите кнопку Далее.
    • Для работы с Blazor WebAssembly выберите шаблон приложения Blazor WebAssembly. Нажмите кнопку Далее.
  • Укажите значение Имя проекта и подтвердите правильность значения Расположение.

  • Дополнительные сведения о параметрах в диалоговом окне «Дополнительные сведения» см. в разделе Blazor«Шаблоны проектов и параметры шаблонов».

  • Для размещенного Blazor WebAssembly приложения установите флажок ASP.NET Core Hosted в диалоговом окне "Дополнительные сведения".
  • Нажмите кнопку "Создать".

Visual Studio Code — это кроссплатформенная интегрированная среда разработки (IDE) с открытым кодом, которую можно использовать для разработки приложений Blazor.

Установите последнюю версию Visual Studio Code для платформы.

Установите пакет средств разработки C# для Visual Studio Code. Дополнительные сведения см. в разделе Отладка приложений ASP.NET Core Blazor.

Если вы не знакомы с VS Code, ознакомьтесь с документацией по VS Code. Если вы не знакомы с пакетом SDK для .NET, см . статью "Что такое пакет SDK для .NET?" и связанные статьи в документации по пакету SDK для .NET.

Создайте новый проект:

  • Откройте VS Code.

  • Перейдите в представление обозревателя и нажмите кнопку "Создать проект .NET". Кроме того, можно открыть палитру команд с помощью сочетания клавиш Ctrl+Shift+P, а затем ввести ".NET" и найти и выбрать команду .NET: New Project.

  • Blazor Выберите шаблон проекта из списка.

  • В диалоговом окне "Расположение проекта" создайте или выберите папку для проекта.

  • В палитре команд укажите имя проекта или примите имя по умолчанию.

  • Выберите "Создать проект", чтобы создать проект или настроить параметры проекта, выбрав "Показать все параметры шаблона". Дополнительные сведения о шаблонах и параметрах см. в Blazor разделе "Шаблоны проектов" и "Параметры шаблона".

  • Нажмите клавишу F5 на клавиатуре, чтобы запустить приложение с отладчиком или , чтобы запустить приложение без отладчика.

    Палитра команд запрашивает выбор отладчика. Выберите C# из списка.

    Затем выберите конфигурацию запуска https .

  • Чтобы остановить приложение, нажмите клавиши SHIFT+F5 на клавиатуре.

Инструкции по разработке Visual Studio Code (VS Code) для ASP.NET Core в некоторых частях Blazor документации используют интерфейс командной строки .NET, который входит в пакет SDK для .NET. Команды .NET CLI выполняются во встроенном терминале VS Code, в котором по умолчанию используется командная оболочка PowerShell. Терминал открывается путем выбора нового терминала в меню терминала в строке меню меню.

Дополнительные сведения о конфигурации и использовании Visual Studio Code см. в документации по Visual Studio Code.

Запуск размещенного Blazor WebAssembly и конфигурация задачи

Для размещённых Blazor WebAssemblyрешений добавьте (или переместите) папку .vscode с файлами launch.json и tasks.json в родительскую папку решения, то есть в папку, содержащую типичные папки проекта: Client, Server и Shared. Обновите или подтвердите, что конфигурация в файлах launch.json и tasks.json выполняет размещенное приложение Blazor WebAssembly из проекта Server.

Проверьте файл Properties/launchSettings.json и определите URL-адрес приложения по свойству applicationUrl. В зависимости от версии платформы используется защищённый протокол URL-адреса (HTTPS) https://localhost:{PORT} или незащищённый (HTTP) http://localhost:{PORT}, где {PORT} — заполнитель назначенного порта. Запишите URL-адрес для использования в launch.json файле.

В конфигурации запуска файла .vscode/launch.json:

  • В качестве текущего рабочего каталога (cwd) задайте папку проекта Server.
  • Укажите URL-адрес приложения с помощью свойства url. Используйте значение, взятое ранее из файла Properties/launchSettings.json.
"cwd": "${workspaceFolder}/{SERVER APP FOLDER}",
"url": "{URL}"

В предыдущей конфигурации используются следующие элементы:

  • Заполнитель {SERVER APP FOLDER} — это папка проекта Server, как правило Server.
  • Заполнитель {URL} — это URL-адрес приложения, указанный в файле Properties/launchSettings.json приложения в свойстве applicationUrl.

Если предпочтительнее использовать Google Chrome вместо Microsoft Edge, обновите или добавьте свойство "browser": "chrome" в конфигурацию.

Следующий пример .vscode/launch.json файла:

  • Задает папку Server в качестве текущего рабочего каталога.
  • Задает http://localhost:7268 в качестве URL-адреса приложения.
  • Изменяет браузер по умолчанию с Microsoft Edge на Google Chrome.
"cwd": "${workspaceFolder}/Server",
"url": "http://localhost:7268",
"browser": "chrome"

Полный файл .vscode/launch.json выглядит так:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "blazorwasm",
      "name": "Launch and Debug Blazor WebAssembly Application",
      "request": "launch",
      "cwd": "${workspaceFolder}/Server",
      "url": "http://localhost:7268",
      "browser": "chrome"
    }
  ]
}

В .vscode/tasks.json добавьте аргумент build, который определяет путь к файлу проекта приложения Server:

"${workspaceFolder}/{SERVER APP FOLDER}/{PROJECT NAME}.csproj",

В предыдущем аргументе:

  • Заполнитель {SERVER APP FOLDER} — это папка проекта Server, как правило Server.
  • Заполнитель {PROJECT NAME} — это имя приложения, обычно формируемое на основе имени решения с последующим добавлением .Server в приложении, созданном из шаблона проекта Blazor WebAssembly.

Пример файла .vscode/tasks.json с проектом Server, который имеет имя BlazorHosted и расположен в папке решения Server:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build",
      "command": "dotnet",
      "type": "process",
        "args": [
          "build",
          "${workspaceFolder}/Server/BlazorHosted.Server.csproj",
          "/property:GenerateFullPaths=true",
          "/consoleloggerparameters:NoSummary",
        ],
        "group": "build",
        "presentation": {
          "reveal": "silent"
        },
        "problemMatcher": "$msCompile"
    }
  ]
}

Note

Сейчас поддерживается только отладка в браузере.

Вы не можете автоматически перестроить серверное приложение Server размещенного решения Blazor WebAssembly во время отладки, например путем запуска приложения с помощью команды dotnet watch run.

.vscode/launch.json (конфигурация launch):

...
"cwd": "${workspaceFolder}/{SERVER APP FOLDER}",
...

В предыдущей конфигурации для текущего рабочего каталога (cwd) заполнителем {SERVER APP FOLDER} является папка проекта Server, обычно "Server".

Если используется Microsoft Edge и в системе не установлен браузер Google Chrome, добавьте в конфигурацию дополнительное свойство "browser": "edge".

Пример для папки проекта Server, которая порождает Microsoft Edge в качестве браузера для выполнения отладки, вместо браузера по умолчанию Google Chrome:

...
"cwd": "${workspaceFolder}/Server",
"browser": "edge"
...

.vscode/tasks.json (аргументы командыdotnet):

...
"${workspaceFolder}/{SERVER APP FOLDER}/{PROJECT NAME}.csproj",
...

В предыдущем аргументе:

  • Заполнитель {SERVER APP FOLDER} — это папка проекта Server, обычно "Server".
  • Заполнитель {PROJECT NAME} — это имя приложения, которое обычно формируется на основе имени решения с добавлением ".Server" в приложении, созданном из шаблона проекта Blazor.

В следующем примере из руководства по использованию SignalR с приложением Blazor WebAssembly используется имя папки проекта Server и имя проекта BlazorWebAssemblySignalRApp.Server:

...
"args": [
  "build",
    "${workspaceFolder}/Server/BlazorWebAssemblySignalRApp.Server.csproj",
    ...
],
...

Пакет SDK для .NET — это набор библиотек и инструментов, которые разработчики используют для создания приложений и библиотек .NET.

Установите пакет SDK для .NET. Команды выдаются в командной оболочке с помощью .NET CLI.

Если вы ранее установили один или несколько пакетов SDK для .NET и хотите просмотреть активную версию, выполните следующую команду в командной оболочке:

dotnet --version

Если вы не знакомы с пакетом SDK для .NET, см . статью "Что такое пакет SDK для .NET?" и связанные статьи в документации по пакету SDK для .NET.

Создайте новый проект:

  • Перейдите с помощью команды cd в каталог, в котором вы хотите создать папку проекта (например, cd c:/users/Bernie_Kopell/Documents).

  • Для работы с интерактивной отрисовкой на стороне Blazor Web App сервера по умолчанию (интерактивная служба SSR) выполните следующую команду:

    dotnet new blazor -o BlazorApp
    
  • Для автономного Blazor WebAssembly интерфейса выполните следующую команду в командной оболочке, которая использует blazorwasm шаблон:

    dotnet new blazorwasm -o BlazorApp
    

Создайте новый проект:

  • Перейдите с помощью команды cd в каталог, в котором вы хотите создать папку проекта (например, cd c:/users/Bernie_Kopell/Documents).

  • Для работы с Blazor Server с демонстрационным кодом и Bootstrap выполните следующую команду:

    dotnet new blazorserver -o BlazorApp
    
  • Для автономной работы с Blazor WebAssembly, демонстрационным кодом и Bootstrap выполните следующую команду:

    dotnet new blazorwasm -o BlazorApp
    
  • Чтобы использовать размещённый Blazor WebAssembly с демонстрационным кодом и Bootstrap, добавьте к команде опцию hosted (-ho/--hosted):

    dotnet new blazorwasm -o BlazorApp -ho
    

    Note

    Шаблон размещенного Blazor WebAssembly проекта недоступен в .NET 8 или более поздней версии. Чтобы создать хостируемое Blazor WebAssembly приложение, используя SDK .NET 8 или более поздней версии, передайте параметр -f|--framework с целевой платформой .NET 7 (net7.0).

    dotnet new blazorwasm -o BlazorApp -ho -f net7.0
    

Создайте новый проект:

  • Перейдите с помощью команды cd в каталог, в котором вы хотите создать папку проекта (например, cd c:/users/Bernie_Kopell/Documents).

  • Для работы с Blazor WebAssembly выполните следующую команду:

    dotnet new blazorwasm -o BlazorApp
    
  • Для использования размещённого варианта Blazor WebAssembly добавьте к команде параметр hosted (-ho или --hosted):

    dotnet new blazorwasm -o BlazorApp -ho
    

    Note

    Шаблон размещенного Blazor WebAssembly проекта недоступен в .NET 8 или более поздней версии. Чтобы создать хостируемое Blazor WebAssembly приложение с помощью .NET SDK версии 8 или более поздней, передайте параметр -f|--framework с идентификатором целевой платформы (например, net6.0):

    dotnet new blazorwasm -o BlazorApp -ho -f net6.0
    
  • Для работы с Blazor Server выполните следующую команду:

    dotnet new blazorserver -o BlazorApp
    

Дополнительные сведения о шаблонах и параметрах см. в Blazor разделе "Шаблоны проектов" и "Параметры шаблона".

Выполнить приложение

Important

При выполнении Blazor Web App запускайте приложение из серверного проекта в решении, то есть из проекта, имя которого не заканчивается на .Client.

Important

При запуске размещённого приложения Blazor WebAssembly запускайте приложение из проекта Server решения.

Нажмите клавиши CTRL+F5 на клавиатуре, чтобы запустить приложение без отладчика.

Visual Studio отображает следующее диалоговое окно, если проект не настроен на использование SSL:

Диалоговое окно самозаверяющего сертификата доверия

Выберите Да, если вы доверяете SSL-сертификату ASP.NET Core.

Отобразится следующее диалоговое окно.

Диалоговое окно

Выберите "Да", чтобы подтвердить риск и установить сертификат.

Visual Studio:

  • Компилирует и запускает приложение.
  • Запускает браузер https://localhost:{PORT}по умолчанию, в котором отображается пользовательский интерфейс приложения. Подстановочный элемент {PORT} — это случайный порт, назначаемый при создании приложения. Если необходимо изменить порт из-за конфликта локального порта, измените порт в файле проекта Properties/launchSettings.json .

В VS Code нажмите клавиши CTRL +F5, чтобы запустить приложение без отладки.

В строке выбора отладчика в палитре команд в верхней части пользовательского интерфейса VS Code выберите C#. В следующем запросе выберите профиль HTTPS ([https]).

Браузер по умолчанию открывается по адресу https://localhost:{PORT}, где отображается пользовательский интерфейс приложения. Подстановочный элемент {PORT} — это случайный порт, назначаемый при создании приложения. Если необходимо изменить порт из-за конфликта локального порта, измените порт в файле проекта Properties/launchSettings.json .

В командной оболочке, открывшейся в корневой папке проекта, выполните dotnet watch команду, чтобы скомпилировать и запустить приложение:

dotnet watch

Браузер по умолчанию открывается по адресу https://localhost:{PORT}, где отображается пользовательский интерфейс приложения. Подстановочный элемент {PORT} — это случайный порт, назначаемый при создании приложения. Если необходимо изменить порт из-за конфликта локального порта, измените порт в файле проекта Properties/launchSettings.json .

Note

При запуске приложения с помощью .NET CLI по умолчанию используется первый профиль запуска в launchSettings.json, у которого commandName имеет значение Project. Чтобы использовать другой профиль (например, https), передайте параметр -lp|--launch-profile в dotnet watch или dotnet run, либо переместите предпочтительный профиль в начало файла.

Один из способов запуска приложения с ssl/HTTPS — передать -lp|--launch-profileпараметр с https именем профиля в dotnet watch команду:

dotnet watch -lp https

Альтернативный подход — переместить https профиль над http профилем в Properties/launchSettings.json файле и сохранить изменения. После изменения порядка профиля в файле dotnet watch команда всегда использует https профиль по умолчанию.

Остановка приложения

Остановите приложение с помощью одного из следующих подходов:

  • Закройте окно браузера.
  • В Visual Studio выполните одно из следующих действий:
    • Нажмите кнопку "Остановить" в строке меню Visual Studio:

      Кнопка

    • Нажмите клавиши SHIFT+F5 на клавиатуре.

Остановите приложение с помощью следующего подхода:

  1. Закройте окно браузера.
  2. В редакторе VS Code либо:
    • В меню "Запуск" выберите "Остановить отладку".
    • Нажмите клавиши SHIFT+F5 на клавиатуре.

Остановите приложение с помощью следующего подхода:

  1. Закройте окно браузера.
  2. В командной оболочке нажмите клавиши CTRL +C.

Файл решения Visual Studio (.sln).

Решение представляет собой контейнер для одного или нескольких взаимосвязанных проектов кода. Файлы решения используют уникальный формат и не предназначены для прямого редактирования.

Visual Studio и Visual Studio Code (VS Code) используют файл решения (.sln) для хранения параметров решения. .NET CLI не использует файл решения для организации проектов, но может создавать файлы решений, а также выводить список проектов в файлах решений и изменять их с помощью команды dotnet sln. Другие команды интерфейса командной строки .NET используют путь к файлу решения для разных команд публикации, тестирования и упаковки.

Blazor В документации решение используется для описания приложений, созданных из Blazor WebAssembly шаблона проекта, с включенным параметром ASP.NET Core Hosted или из Blazor Hybrid шаблона проекта. Приложения, созданные из этих шаблонов проектов, включают файл решения (.sln). Для размещенных Blazor WebAssembly приложений, в которых разработчик не использует Visual Studio, файл решения можно игнорировать или удалить, если он не используется с командами .NET CLI.

Дополнительные сведения см. на следующих ресурсах:

Blazor шаблоны проектов и параметры шаблонов

Note

Параметр шаблона проекта Hosted Blazor WebAssembly недоступен в .NET 8 или более поздней версии. Чтобы создать размещенное Blazor WebAssembly приложение, необходимо выбрать параметр Framework раньше чем .NET 8 и выбрать флажок ASP.NET Core Hosted. Однако мы рекомендуем использовать Blazor Web App для всех новых разработок Blazor в .NET 8 или более поздней версии. Дополнительные сведения см. на следующих ресурсах:

Платформа Blazor предоставляет шаблоны проектов для создания новых приложений. Шаблоны используются для создания новых Blazor проектов и решений независимо от средств Blazor разработки (Visual Studio, Visual Studio Code или интерфейса командной строки .NET).

  • Шаблон проекта Blazor Web App: blazor
  • Шаблон проекта автономного Blazor WebAssembly приложения: blazorwasm

Note

Параметр шаблона проекта Hosted Blazor WebAssembly недоступен в .NET 8 или более поздней версии. Чтобы создать размещенное Blazor WebAssembly приложение, необходимо выбрать параметр Framework раньше чем .NET 8 и выбрать флажок ASP.NET Core Hosted. Однако мы рекомендуем использовать Blazor Web App для всех новых разработок Blazor в .NET 8 или более поздней версии. Дополнительные сведения см. на следующих ресурсах:

  • Шаблоны проектов Blazor Server: blazorserver, blazorserver-empty
  • Шаблоны проектов Blazor WebAssembly: blazorwasm, blazorwasm-empty
  • Шаблон проекта Blazor Server: blazorserver
  • Шаблон проекта Blazor WebAssembly: blazorwasm

Дополнительные сведения о шаблонах проектов Blazor см. в статье Структура проекта ASP.NET Core Blazor.

Термины и понятия, связанные с визуализацией и используемые в следующих подразделах, вводятся в следующих разделах обзорной статьи «Основы»:

Подробные рекомендации по режимам отрисовки содержатся в статье режимы отрисовки ASP.NET CoreBlazor.

Интерактивный режим отрисовки

  • Интерактивная отрисовка на стороне сервера (интерактивная служба SSR) включена с параметром "Сервер ".
  • Чтобы включить взаимодействие только с отрисовкой на стороне клиента (CSR), используйте параметр WebAssembly .
  • Чтобы включить режим интерактивной отрисовки и возможность автоматического переключения между ними во время выполнения, используйте параметр "Автоматический" (сервер и webAssembly) (автоматический) режим отрисовки.
  • Если задано значение интерактивности None, созданное приложение не имеет интерактивности. Приложение настроено только на статический серверный рендеринг.

Интерактивный автоматический режим отрисовки изначально использует интерактивный SSR, в то время как пакет приложения .NET и среда выполнения загружаются в браузер. После активации среды выполнения .NET WebAssembly режим рендеринга переключается на интерактивный рендеринг WebAssembly.

Шаблон Blazor Web App включает как статический, так и интерактивный SSR с помощью одного проекта. Если вы также включите CSR, проект включает дополнительный клиентский проект (.Client) для компонентов на основе WebAssembly. Встроенные выходные данные из клиентского проекта загружаются в браузер и выполняются на клиенте. Все компоненты, использующие веб-интерфейсы webAssembly или автоматические режимы отрисовки, должны быть созданы из клиентского проекта.

Important

При использовании Blazor Web App большинству компонентов примеров в документации Blazorнеобходима интерактивность, чтобы они могли работать и демонстрировать концепции, рассматриваемые в статьях. При тестировании примера компонента, предоставленного в статье, убедитесь, что приложение принимает глобальное взаимодействие или компонент принимает интерактивный режим отрисовки.

Расположение интерактивности

Параметры расположения интерактивных элементов:

  • На страницу или компонент: по умолчанию настраивается интерактивность на каждую страницу или компонент.
  • Global: использование этого параметра глобально настраивает интерактивность для всего приложения.

Расположение интерактивности можно задать, только если Режим интерактивной отрисовки не None включен и аутентификация не включена.

Примеры страниц

Чтобы включить страницы-примеры и макет в стиле Bootstrap, используйте параметр «Включить страницы-примеры». Отключите этот параметр в проекте без страниц-примеров и стилей Bootstrap.

Дополнительные рекомендации по параметрам шаблона

Дополнительные сведения о параметрах шаблонов см. на следующих ресурсах.

  • Шаблоны .NET по умолчанию для статьи о dotnet new в документации по .NET:
    • blazorserver (включая опции blazorserver-empty)
    • blazorwasm (включая опции blazorwasm-empty)
  • Передача параметра справки (-h или --help) команде CLI dotnet new в командной оболочке:
    • dotnet new blazorserver -h
    • dotnet new blazorserver-empty -h
    • dotnet new blazorwasm -h
    • dotnet new blazorwasm-empty -h

Дополнительные сведения о параметрах шаблонов см. на следующих ресурсах.

  • Шаблоны .NET по умолчанию для статьи о dotnet new в документации по .NET:
  • Передача параметра справки (-h или --help) команде CLI dotnet new в командной оболочке:
    • dotnet new blazorserver -h
    • dotnet new blazorwasm -h

Библиотека служб по умолчанию для Blazor WebAssembly приложений

Шаблон blazor-wasm-servicedefaults проекта создает библиотеку служб по умолчанию для Blazor WebAssembly приложений с Aspire интеграцией.

Функции шаблона:

Пример использования шаблона с выходным именем BlazorSample.ServiceDefaults:

dotnet new blazor-wasm-servicedefaults -o BlazorSample.ServiceDefaults

Назовите библиотеку из Blazor WebAssembly клиента и выполните следующий вызов в файле приложения Program :

builder.AddBlazorClientServiceDefaults();

Дополнительные ресурсы