Asp.net Core系列学习(1)

这篇具有很好参考价值的文章主要介绍了Asp.net Core系列学习(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Asp.net Core 6系列学习



Asp.net Core 概述

ASP.NET Core 是一个跨平台的高性能开源框架,用于生成启用云且连接 Internet 的新式应用。
使用 ASP.NET Core,可以:

  • 生成 Web 应用和服务、物联网 (IoT) 应用和移动后端。
  • 在 Windows、macOS 和 Linux 上使用喜爱的开发工具。
  • 部署到云或本地。
  • 在 .NET Core 上运行。

ASP.NET Core 是对 ASP.NET 4.x 的重新设计,其中包括体系结构上的更改,产生了更精简、更模块化的框架。


一、在 ASP.NET 4.x 和 ASP.NET Core 之间进行选择

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。

ASP.NET 4.x 是一个成熟的框架,提供在 Windows 上生成基于服务器的企业级 Web 应用所需的服务。

ASP.NET Core ASP.NET 4.x
针对 Windows、macOS 或 Linux 进行生成 针对 Windows 进行生成
Razor Pages 是在 ASP.NET Core 2.x 及更高版本中创建 Web UI 时建议使用的方法。 另请参阅 MVC、Web API 和 SignalR。 使用 Web FormsSignalR、MVCWeb APIWebHooks 或网页
每个计算机多个版本 每个计算机一个版本
使用 C# 或 F# 通过 Visual Studio、Visual Studio for Mac 或 Visual Studio Code 进行开发 使用 C#、VB 或 F# 通过 Visual Studio 进行开发
比 ASP.NET 4.x 性能更高 良好的性能
使用 .NET Core 运行时 使用 .NET Framework 运行时

二、适用于服务器应用的 .NET 与 .NET Framework

有两种支持的 .NET 实现可用于生成服务器端应用。

实现 包含的版本
.NET .NET Core 1.0 - 3.1、.NET 5 及更高版本的 .NET。
.NET Framework .NET Framework 1.0 - 4.8

这两者共用许多相同的组件,你可在它们之间共享代码。 但两者之间存在根本的差异,可根据需要实现的目标进行选择。 本文介绍了在何种情况下进行选择。

在以下情况,对服务器应用程序使用 .NET:

  • 用户有跨平台需求。
  • 你正在以微服务为目标。
  • 你正在使用 Docker 容器。
  • 需要高性能和可扩展的系统。
  • 需按应用程序提供并行的 .NET 版本。

在以下情况,对服务器应用程序使用 .NET Framework :

  • 应用当前使用 .NET Framework(建议扩展而不是迁移)。
  • 应用使用不可用于 .NET 的第三方库或 NuGet 包。
  • 应用使用不可用于 .NET 的 .NET Framework 技术。
  • 应用使用不支持 .NET 的平台。

三、ASP.NET Core Web UI

1.服务器和客户端呈现 UI 的优势和成本

有三种常见的方法可以使用 ASP.NET Core 构建新式 Web UI:

  • 从服务器呈现 UI 的应用。
  • 在浏览器的客户端上呈现 UI 的应用。
  • 利用服务器和客户端 UI 呈现方法的混合应用。 例如,大多数 Web UI 呈现在服务器上,并会根据需要来添加客户端呈现的组件。

在服务器或客户端上呈现 UI 时,需要考虑其优点和缺点。

2.服务器呈现的 UI

优点:

  • 客户端的需求最少,因为是由服务器执行逻辑和页面生成工作:
    • 非常适用于低端设备低带宽连接
    • 允许在客户端上使用各种浏览器版本
    • 快速加载初始页面
    • 尽可能少地使用或不使用 JavaScript 拉到客户端
  • 灵活地访问受保护的服务器资源:
    • 数据库访问。
    • 访问机密,如对 Azure 存储的 API 调用值。
  • 静态站点分析优点,例如搜索引擎优化。

常见的服务器呈现的 Web UI 应用场景的示例:

  • 动态站点,例如提供个性化页面、数据和窗体的站点。
  • 显示只读数据,如事务列表。
  • 显示静态博客页面。
  • 面向公众的内容管理系统。

缺点:

  • 计算和内存使用的成本都集中在服务器上,而不是分摊到每个客户端。
  • 用户交互需要往返服务器才能生成 UI 更新

四、可用的 ASP.NET Core Web UI 服务器呈现的模型

Razor Pages 和 MVC 是基于服务器的框架,用于通过 .Net 生成 Web 应用。

1.ASP.NET Core Razor Pages

Razor Pages 是一个基于页面的模型。 UI 和业务逻辑关注点保持分离状态,但都在页面内。

Razor Pages 创建新的基于页面或基于窗体的应用

Razor Pages 入门比 ASP.NET Core MVC 要简单一些。

在服务器呈现的优点基础上,Razor Pages 的优点:

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

2.ASP.NET Core MVC

ASP.NET MVC 在服务器上呈现 UI,并使用模型-视图-控制器 (MVC) 结构模式。

MVC 模式将应用分成三组主要组件:模型、视图和控制器。

用户请求被路由到控制器。 控制器负责使用模型来执行用户操作或检索查询结果。 控制器选择要显示给用户的视图,并为其提供所需的任何模型数据。

对 Razor Pages 的支持是建立在 ASP.NET Core MVC 基础之上的。

在服务器呈现的优点基础上,MVC 也有它的优点:

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

3.Blazor Server

Blazor 是一个使用 Blazor 生成交互式客户端 Web UI 的框架:

  • 使用 C# 代替 JavaScript 来创建信息丰富的交互式 UI。
  • 共享使用 .NET 编写的服务器端和客户端应用逻辑。
  • 将 UI 呈现为 HTML 和 CSS,以支持众多浏览器,其中包括移动浏览器。
  • 与新式托管平台(如 Docker)集成。
  • 使用 .NET 和 Blazor 生成混合桌面和移动应用。

使用 .NET 进行客户端 Web 开发可提供以下优势:

  • 使用 C# 代替 JavaScript 来编写代码。
  • 利用现有的 .NET 库生态系统。
  • 在服务器和客户端之间共享应用逻辑。
  • 受益于 .NET 的性能、可靠性和安全性。
  • 使用开发环境(例如 Visual Studio 或 Visual Studio Code)保持 Windows、Linux 或 macOS 上的工作效率。
  • 以一组稳定、功能丰富且易用的通用语言、框架和工具为基础来进行生成。

Blazor Server 支持在 ASP.NET Core 应用中托管服务器呈现的 UI。 可通过 SignalR 连接处理客户端 UI 更新。 运行时保留在服务器上,并处理应用 C# 代码的执行。

4.Blazor WebAssembly

Blazor WebAssembly 是单页应用 (SPA) 框架,用于生成具有本文前面 Blazor Server 部分所述的一般特征的交互式客户端 Web 应用

通过 WebAssembly,可在 Web 浏览器内运行 .NET 代码。 WebAssembly 是针对快速下载和最大执行速度优化的压缩字节码格式。 WebAssembly 是开放的 Web 标准,支持用于无插件的 Web 浏览器。 Blazor WebAssembly 适用于所有新式 Web 浏览器,包括移动浏览器。

当 Blazor WebAssembly 应用生成并运行时:

  • C# 代码文件和 Razor 文件将被编译为 .NET 程序集。
  • 该程序集和 .NET 运行时将被下载到浏览器。
  • Blazor WebAssembly 启动 .NET 运行时,并配置运行时,以为应用加载程序集。 Blazor WebAssembly 运行时使用JavaScript 互操作处理文档对象模型 (DOM) 操作和浏览器 API 调用。

5.使用 JavaScript 框架(例如 Angular 和 React)的 ASP.NET Core 单页应用程序 (SPA)

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

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

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

缺点:

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

总结

MVC、Razor Pages 和 Blazor 都是 ASP.NET Core 框架的一部分,设计为可以结合使用。 Razor 组件可以通过托管的 Blazor WebAssembly 或 Blazor Server 解决方案集成到 Razor Pages 和 MVC 应用。 呈现视图或页面时,可以同时预呈现组件。文章来源地址https://www.toymoban.com/news/detail-462226.html

到了这里,关于Asp.net Core系列学习(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Asp .Net Core 系列: 集成 CORS跨域配置

    CORS,全称是“跨源资源共享”(Cross-Origin Resource Sharing),是一种Web应用程序的安全机制,用于控制不同源的资源之间的交互。 在Web应用程序中,CORS定义了一种机制,通过该机制,浏览器能够限制哪些外部网页可以访问来自不同源的资源。源由协议、域名和端口组成。当一

    2024年01月24日
    浏览(89)
  • 你所不知道的ASP.NET Core进阶系列(三)

    一年多没更新博客,上一次写此系列还是四年前,虽迟但到,没有承诺,主打随性,所以不存在断更,催更,哈哈,上一篇我们细究从请求到绑定详细原理,本篇则是探讨模型绑定细节,当一个问题产生到最终解决时,回过头我们整体分析其产生背景以及设计思路才能有所获

    2024年02月05日
    浏览(93)
  • ASP.NET Core SignalR 系列(四)- 中心筛选器

    本章将和大家分享 ASP.NET Core SignalR 中的中心筛选器。 本文大部分内容摘自微软官网:https://learn.microsoft.com/zh-cn/aspnet/core/signalr/hub-filters?view=aspnetcore-7.0 废话不多说,下面我们直接进入本章主题。 中心筛选器: 在 ASP.NET Core 5.0 或更高版本中可用。 允许在客户端调用中心方法之

    2024年02月16日
    浏览(46)
  • ASP.NET Core SignalR 系列(三)- JavaScript 客户端

    本章将和大家分享 ASP.NET Core SignalR 中的 JavaScript 客户端。ASP.NET Core SignalR JavaScript 客户端库使开发人员能够调用服务器端SignalR中心代码。 本文大部分内容摘自微软官网:https://learn.microsoft.com/zh-cn/aspnet/core/signalr/javascript-client?view=aspnetcore-7.0tabs=visual-studio 废话不多说,下面我们

    2024年02月15日
    浏览(52)
  • ASP.NET Core学习路线图

    - [C#](https://www.pluralsight.com/paths/csharp) - [Entity Framework](https://www.pluralsight.com/search?q=entity%20framework%20core) - [ASP.NET Core](https://www.pluralsight.com/search?q=asp.net%20core) - SQL基础知识 - 学习GIT, 在GitHub中创建开源项目 - 掌握HTTP(S)协议, 及其请求方法(GET, POST, PUT, PATCH, DELETE, OPTIONS) - 不要害怕

    2024年02月14日
    浏览(50)
  • Asp .Net Core 系列:基于 Swashbuckle.AspNetCore 包 集成 Swagger

    Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。它提供了一种规范的方式来定义、构建和文档化 RESTful Web 服务,使客户端能够发现和理解各种服务的功能。Swagger 的目标是使部署管理和使用功能强大的 API 从未如此简单。 Swagger 提供了

    2024年01月18日
    浏览(51)
  • ASP.NET Core 3.1系列(13)——本地缓存MemoryCache的使用

    在实际开发过程中,缓存( Cache )是一项重要技术。有时候为了缓解数据库访问的压力,我们可以将一些需要经常读取但又几乎不会变化的数据存在缓存里,以此加快数据的访问速度。在 ASP.NET Core 中,缓存一般分为本地缓存和分布式缓存。相较于分布式缓存( Redis ),本地

    2024年02月05日
    浏览(52)
  • Asp .Net Core 系列: 集成 Consul 实现 服务注册与健康检查

    官网:https://www.consul.io/ Consul 是一款开源的服务发现和配置管理工具,它能够监控应用程序和服务之间的通信,并提供了一组 API 和 Web UI,用于管理服务和配置。 Consul 是分布式的、高可用的、可横向扩展的,具备以下特性: 服务发现:Consul 通过 DNS 或者 HTTP 接口使服务注册

    2024年01月21日
    浏览(47)
  • ASP.NET Core 3.1系列(15)——EFCore之DB First

    本文开始介绍一些关于 Entity Framework Core 的内容。在 EFCore 中,常用的为 DB First 模式和 Code First 模式,下面就来介绍一下如何在 EFCore 中使用 DB First 模式生成实体类和数据库上下文。 在 SQL Server 中新建一个数据库 Dao ,执行如下语句,创建 Country 和 Province 数据表。 运行结果如

    2024年02月15日
    浏览(51)
  • ASP.NET Core 3.1系列(4)——读写配置文件appsettings.json

    在大多数的应用程序中,一些参数需要写在配置文件里,以此增加系统的灵活性。在 ASP.NET 时代,配置参数一般会写在 web.config 文件中,其本质上是对 XML 文件的读取和写入。而在 ASP.NET Core 中,配置文件变成了 appsettings.json 文件。相较于 XML , JSON 文件更加轻量且灵活,下面

    2024年02月06日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包