Quantcast
Channel: 小蓝博客
Viewing all articles
Browse latest Browse all 3155

C#快速入门:Blazor Server端开发指南

$
0
0

C#快速入门:Blazor Server端开发指南

Blazor是微软推出的一个使用C#构建交互式Web应用的框架。它允许开发者使用C#和.NET,而不是JavaScript,来创建客户端Web应用。本文将带您快速入门Blazor Server端的开发。🚀

一、什么是Blazor Server?

Blazor有两种托管模式:Blazor WebAssemblyBlazor Server

  • Blazor WebAssembly:在客户端浏览器中运行,使用WebAssembly加载.NET运行时。
  • Blazor Server:在服务器上运行组件,通过SignalR与客户端通信。

原理示意图:

graph LR
A[客户端浏览器] -- SignalR连接 ⚡️ --> B[服务器上的Blazor应用]
B -- 发送UI更新 --> A
A -- 用户交互事件 --> B

二、环境准备

1. 安装.NET SDK

确保已安装.NET 6.0或更高版本的SDK。您可以在终端中运行以下命令检查版本:

dotnet --version

解释:

  • dotnet --version:显示已安装的.NET SDK版本。

2. 安装Visual Studio

建议使用Visual Studio 2022或更新的版本,并安装ASP.NET和Web开发工作负载。

三、创建Blazor Server项目

1. 使用Visual Studio创建项目

  • 打开Visual Studio,选择创建新项目
  • 搜索并选择Blazor Server应用模板。
  • 选择项目名称和保存位置,点击创建

2. 项目结构解析

  • Pages文件夹:存放Razor组件,以 .razor为扩展名。
  • Shared文件夹:存放共享组件,如导航栏等。
  • _Host.cshtml:Blazor Server的入口页面

四、运行和测试应用

点击运行按钮 ▶️,启动应用程序。在浏览器中将看到默认的Blazor模板,包括首页、计数器和获取数据页面。

五、创建自定义组件

1. 创建新的组件

Pages文件夹中,添加一个新组件HelloWorld.razor

<h3>Hello, @Name! 😊</h3>

@code {
    [Parameter]
    public string Name { get; set; } = "Blazor";
}

解释:

  • <h3>标签:显示欢迎信息。
  • @Name:使用C#变量 Name
  • [Parameter]:标记 Name为可传递的参数。
  • @code { }:C#代码块,定义组件的逻辑。

2. 使用组件

Index.razor中,添加以下代码:

<HelloWorld Name="Blazor Server"></HelloWorld>

解释:

  • <HelloWorld>:使用我们刚刚创建的 HelloWorld组件。
  • Name="Blazor Server":传递参数 Name的值。

六、数据绑定与事件处理

1. 双向数据绑定

Counter.razor中,添加一个输入框,实现双向数据绑定。

<input @bind="currentCount" />

<p>你输入的数字是:@currentCount</p>

解释:

  • @bind="currentCount":实现输入框与 currentCount变量的双向绑定。
  • @currentCount:实时显示 currentCount的值。

2. 事件处理

修改Counter.razor的按钮点击事件。

<button class="btn btn-primary" @onclick="IncrementCount">点击我</button>

@code {
    private void IncrementCount()
    {
        currentCount++;
    }
}

解释:

  • @onclick="IncrementCount":指定按钮的点击事件处理函数。
  • IncrementCount方法:每次调用时,currentCount加一。

七、依赖注入

1. 注册服务

Program.cs中,注册一个服务。

builder.Services.AddSingleton<WeatherForecastService>();

解释:

  • AddSingleton<T>():将 WeatherForecastService注册为单例服务

2. 使用服务

FetchData.razor中,注入服务并使用。

@inject WeatherForecastService ForecastService

@code {
    private WeatherForecast[] forecasts;

    protected override async Task OnInitializedAsync()
    {
        forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
    }
}

解释:

  • @inject:注入服务 WeatherForecastService,并命名为 ForecastService
  • OnInitializedAsync:组件初始化时,调用服务的方法获取数据。

八、Blazor Server的工作流程

graph TD
A[客户端浏览器] -- 发送请求 --> B[服务器上的Blazor应用]
B -- 返回初始HTML --> A
A -- 建立SignalR连接 --> B
B -- 处理用户事件 --> C[更新组件状态]
C -- 发送UI更新 --> A

解释:

  • 初始请求:客户端请求页面,服务器返回初始的HTML。
  • SignalR连接:客户端与服务器建立SignalR长连接
  • 事件处理:用户在客户端的操作通过SignalR传递到服务器。
  • UI更新:服务器计算后的UI更新通过SignalR发送回客户端。

九、部署Blazor Server应用

1. 发布应用

在Visual Studio中,右键点击项目,选择发布,按照向导完成发布设置。

2. 部署到服务器

将发布的文件部署到支持ASP.NET Core的服务器上,如IIS或Azure。

十、总结

通过本文的介绍,您应该对Blazor Server端开发有了基本的了解。Blazor提供了使用C#构建现代Web应用的全新方式,值得深入学习和探索。💡


✨祝您在Blazor的世界里开发愉快!😊


Viewing all articles
Browse latest Browse all 3155

Trending Articles