选择 ASP.NET Core Web UI

ASP.NET Core 是一个完整的 UI 框架。 你可以选择要结合哪些功能,以满足应用的 Web UI 需求。

文章目录



一、ASP.NET Core Blazor

Blazor 是一个全栈 Web UI 框架,建议用于大多数 Web UI 方案。

使用 Blazor 的好处:

  • 可重用的组件模型。
  • 高效的基于差异的组件呈现。
  • 通过 WebAssembly 从服务器或客户端灵活地呈现组件。
  • 使用 C# 生成丰富的交互式 Web UI 组件。
  • 从服务器静态呈现组件。
  • 逐步增强服务器呈现组件,以实现更流畅的导航和表单处理并启用流式呈现。
  • 共享客户端和服务器上通用逻辑的代码。
  • 与 JavaScript 互操作。
  • 将组件与现有的 MVC、 Razor 页面或基于 JavaScript 的应用集成。

二、ASP.NET Core Razor Pages

Razor 页面是一个基于页面的模型,用于生成服务器呈现的 Web UI。 Razor 页面 UI 在服务器上动态呈现,以生成页面的 HTML 和 CSS 来响应浏览器请求。 页面在到达客户端时已准备好显示。 对 Razor Pages 的支持是建立在 ASP.NET Core MVC 基础之上的。

Razor 页面的优势:

  • 快速构建和更新 UI。 页面的代码与页面一起保存,同时保持 UI 和业务逻辑关注点相互分离。
  • 可进行测试并缩放到大型应用。
  • 组织 ASP.NET Core 页面,使用起来比 ASP.NET MVC 更简单:
    视图的具体逻辑和视图模型可以一起保存在它们自己的命名空间和目录中。
    相关页面的组可以保存在各自的命名空间和目录中。

三、ASP.NET Core MVC

ASP.NET Core MVC 在服务器上呈现 UI,并使用模型-视图-控制器 (MVC) 结构模式。 MVC 模式将应用分成三组主要组件:模型、视图和控制器。 用户请求被路由到控制器。 控制器负责使用模型来执行用户操作或检索查询结果。 控制器选择要显示给用户的视图,并为其提供所需的任何模型数据。

ASP.NET Core MVC 的优势:

  • 基于可缩放且成熟的模型生成大型 Web 应用。
  • 明确分离关注点以获得最大的灵活性。
  • 模型-视图-控制器的责任分离,确保了业务模型的发展,而不会与底层的实现细节紧密相连。

四、采用前端JavaScript框架的ASP.NET Core单页应用程序(SPA)

使用热门的 JavaScript 框架(如 Angular、React 和 Vue)生成适用于 ASP.NET Core 应用的客户端逻辑。 ASP.NET Core 为 Angular、React 和 Vue 提供了项目模板,也可以用于其他 JavaScript 框架。

在前面列出的客户端呈现的优点基础上,将 ASP.NET Core SPA 与 JavaScript 框架结合使用也有一些优点:

  • JavaScript 运行时环境已随浏览器提供。
  • 大型社区和成熟的生态系统。
  • 使用热门的 JS 框架(如 Angular、React 和 Vue)构建适用于 ASP.NET Core 应用的客户端逻辑。

缺点:

  • 需要更多编码语言、框架和工具。
  • 难以共享代码,因此一些逻辑可能会重复。

组合多个 Web UI 解决方案:ASP.NET Core MVC 或 Razor Pages 和 Blazor

MVC、Razor Pages 和 Blazor 都是 ASP.NET Core 框架的一部分,设计为可以结合使用。 Razor 组件可以集成到 Razor Pages 和 MVC 应用。 呈现视图或页面时,可以同时预呈现组件。

在 MVC 或 Razor Pages 的优点基础上,MVC 或 Razor Pages 与 Blazor 结合使用的优点如下:

  • 预呈现会在服务器上执行 Razor 组件,并将其呈现到视图或页面中,从而提高应用的感知加载时间。
  • 使用组件标记帮助程序将交互性添加到现有视图或页面。

相关推荐
L耀早睡3 分钟前
mapreduce打包运行
大数据·前端·spark·mapreduce
HouGISer16 分钟前
副业小程序YUERGS,从开发到变现
前端·小程序
outstanding木槿22 分钟前
react中安装依赖时的问题 【集合】
前端·javascript·react.js·node.js
霸王蟹1 小时前
React中useState中更新是同步的还是异步的?
前端·javascript·笔记·学习·react.js·前端框架
霸王蟹1 小时前
React Hooks 必须在组件最顶层调用的原因解析
前端·javascript·笔记·学习·react.js
专注VB编程开发20年1 小时前
asp.net IHttpHandler 对分块传输编码的支持,IIs web服务器后端技术
服务器·前端·asp.net
爱分享的程序员2 小时前
全栈项目搭建指南:Nuxt.js + Node.js + MongoDB
前端
夜松云2 小时前
Qt信号槽机制与UI设计完全指南:从基础原理到实战应用
开发语言·qt·ui·qt designer·布局管理·参数传递·qt信号槽
隐含3 小时前
webpack打包,把png,jpg等文件按照在src目录结构下的存储方式打包出来。解决同一命名的图片资源在打包之后,重复命名的图片就剩下一个图片了。
前端·webpack·node.js
lightYouUp3 小时前
windows系统中下载好node无法使用npm
前端·npm·node.js