NuGet 中的 WebForms Core
Source: Dev.to
概览
WebForms Core 是由 Elanat 开发的服务器驱动 UI 技术,现已正式在 NuGet 上以包名 WFC 提供。该包让 .NET 开发者能够使用标准 .NET 工具,将 WebForms Core 集成到 ASP.NET Core 项目中——包括 Razor Pages 和 MVC。
安装
使用一条命令安装 WebForms Core:
dotnet add package WFC
或在 .csproj 文件中直接添加包引用:
<!-- Add the package reference here -->
添加 WebFormsJS 运行时
要完成设置,需要在 HTML 页面 的 “ 部分中加入 WebFormsJS 运行时。你可以从以下渠道获取 WebFormsJS:
- Elanat:
- GitHub:
示例:使用 WebForms Core 删除 DOM 元素
HTML
This element will be removed
Remove
@Html.Raw(ViewData["WebForms"] ?? "")
服务器端 (C# – WebForms Core)
using WebFormsCore;
...
public IActionResult OnGet()
{
var form = new WebForms();
if (Request.Query.ContainsKey("remove_box"))
{
form.Remove("box");
return Content(form.Response(), "text/html");
}
// Bind click event
form.SetGetEvent("removeBtn", "onclick", "?remove_box");
// Export commands
ViewData["WebForms"] = form.ExportToHtmlComment();
return Page();
}
这里发生了什么?
- 当按钮被点击时,会向服务器发送请求。
- 服务器返回一个 Remove 命令。
- WebFormsJS 在浏览器中立即执行该命令。
- 无需页面刷新、DOM 差分,也不需要自定义 JavaScript。
哲学
WebForms Core 采用 确定性 UI 运行时 + 协议 + DSL 的方式。它是:
- 不仅仅是一个框架。
- 不仅仅是服务器驱动的 UI。
- 也不是经典 WebForms 的复兴。
相反,它定义了:
- 一个通信协议。
- 一个 UI 执行模型。
- 一个客户端运行时。
- 一个面向命令的语言。
目前没有其他 web 系统能够将这些关注点全部整合到一个统一、连贯的模型中。
进一步阅读
在文章中可以找到一个实用的 Razor Pages 示例:
State Management in WebForms Core 2 (Razor Pages Example)
WebForms Core 在 NuGet 上的可用性标志着在 .NET 生态系统中更广泛采用的重要一步。无论你是在构建新应用、现代化旧系统,还是在探索超越 Blazor 的服务器驱动 UI 架构,WFC 都提供了一种强大、极简且根本不同的方式,值得一试。