CodeBehind 4.5 发布;高级异步功能

发布: (2026年2月7日 GMT+8 06:03)
3 min read
原文: Dev.to

Source: Dev.to

概述

版本 4.5 是基于 .NET 7 的 CodeBehind 框架的最新发布。即将推出的 4.6 版本面向 .NET 10,由 Elanat 团队开发。本次发布重写了框架核心,实现了完整的异步化,提供更快的响应时间和更流畅的体验。

Elanat 的 CodeBehind 框架是一个全栈、开源(MIT 许可证)的 ASP.NET Core 框架,始于 2023。它将 Web Forms 的简易性(使用 .aspx 文件和 Code‑Behind 模式)与 ASP.NET Core 的现代架构相结合。通过提供无状态的 “WebForms Core” 方式,实现了直接的服务器端 UI 管理、无需重新编译即可动态添加功能以及降低路由复杂度——将其定位为默认 ASP.NET 框架的高性能替代方案。

异步控制器配置

1. 基于路由的配置

使用基于路由的控制器时,将操作定义为 async Task 方法:

public partial class Home : CodeBehindController
{
    public async Task PageLoad(HttpContext context)
    {
        // async logic here
    }
}

Program.cs 中添加中间件:

app.UseCodeBehindRouteAsync();

2. 默认(基于 ASPX)的配置

对于基于 .aspx 页面默认的 MVC 视图模型,通过以下方式启用异步处理:

  1. 在控制器引用中使用 await 关键字。
  2. 配置相应的中间件。

Razor 语法示例

@page
@controller await MyController

    ...

标准 ASPX 语法示例

    ...

Program.cs 中添加中间件:

app.UseCodeBehindAsync();

示例视图(Razor)

@page
@controller await MyController

## Test Async

@controller await MyController 指令告诉框架异步执行 MyController

示例控制器

using CodeBehind;

public partial class MyController : CodeBehindController
{
    public async Task PageLoad(HttpContext context)
    {
        string result = await DoSomethingAsync();
        Write(result);
    }

    private async Task DoSomethingAsync()
    {
        await Task.Delay(2000); // Simulate async work
        return "Hello CodeBehind! (after async work)";
    }
}
  • MyController 继承自 CodeBehindController
  • PageLoad 现在是 async,返回 Task
  • DoSomethingAsync 通过 2 秒延迟模拟异步操作,并返回字符串,该字符串会写入视图。

Program.cs

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddCodeBehind();

var app = builder.Build();

app.UseCodeBehindAsync();   // Enables async handling for controllers

app.Run();
  • 通过 AddCodeBehind() 注册 CodeBehind 服务。
  • UseCodeBehindAsync() 激活异步控制器处理。
  • 应用程序通过 app.Run() 启动。

好处

CodeBehind 4.5 为基于路由和基于 ASPX 的 MVC 控制器引入了完整的异步支持,提升了响应速度和整体性能。开发者现在可以使用 await 实现异步操作,而无需增加额外的复杂性。

资源

  • GitHub 仓库:
  • NuGet 包:
  • 官方 CodeBehind 页面:
Back to Blog

相关文章

阅读更多 »