Asp.net Core系列学习(1)
Asp.net Core 6系列学习
文章目录
- Asp.net Core 6系列学习
- Asp.net Core 概述
- 一、在 ASP.NET 4.x 和 ASP.NET Core 之间进行选择
- 二、适用于服务器应用的 .NET 与 .NET Framework
- 三、ASP.NET Core Web UI
- 1.服务器和客户端呈现 UI 的优势和成本
- 2.服务器呈现的 UI
- 四、可用的 ASP.NET Core Web UI 服务器呈现的模型
- 1.ASP.NET Core Razor Pages
- 2.ASP.NET Core MVC
- 3.Blazor Server
- 4.Blazor WebAssembly
- 5.使用 JavaScript 框架(例如 Angular 和 React)的 ASP.NET Core 单页应用程序 (SPA)
- 总结
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 应用。 呈现视图或页面时,可以同时预呈现组件。
相关文章:
Asp.net Core系列学习(1)
Asp.net Core 6系列学习 文章目录 Asp.net Core 6系列学习Asp.net Core 概述一、在 ASP.NET 4.x 和 ASP.NET Core 之间进行选择二、适用于服务器应用的 .NET 与 .NET Framework三、ASP.NET Core Web UI1.服务器和客户端呈现 UI 的优势和成本2.服务器呈现的 UI 四、可用的 ASP.N…...

IDEA 2022.2 安装以及自定义优化
IDEA2022.2 安装以及自定义优化 文章目录 IDEA2022.2 安装以及自定义优化安装图解获取激活码自定义优化文件编码设置设置类文档注释和方式注释模板方法分割线 常用插件离线安装 安装图解 静默卸载(旧版本的设置和配置将不会被删除) 获取激活码 略…...
【华为OD机试真题2023B卷 JAVA】阿里巴巴找黄金宝箱(II)
华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 阿里巴巴找黄金宝箱(II) 知识点数组哈希表优先级队列 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 一贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0~N的箱子,每个箱子上…...

Python对Excel文件多表对多表之间的匹配(两种不同表头)——之json版
首先Excel文件多表对多表之间的匹配(VLOOKUP),有多种办法, 1:将Excel文件导入Mysql或其他数据库,然后将两种表合并成一张表,接着用数据库匹配 2:将两种表内容,复制粘贴到一起,各自分别保存成一张表…...

shiro环境搭建
源码部署 这种方法相对复杂,如果不需要分析源码直接用docker就行 前置条件:Maven Ideal Tomcat 下载方式1:https://codeload.github.com/apache/shiro/zip/shiro-root-1.2.4,然后将文件夹导入ideal下载方式2:将shiro…...

一文读懂selenium自动化测试(基于Python)
前言 我们今天来聊聊selenium自动化测试,我们都知道selenium是一款web自动化测试的工具,它应该如何去运用呢?我们接着看下去。 1、Selenium简介: 1.1 Selenium: Selenium是一款主要用于Web应用程序自动化测试的工具集合。Sele…...

如何高效地在网上找开源项目
开源项目是发展技能、分享想法和成为开发社区一员的好方法。开源意味着软件功能背后的源代码与所有想要阅读它的人公开共享。这意味着你可以准确地看到一个系统是如何工作的——一旦你愿意冒险,就为它做出贡献。除了向所有人开放贡献外,这种开放代码库通…...
2023系统分析师---冲刺资料必备知识点三
视图的优点: 视图能简化用户的操作;视图机制可以使用户以不同的方式查询同一数据;视图对数据库重构提供了一定程度的逻辑独立性;视图可以对机密的数据提供安全保护; ER图、实体、联系、联系的类型: 分布…...
集成Bean Validation 1.1(JSR-349)到 SpringMVC
Spring4新特性——集成Bean Validation 1.1(JSR-349)到 SpringMVC Bean Validation 1.1当前实现是Hibernate validator 5,且spring4才支持。接下来我们从以下几个方法 讲解Bean Validation 1.1,当然不一定是新特性: 1. 集成Bean Valida…...

【软考中级】软件设计师选择题题集(一)
海明校验码是在n个数据位之外增设k个校验位,从而形成一个k+n位的新的码字, 使新的码字的码距比较均匀地拉大。n与k的关系是(1)。 (1)A.2k - 1≥n + k B.2n - 1≤ n + k C.n = k D.n-1≤k 【答案】A 【解析】 【答案】B A 【解析】 在采用结构化方法进行系统分析时,…...
10个炫酷特效的网页写法(附源码),拿去就能用,奈斯奈斯
这是我借鉴其他博主的,给网页加个背景,给鼠标加个特效,“使用简单”,“效果爆炸”的页面,分享给大家,如果觉得有帮助可以点赞收藏支持一下,如果能关注一下就再好不过了。 内容转载于https://bl…...
vscode开发stm32的编译环境配置教程
文章目录 1. 背景2. 配置步骤2.1. vscode插件安装2.2. 新建工程2.3. 配置编译环境2.3.1. 芯片支持2.3.2. 编译器选择2.3.3. CPU类型2.3.4. 硬件浮点选项2.3.5. 使用自定义的链接脚本2.3.6. RAM/FLASH布局2.3.7. 构建器选项2.4. 编译3. 问题汇总3.1. 浮点编译开关3.2. MicroLIB编…...

Live800在线客服系统:客户体验即是业绩来源
“客户就是上帝”,这一论断在商业行为中早已成为不争的事实。 所有企业都知道,满足客户的需求才能让企业稳步发展。在产品同质化严重的今天,客户服务成为核心竞争力,试想一下,在产品、价格相差无几的两个企业中&#…...

SAP工具箱 MR22自定义BAPI
点击蓝字 关注我们 一 前言 标准事务代码MR22 通过调整金额影响物料的成本价,前台界面中单个凭证中允许输入多行物料, 但是对应的BAPI函数仅支持输入单行物料 BAPI_MATVAL_DEBIT_CREDIT 正常库存BAPI_SALESORDSTCK_DEBIT_CREDIT 销售订单库存 这种情况 婶可忍叔不可忍 (感谢用户…...
ASP.NET 网上选课系统的设计与实现(源代码+论文)
随着教育改革的不断深化,建立一套能够适应这些改变的行政管理方案也就显得尤为重要。在高等院校的日常工作中,每个学期都要面临学生的选课工作。以往在选课工作的各个阶段都是手工操作,不但效率低下、工作繁琐,而且容易出错,于是开发一套适合校情的网上选课系统便成为了教…...

SpringMVC学习总结(路由映射、参数传递、转发和重定向...)
目录 1. MVC简介 2. SpringMVC简介 3. 路由映射注解 3.1 RequestMapping 3.2 GetMapping与PostMapping 4. 接收前端传递参数 4.1 接收单/多个参数 4.2 接收对象 4.3 接收JSON对象 4.4 后端参数重命名/映射 4.5 设置参数必传/非必传 4.6 获取URL中的参数 4.7 获取文…...

基于MAC地址的ACL配置
基于MAC地址的ACL配置 【实验目的】 掌握基于MAC地址的标准ACL的配置。验证配置。 【实验拓扑】 实验拓扑如图1所示。 图1 实验拓扑 设备参数如表所示。 表1 设备参数表 设备 接口 IP地址 子网掩码 默认网关 S1 e0/0 N/A N/A N/A e0/1 N/A N/A N/A PC1 N/…...

软件设计师 计算机网络
名字带IP AP的都是网络层 所有带T的除了TFTP其他都是TCP,所有不带T的除了POP3其他都是UDP **物理层的互联设备有中继器和集线器,集线器是一种特殊的多路多端口中继器 网络层:路由器 物理层:中继器 数据链路层:网桥…...

Gradle ——Gradle安装与配置
目录 一、简介 二、功能和特点 三、安装 参考: Gradle_百度百科 Gradle 学习 ----Gradle 入门_你若不离不弃,我必生死相依的博客-CSDN博客 还有硬石科技的开源wifiAPP程序,没找到他们的码仓 一、简介 Gradle是一个基于Apache Ant和Apache Maven概念…...

网络安全这条路到底该怎么走?
我之前就写过一篇文章专门解答了这个问题。但是还是有很多小伙伴并不清楚这条路该怎么走下去! 不同于Java、C/C等后端开发岗位有非常明晰的学习路线,网路安全更多是靠自己摸索,要学的东西又杂又多,难成体系。 网络安全虽然是计算…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...