Поддержка  •  Дневник  •  Без рекламы  •  О сайте  •  Реклама  •  Поставить баннер  •  Прислать  •  Хроника  •  Translate Гости: 10    Участники: 0 Авторизация Авторизация   Регистрация 
Метод Научного Тыка
RULVEN
Поиск  
Blackball iMag | интернет-журнал
Каталог


Начало » Разработка ПО » C# и .NET: Blazor
Мне повезёт!

C# и .NET: Blazor


C# и .NET: Blazor
Опубликовано: 2023 г.
Добавлено: Пн 25.03.2024 • Sergeant
Автор: Рустем Галиев
Источник: источник
Просмотров: 17
Комментарии: 0


Blazor — это технология, позволяющая создавать клиентские веб-приложения с использованием C# и .NET, а не JavaScript. Blazor может запускать ваш код одним из двух способов. Blazor WebAssembly выполняет код C# на стороне клиента в любом современном браузере, поддерживающем WebAssembly. Blazor Server отправляет события пользовательского интерфейса на стороне клиента обратно на сервер с помощью технологии SignalR, которая обеспечивает связь через сокеты в режиме реального времени между браузером и сервером. После обработки на сервере изменения пользовательского интерфейса отправляются обратно в браузер по тому же сокетному соединению.

Сегодня мы сосредоточимся на создании нового приложения Blazor WebAssembly.

В следующих шагах вы узнаете, как:

  • как создать новое приложение Blazor WebAssembly,
  • как написать клиентский код C#,
  • как использовать компонент Blazor.

Создание и запуск нового приложения Blazor WebAssembly

Мы можем использовать .NET CLI для создания нового проекта Blazor WebAssembly из шаблона, который включает в себя все необходимое для начала создания нового приложения Blazor WebAssembly.

Мы создаем новый проект в существующем каталоге my-app, щелкнув или введя в терминале следующую команду:

dotnet new blazorwasm

Blazor WASM console

Чтобы сделать веб-приложение доступным через веб-браузер, нам нужно внести одно небольшое изменение в конфигурацию проекта по умолчанию.

Сначала мы открываем файл Properties/launchSettings.json. Мы обновляем значение applicationUrl в строке 16 следующим образом:

"applicationUrl": "http://*",

launchSettings.json

Обратите внимание, что это значение использует http, а не https. Это эффективно сделает наш веб-сайт доступным через стандартный порт 80 для всех IP-адресов на нашей виртуальной машине.

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

Мы используем следующую команду .NET CLI для запуска приложения с включенной «горячей перезагрузкой». Это автоматически включит большинство изменений кода по мере их внесения, поэтому вам не придется постоянно останавливать и перезапускать приложение:

dotnet watch

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

Hello world

Написание клиентского кода C#

Blazor позволяет писать код на стороне клиента с помощью C# вместо JavaScript. На этом шаге мы добавим кнопку на страницу и напишем обработчик события ее нажатия на C#.

На предыдущем шаге мы запустили приложение Blazor и получили к нему доступ через браузер. Мы возвращаемся к запущенному приложению и замечаем, что в нем есть три страницы, к которым вы можете получить доступ из меню навигации слева. Мы нажимаем Counter, чтобы просмотреть страницу с простым счетчиком. При нажатии кнопки текущий счетчик, отображаемый на странице, увеличивается. Значение увеличивается с помощью обработчика события нажатия кнопки, написанного на C#.

Приложение

Расширение функциональности счетчика

Мы открываем файл Pages/Counter.razor. Этот файл содержит код, реализующий функциональность счетчика. Синтаксис Razor позволяет комбинировать HTML и CSS с C# для отображения пользовательского интерфейса страницы. Одно из отличий в синтаксисе Razor заключается в том, что код C# будет выполняться WebAssembly в браузере, а не на сервере, как в случае с приложением Razor Pages.

Мы меняем текст, который появляется на кнопке, чтобы он говорил «Increment», а не «Click me». Обновленный элемент кнопки должен выглядеть следующим образом:

<button class="btn btn-primary" ="IncrementCount">Increment</button>

Мы используем следующий код, чтобы добавить новый элемент кнопки ниже существующего, который будет уменьшать значение счетчика:

<button class="btn btn-primary" ="DecrementCount">Decrement</button>

Обработчик события щелчка определяется путем назначения метода атрибуту @onclick элемента. Обратите внимание, что новая кнопка назначает метод с именем DecrementCount, которого еще не существует.

Чуть дальше в файле находится некоторый код C#, определенный внутри блока @code { }. Добавьте следующий метод внутри этого блока сразу после метода IncrementCount():

Этот метод имеет знакомую структуру всех методов C#. Обратите внимание, что он использует оператор декремента (--) для переменной currentCount, чтобы уменьшить ее значение на единицу.

На предыдущем шаге мы запустили приложение с включенной «горячей перезагрузкой», поэтому наши изменения должны были быть автоматически созданы и включены в работающее приложение.

my-app

my-app

Возвращаемся в браузер и обновляем страницу. Если при обновлении страницы новая кнопка не отображается, вам может потребоваться перезапустить приложение. Для этого вернитесь в терминал и нажмите CTRL-C, чтобы остановить приложение, и снова введите следующую команду, чтобы запустить его:

dotnet watch

Использование компонентов Blazor

Компоненты Blazor — это многократно используемые фрагменты разметки и кода. На этом этапе мы рассмотрим существующий компонент Blazor и повторно используем его в другой части нашего приложения без написания дополнительного кода.

Откроем файл Shared/SurveyPrompt.razor.

<div class="alert alert-secondary mt-4">
    <span class="oi oi-pencil me-2" aria-hidden="true"></span>
    <strong>@Title</strong>

    <span class="text-nowrap">
        Please take our
        <a target="_blank" class="font-weight-bold link-dark" href="https://go.microsoft.com/fwlink/?linkid=2148851">brief survey</a>
    </span>
    and tell us what you think.
</div>

@code {
    // Demonstrates how a parent component can supply parameters
    [Parameter]
    public string? Title { get; set; }
}

Этот файл содержит разметку и код для компонента Blazor. Обратите внимание, что разметка состоит из одного элемента <div> с парой <span> и другими элементами внутри него. В нижней части файла находится блок @code { }, в котором объявляется свойство с именем Title. К свойству применен атрибут [Parametr]. Значение свойства используется внутри тега <strong> в разметке с использованием символа @, за которым следует имя свойства.

Откройте файл Pages/Index.razor. Компонент SurveyPrompt добавляется в конец этой страницы с использованием имени компонента, как если бы это был тег HTML. Свойство Title рассматривается как атрибут элемента и устанавливается в начальное значение. Код для добавления компонента выглядит следующим образом:

<SurveyPrompt Title="How is Blazor working for you?" />

Преимущество компонентов Blazor заключается в том, что вы можете легко повторно использовать их в других частях вашего приложения. Давайте добавим компонент SurveyPrompt на страницу счетчика. Мы открываем файл Pages/Counter.razor.

Мы добавляем следующий код сразу после элемента <PageTitle> вверху страницы:

<SurveyPrompt Title="Tell us how much you love Blazor!" />

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

Давайте посмотрим на результат. Мы возвращаемся к приложению, работающему в вашем браузере, и обновляем страницу счетчика. Мы должны увидеть, что компонент SurveyPrompt отображается в верхней части страницы с пользовательским значением свойства Title. Если при обновлении страницы новый компонент не отображается, может потребоваться перезапустить приложение. Для этого вернитесь в терминал и нажмите CTRL-C, чтобы остановить приложение, и снова введите следующую команду, чтобы запустить его:

dotnet watch

Мы возвращаемся к приложению, запущенному в вашем браузере, и обновляем страницу счетчика, чтобы увидеть новый компонент.

my-app с компонентом

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



Мне нравится 0   Мне не нравится 0



Комментарии

Чтобы добавить видео с YouTube, нужно написать [@youtube=xxxxx] , где xxxxx – ID видео.


Комментарии: 0
Нет ни одного комментария.
RSS-лента
Поделиться ссылкой:
Корпоративный туалетный этикет
300+ вопросов по JavaScript на собеседовании 300+ вопросов по JavaScript на собеседовании
Эротика прикосновений Эротика прикосновений
Секс, влияние на здоровье
Энергия кончика языка и губ Энергия кончика языка и губ
Тайский салат с креветкой Тайский салат с креветкой
Обзор Sony Ericsson XPERIA X10: Android для максималистов Обзор Sony Ericsson XPERIA X10: Android для максималистов
Предварительная ласка Предварительная ласка
Пособие мужчинам: стимулируем клитор Пособие мужчинам: стимулируем клитор
Заголовки для экспресс-газеты

csharp
Delegates in C#: A comprehensive guide Ср 27.03.2024
Delegates in C#: A comprehensive guide
C# и .NET: Blazor Пн 25.03.2024
C# и .NET: Blazor
Ср 20.03.2024
Creating functions that return multiple values in C#
Задача по языку C#: Игра «Крестики Нолики» в консоли Пн 26.02.2024
Задача по языку C#: Игра «Крестики Нолики» в консоли
Pagination in a .NET Web API with EF Core Ср 21.02.2024
Pagination in a .NET Web API with EF Core
Зачем нужен MediatR? Пн 24.04.2023
Зачем нужен MediatR?
C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development Build applications with C# NET Core, Entity Framework Чт 02.02.2023
C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development Build applications with C# NET Core, Entity Framework
Год: 2019
C# 6 and .NET Core 1.0 Modern Cross-Platform Development Чт 26.01.2023
C# 6 and .NET Core 1.0 Modern Cross-Platform Development
Год: 2016
Concurrency in C# Cookbook Чт 12.01.2023
Concurrency in C# Cookbook
Год: 2019
C# 7 and .NET Core: Modern Cross-Platform Development, 2nd Edition Вт 04.01.2022
C# 7 and .NET Core: Modern Cross-Platform Development, 2nd Edition
Год: 2017
Effective C# (Covers C# 6.0): 50 Specific Ways to Improve Your C#, 3rd Edition Вт 21.12.2021
Effective C# (Covers C# 6.0): 50 Specific Ways to Improve Your C#, 3rd Edition
Год: 2017
C# and XML Primer Чт 09.12.2021
C# and XML Primer
Год: 2017
More Effective C#: 50 Specific Ways to Improve Your C#, 2nd Edition Вт 16.11.2021
More Effective C#: 50 Specific Ways to Improve Your C#, 2nd Edition
Год: 2017
Разработка обслуживаемых программ на языке C# Чт 28.10.2021
Разработка обслуживаемых программ на языке C#
Год: 2017
C# 7 and .NET Core Cookbook Вт 05.10.2021
C# 7 and .NET Core Cookbook
Год: 2017
C# для профессионалов. Тонкости программирования, 3-е издание Вт 11.05.2021
C# для профессионалов. Тонкости программирования, 3-е издание
Год: 2014
C# 6.0 in a Nutshell, 6th Edition Чт 29.04.2021
C# 6.0 in a Nutshell, 6th Edition
Год: 2015
CLR via C#, 4th Edition Вт 30.03.2021
CLR via C#, 4th Edition
Год: 2012
.NET Domain-Driven Design with C# Вт 16.03.2021
.NET Domain-Driven Design with C#
Год: 2008
Pro LINQ: Language Integrated Query in C# 2010 Чт 25.02.2021
Pro LINQ: Language Integrated Query in C# 2010
Год: 2010
Pro LINQ: Language Integrated Query in C# 2008 Вт 23.02.2021
Pro LINQ: Language Integrated Query in C# 2008
Год: 2007
Software Architecture with C# 9 and .NET 5, Second Edition Сб 13.02.2021
Software Architecture with C# 9 and .NET 5, Second Edition
Год: 2020
C# 9 and .NET 5 Сб 13.02.2021
C# 9 and .NET 5
Год: 2020
Компиляция и запуск C# и Blazor внутри браузера Пн 07.12.2020
Компиляция и запуск C# и Blazor внутри браузера
C# 7.0. Карманный справочник Вт 24.11.2020
C# 7.0. Карманный справочник
Год: 2017
Professional C# 6 and .NET Core 1.0 Вт 17.11.2020
Professional C# 6 and .NET Core 1.0
Год: 2016
Пн 16.11.2020
Develop and Install a Windows Service in C#
C# 7.1 and .NET Core 2.0 – Modern Cross-Platform Development Вт 10.11.2020
C# 7.1 and .NET Core 2.0 – Modern Cross-Platform Development
Год: 2017
C# 8 Quick Syntax Reference Вт 03.11.2020
C# 8 Quick Syntax Reference
Год: 2020
Problem Solving in Data Structures and Algorithms Using C# Вт 27.10.2020
Problem Solving in Data Structures and Algorithms Using C#
Год: 2018
C# 7 и .NET Core. Кросс-платформенная разработка для профессионалов Вт 01.09.2020
C# 7 и .NET Core. Кросс-платформенная разработка для профессионалов
Год: 2018
Язык программирования C# 7 и платформы .NET и .NET Core Вт 25.08.2020
Язык программирования C# 7 и платформы .NET и .NET Core
Год: 2018
The C# Player’s Guide, 3rd Edition Вт 31.12.2019
The C# Player’s Guide, 3rd Edition
Год: 2016
Design Patterns in C# Пн 09.01.2017
Design Patterns in C#
Год: 2012
Язык программирования C# 5.0 и платформа .NET 4.5 Пн 02.01.2017
Язык программирования C# 5.0 и платформа .NET 4.5
Год: 2013
The C# Player's Guide, 2nd Edition Пн 12.12.2016
The C# Player's Guide, 2nd Edition
Год: 2015
C# Programming Yellow Book Пн 21.11.2016
C# Programming Yellow Book
Год: 2015
Pro WPF 4.5 in C#, 4th Edition Пн 11.04.2016
Pro WPF 4.5 in C#, 4th Edition
Год: 2012
Pro Silverlight 5 in C#, 4th Edition Ср 06.04.2016
Pro Silverlight 5 in C#, 4th Edition
Год: 2012
Pro C# 5.0 and the .NET 4.5 Framework, 6th Edition Пн 21.03.2016
Pro C# 5.0 and the .NET 4.5 Framework, 6th Edition
Год: 2012
Pro ASP.NET 4 in C# 2010, 4th Edition Ср 16.03.2016
Pro ASP.NET 4 in C# 2010, 4th Edition
Год: 2010
Pro .NET 4 Parallel Programming in C# Ср 09.03.2016
Pro .NET 4 Parallel Programming in C#
Год: 2010
A Programmer's Guide to C# 5.0, 4th Edition Ср 24.02.2016
A Programmer's Guide to C# 5.0, 4th Edition
Год: 2012
CLR via C#, 3rd Edition Сб 27.10.2012
CLR via C#, 3rd Edition
Год: 2009
Книги
Fundamentals of Software Architecture вчера, 10:13
Fundamentals of Software Architecture
Год: 2020
Refactoring with C# Вт 23.04.2024
Refactoring with C#
Год: 2023
Building IoT Visualizations using Grafana Вт 09.04.2024
Building IoT Visualizations using Grafana
Год: 2022

Разработано на основе BlackNight CMS
Release v.2024-05-05
© 2000–2024 Blackball
Дизайн & программирование:
О сайтеРеклама
Visitors
Web-site performed by Sergey Drozdov
BlackballРекламаСтатистикаПоддержка | МузыкаПлейлистыКиноВидеоИгрыАудиоПрограммыСтатьиКартинкиЮморФорумДневник сайтаПрислать контент