创建 Web 应用
一个项目很少仅由后端组成。 使用 Lino,也可以创建 Web 应用来消费生成的 API,为最终用户或内部团队提供界面。
目前,该框架原生支持 Blazor Web App(渲染模式 interactive auto)。
但是,该架构设计允许在同一解决方案中添加多个前端,以满足不同的场景和用户群体。
使用 Blazor Web App 的前端
在生成前端时,Lino 会自动创建一个 Blazor Web App 项目,并配置为:
- 简化路由 → 已配置好标准导航结构。
- 与 Minimal APIs 原生集成 → 直接调用已创建的端点。
- 可重用的 CRUD 组件 → 标准化的列表、创建和编辑页面。
- 支持身份验证和授权 → 如果服务已配置安全性。
该前端已准备好消费应用模块中生成的 API,具备强类型和通过强类型 HttpClient 的自动集成。
多个前端
一个项目可以包含所需数量的前端。 每个前端都作为 Blazor 新项目添加到解决方案中,共享后端公开的相同 API。
场景示例:
- 公共网站 → 客户或访客可访问的页面。
- 后台/管理 → 为操作员或管理团队提供的内部管理面板。
- 合作伙伴门户 → 仅限合作伙伴、经销商或供应商访问。
这种分离便于界面专业化,同时在 API 使用上保持架构一致性。
生成网页页面
为了加速界面开发,Lino 的 CLI 提供了以下命令:
lino page new
该命令会创建已经连接到后端的 Blazor 页面,并遵循既定的约定:
- 表单组件生成 → 创建和编辑页面。
- 自动列表 → 索引页面(分页列表)。
- 与 API 的直接集成 → 自动连接到对应的端点。
这允许创建完整的 CRUD(前端 → API → CQRS → 数据库),无需重复手动编写代码。
例如,为实体 Order 创建页面时,会生成以下结构:
MyApp/
└── src/
└── WebApps/
└── MySite/
└── Services/
└── Pages/
└── Orders/
└── Registration/
├── Order.razor
├── Order.razor.cs
└── Components/
├── Form/
│ ├── OrderForm.razor
│ ├── OrderForm.razor.cs
│ ├── OrderFormExtensions.cs
│ └── OrderFormViewModel.cs
└── Grid/
├── OrderGrid.razor
├── OrderGrid.razor.cs
├── OrderGridExtensions.cs
└── OrderPagedQueryParams.cs
此外,还会创建集成服务以消费 OrdersEndpoints 的端点,保证端到端通信:
前端 → API → Commands/Queries → 数据库
通过这种方式,Lino 提供完整的全栈开发流程,大幅减少创建新功能所需的时间。
