Эта версия ASP.NET Core больше не поддерживается. Дополнительные сведения см. в политике поддержки .NET и .NET Core. В текущем выпуске смотрите версию .NET 9 этой статьи.
Важно!
Эта информация относится к предварительному выпуску продукта, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Статьи по основам включают описание основных понятий Blazor. Некоторые понятия связаны с компонентами Razor, которые описаны в следующем разделе этой статьи и подробно рассматриваются в статьях Компоненты.
Основные понятия статической и интерактивной отрисовки
Razorкомпоненты либо статически отрисовываются, либо отображаются в интерактивном режиме.
Статический или статическая отрисовка — это серверный сценарий, который означает, что компонент отрисовывается без возможности взаимодействия пользователя с кодом .NET/C#. События JavaScript и HTML DOM остаются неизменными, но никакие клиентские события пользователя не могут быть обработаны, поскольку .NET работает на сервере.
интерактивность/взаимодействие или интерактивная отрисовка означает, что компонент имеет возможность обрабатывать события .NET и привязку с помощью кода C#. События и привязка .NET обрабатываются на сервере средой выполнения ASP.NET Core или в браузере на клиенте с помощью среды выполнения на основе WebAssembly Blazor.
Важно!
При использовании Blazor Web App большинство компонентов Blazor из примеров документации требуют интерактивности для функционирования и демонстрации концепций, изложенных в статьях. При тестировании примера компонента, предоставленного статьей в Blazor Web App, убедитесь, что приложение использует глобальный режим взаимодействия или компонент использует интерактивный режим отрисовки. Дополнительные сведения об этой теме даются режимами отрисовки ASP.NET Core Blazor в разделе Компоненты, который представлен далее в наборе документации Blazor.
Более подробную информацию об этих концепциях и о том, как управлять статической и интерактивной отрисовкой, можно найти в статье ASP.NET Core о режимах отрисовки, расположенной далее в документации.
Основные понятия отрисовки клиента и сервера
Blazor По всей документации, действие, которое происходит в системе пользователя, как сообщается, происходит на стороне клиента или клиента. Действие, которое происходит на сервере, происходит на сервере или на стороне сервера.
Термин «рендеринг» означает создание HTML-разметки, отображаемой браузерами.
Отрисовка на стороне клиента (CSR) означает, что окончательная разметка HTML создается средой выполнения .NET WebAssembly на клиенте. HTML-код для клиентского пользовательского интерфейса приложения не отправляется с сервера на клиент для этого типа отображения. Предполагается взаимодействие пользователей со страницей. Нет такой концепции, как статическое отображение на стороне клиента. Предполагается, что CSR является интерактивным, поэтому "интерактивный рендеринг на стороне клиента" и "интерактивный CSR" не используются в отрасли или в Blazor документации.
Отрисовка на стороне сервера (SSR) означает, что окончательная разметка HTML создается средой выполнения ASP.NET Core на сервере. HTML отправляется клиенту через сеть для отображения браузером клиента. Код HTML для созданного сервером пользовательского интерфейса приложения не создается клиентом для этого типа отрисовки. SSR может быть двух разновидностей:
Статический SSR: сервер создает статический HTML-код, который не обеспечивает пользовательскую интерактивность или поддержание состояния компонента Razor.
Интерактивный SSR: Blazor события позволяют взаимодействие пользователей, а Razor состояние компонента поддерживается фреймворком Blazor .
Предварительная отрисовка — это процесс первоначальной отрисовки содержимого страницы на сервере без включения обработчиков событий для отрисованных элементов управления. Сервер выводит HTML-интерфейс страницы как можно скорее в ответ на первоначальный запрос, что делает приложение более адаптивным к пользователям. Предварительная подготовка также может улучшить оптимизацию поисковой системы (SEO), отрисовав содержимое для первоначального HTTP-ответа, используемого поисковыми системами для вычисления ранжирования страниц. За предварительной отрисовкой всегда следует окончательная отрисовка на сервере или клиенте.
составные части компонента Razor.
Приложения Blazor основаны на компонентах Razor, которые часто называются просто компонентами.
Компонентом называется любой элемент пользовательского интерфейса, например страница, диалоговое окно или форма ввода данных. Компоненты являются классами C# .NET, встроенными в сборки .NET.
Razor обозначает способ, которым компоненты обычно записываются в виде страницы разметки Razor для логики и композиции пользовательского интерфейса на стороне клиента. Синтаксис Razor сочетает разметку HTML с кодом C#, позволяя повысить производительность разработчиков. Файлы Razor используют расширение файла .razor.
Хотя некоторые разработчики и онлайн-ресурсы используют термин "Blazor компоненты", в документации избегают этого термина и повсеместно используют "компоненты Razor" или просто "компоненты".
В документации Blazor используются определенные соглашения для обозначения и обсуждения компонентов:
Как правило, в примерах используются соглашения ASP.NET Core/C# для кода и рекомендации по разработке ПО. Дополнительные сведения см. в следующих ресурсах:
Код проекта, пути к файлам, имена файлов, имена шаблонов проектов и другие специализированные термины приведены на английском языке (США) и обычно заключены в код.
Компоненты обычно указываются с помощью имени их класса C# (в стиле Pascal), перед которым приведено слово "компонент". Например, типичный компонент отправки файлов называется "компонентом FileUpload".
Обычно имя класса C# компонента не отличается от его имени файла.
Маршрутизируемые компоненты обычно задают для своих относительных URL-адресов имя класса компонента в формате kebab-case. Например, компонент FileUpload включает конфигурацию маршрутизации для доступа к отрисовываемому компоненту по относительному URL-адресу /file-upload. Маршрутизация и навигация рассматриваются в статье Маршрутизация и навигация Blazor в ASP.NET Core.
При использовании нескольких версий компонентов они нумеруются по порядку. Например, FileUpload3 компонент достигается по адресу /file-upload-3.
Razor Директивы в верхней части определения компонента (.razor file) размещаются в следующем порядке: @page, @rendermode (.NET 8 или более поздней версии), @using заявления, другие директивы в алфавитном порядке.
Хотя для членов private это не требуется, модификаторы доступа применяются в примерах статей и приложений. Например, private указывается для объявления поля с именем maxAllowedFiles как private int maxAllowedFiles = 3;.
Значения параметров компонента приводят к зарезервированным Razor символам@, но это не обязательно. Литералы (например, логические значения), ключевые слова (например, this) и null как значения параметров компонента не имеют префикса @, но это также лишь соглашение в документации. Собственный код может префиксировать литералы @, если вы хотите.
Классы C# используют ключевое this слово и избегают префикса полей с подчеркиванием (_), которые инициализируются в конструкторах, что отличается от рекомендаций по проектированию платформы ASP.NET Core.
В примерах, использующих первичные конструкторы (C# 12 или более поздней версии), параметры первичного конструктора обычно используются непосредственно членами класса.
В примерах статей строки кода разделены для уменьшения горизонтальной прокрутки. Эти разрывы не влияют на выполнение, но вы можете удалить их при вставке в проект.
Дополнительные сведения о синтаксисе компонента Razor приведены в разделе синтаксис Razor для компонентов ASP.NET Core Razor.
Ниже приведен пример компонента счетчика и часть приложения, созданного из шаблона проекта Blazor. Подробно компоненты рассматриваются в статьях Компоненты, которые приведены далее в этой документации. В следующем примере демонстрируются понятия компонентов, описанные в статьях Основы (прежде чем вы приступите к статьям Компоненты, приведенным далее в этой документации).
Counter.razor:
Компонент предполагает, что интерактивный режим отрисовки наследуется от родительского компонента или применяется глобально к приложению.
Задает собственный маршрут с помощью директивы @page в первой строке.
Задает название страницы и заголовок.
Показывает текущее значение счетчика с помощью @currentCount.
currentCount — это целочисленная переменная, определенная в коде C# блока @code.
Отображает кнопку для запуска метода IncrementCount, который также можно найти в блоке @code и который увеличивает значение переменной currentCount.
Режимы отрисовки
Статьи в узле "Основы" ссылаются на понятие режимов отрисовки. Эта тема подробно рассматривается в статье о режимах отрисовки ASP.NET CoreBlazor в разделе Компоненты, который следует после раздела Основы.
Для ранних упоминаний в этой группе статей о концепциях режима отображения просто отметьте следующее:
Каждый компонент в принимает режим отрисовки , чтобы определить модель размещения, используемую для того, где он будет отрисован, а также отображается ли он статически на сервере, отрисовывается для интерактивности с пользователем на сервере или отрисовывается для интерактивности с пользователем на клиенте (обычно с предварительной отрисовкой на сервере).
Blazor Server и Blazor WebAssembly приложения для выпусков ASP.NET Core до .NET 8 остаются сосредоточенными на концепциях модели размещения, а не на режимах отрисовки. Режимы отрисовки концептуально применяются к Blazor Web Apps в .NET 8 или более поздней версии.
В следующей таблице показаны доступные режимы отрисовки компонентов Razor в Blazor Web App. Режимы отрисовки применяются к компонентам с директивой @rendermode для экземпляра компонента или определения компонента. Кроме того, можно задать режим отрисовки для всего приложения.
Имя
Описание
Место визуализации
Интерактивный
Статический сервер
Статический рендеринг на стороне сервера (статический SSR)
Сервер
❌Нет
Интерактивный сервер
Интерактивная отрисовка на стороне сервера (интерактивный SSR) с помощью Blazor Server
Сервер
✔️Да
Интерактивное WebAssembly
Рендеринг на стороне клиента (CSR) с помощью Blazor WebAssembly†
Клиент
✔️Да
Интерактивное авто
Интерактивная служба SSR, используемая Blazor Server изначально, а затем CSR при последующих посещениях после Blazor скачивания пакета
Сервер, а затем клиент
✔️Да
Предполагается, что клиентская визуализация (CSR) является интерактивной. "Интерактивный рендеринг на стороне клиента" и "интерактивный CSR" не используются в отрасли или в Blazor документации.
Предыдущая информация о режимах отрисовки — это все, что необходимо знать для понимания основных статей узлов Фундаментальных знаний. Если вы не знакомы с Blazor и читаете Blazor статьи по порядку в оглавлении, вы можете отложить изучение подробных сведений о режимах отрисовки до тех пор, пока вы не достигнете статьи о режимах отрисовки Blazor ASP.NET Core в узле Компоненты.
Модель объекта документа (DOM)
Ссылки на объектную модель документа используют сокращенную модель DOM.
Дополнительные сведения см. на следующих ресурсах:
По ссылкам в документации на справочные материалы по .NET обычно загружается ветвь репозитория по умолчанию, которая представляет текущую разработку для следующего выпуска .NET. Чтобы выбрать тег для конкретного выпуска, используйте раскрывающееся меню Switch branches or tags (Переключение ветвей или тегов). Дополнительные сведения см. в статье Выбор тега версии исходного кода ASP.NET Core (dotnet/AspNetCore.Docs #26205).
Дополнительные сведения см. на следующих ресурсах:
Примерные приложения предоставляют примеры кода, что отображаются в статьях. Эти приложения компилируются, но их не обязательно можно запускать. Эти приложения полезны для простого получения примера кода, отображаемого в статьях.
Примеры приложений, сопровождающие статьи Blazor, компилируются и запускаются для следующих сценариев:
Blazor Server и Blazor WebAssembly с SignalR;
ведение журнала с поддержкой областей Blazor WebAssembly.
Более подробная информация, список примеров в репозитории и инструкции по загрузке — все это см. в README-файле репозитория GitHub Blazor.
Базовое тестовое приложение репозитория ASP.NET Core является также полезным набором примеров для различных Blazor сценариев.
По ссылкам в документации на справочные материалы по .NET обычно загружается ветвь репозитория по умолчанию, которая представляет текущую разработку для следующего выпуска .NET. Чтобы выбрать тег для определенного выпуска, используйте раскрывающийся список Switch branches or tags (Переключение ветвей или тегов). Дополнительные сведения см. в статье Выбор тега версии исходного кода ASP.NET Core (dotnet/AspNetCore.Docs #26205).
Кратные байтам
Размеры байтов .NET используют метрические префиксы для не десятичных кратных байтов на основе степеней 1024.
Имя (сокращенное)
Размер
Пример
Килобайт (КБ)
1024 байт
1 КБ = 1 024 байта
Мегабайт (МБ)
10242 байта
1 МБ = 1 048 576 байт
Gigabyte (ГБ)
1 0243 байта
1 ГБ = 1 073 741 824 байта
Запросы в службу поддержки
В репозитории dotnet/AspNetCore.Docs уместны только вопросы, связанные с документацией.
Если вам требуется поддержка по продукту, не открывайте проблему по документации. Помощь можно найти в одном или нескольких из следующих каналов поддержки:
Чтобы сообщить о потенциальной ошибке на платформе или оставить отзыв о продукте, создайте заявку о проблеме для команды по продукту ASP.NET Core в проблемах dotnet/aspnetcore. Для отчетов об ошибках обычно требуется следующее:
Четкое описание проблемы — следуйте инструкциям в шаблоне проблемы GitHub, предоставленном командой по продукту при создании заявки о проблеме.
Минимальный проект для воспроизведения — разместите проект на GitHub, чтобы инженеры продуктовой команды могли скачать и выполнить его. Вставьте перекрёстную ссылку на проект в первый комментарий к задаче.
Если потенциальная проблема возникла со статьей по Blazor, создайте заявку о проблеме с документацией. Чтобы открыть проблему с документацией, используйте ссылку на отзыв о проблеме с документацией в нижней части статьи. Добавленные метаданные в вашу задачу предоставляют данные отслеживания и автоматически уведомляют автора статьи. Если тема была обсуждена с продуктовым подразделением перед открытием вопроса документации, разместите гиперссылку на инженерный вопрос в первом комментарии вопроса документации.
Для сообщений о проблемах или предложений по улучшению в Visual Studio используйте Сообщить о проблеме или Предложить функцию в Visual Studio, чтобы открыть внутренние задачи для Visual Studio. Дополнительные сведения см. в разделе Обратная связь Visual Studio.
Поддержку по проблемам с Visual Studio Code можно получить на форумах поддержки сообщества. Отчеты об ошибка и отзывы о продуктах можно оставить, создав заявку о проблеме в репозитории microsoft/vscode на GitHub.
Проблемы GitHub с документацией Blazor автоматически помечаются для рассмотрения в проекте Blazor.Docs (репозиторий dotnet/AspNetCore.Docs на GitHub). На получение ответа потребуется некоторое время, особенно если вы создали заявку на выходных или в праздничные дни. Обычно в рабочие дни авторы документации отвечают в течение 24 часов.
Ссылки сообщества на ресурсы Blazor
Коллекцию ссылок на ресурсы Blazor от сообщества см. на странице Awesome Blazor.
Примечание
Корпорация Майкрософт не владеет страницей Awesome Blazor, не обслуживает и не поддерживает ее, а также большинство продуктов и служб сообщества, описанных и приведенных на ней.
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о ASP.NET Core
ASP.NET Core — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
Создавайте комплексные решения в Microsoft Azure для создания Функции Azure, реализации веб-приложений и управления ими, разработке решений, использующих службу хранилища Azure, и т. д.