当前位置:首页 > Web开发 > 正文

Web的运作流程和ASP.NET Core的运作布局

2024-03-31 Web开发

在第1期中,我们通过一个简单的过程构建了一个ASP.NET的初始项目,固然,实际上这个项目也是一个.NET Core的项目。因为在第2期中我们提到过,.NET Core的项目自己就基于.NET Framework根本之上扩展的。 构建一个项目的过程如下:

这里有图,请稍等半晌

graph LR install(安置dotnet) create(创建WebApp项目) edit(编纂代码) trust(信任开发证书) run(运行项目) install-->create create-->edit edit-->trust trust-->run

但是,这只是站在一种不透明的视角下对ASP.NET Core的宏不雅观开发过程进行的一次概览和简单测验考试,我们实际上并不清楚ASP.NET的内部结构和运作机理。

I Web的诸视角 I.1 用户视角

可以很卖力任的说,实际上Web在用户眼里就是这些对象:一个鼠标+一个键盘+一个浏览器

技术图片

是的,,用户只需要使用浏览器输入网址,只要运气够好的话(好比网络通信没有问题或者远端也没什么问题的话)用户稍等半晌就可以看到方针的页面。用户还可以在这个页面下搞些小行动,好比填个表单啥的。固然,如果不够走运的话用户还可能不才午茶的时间享受着甘旨的404错误以及一份做工精致的错误提示页。

这个视角就是所谓的不透明视角,因为只能看到外貌上的页面,后面干什么了我们并不清楚,对付用户而言,他们也不需要清楚,是吧?

I.2 浏览器视角

是的,很明显用户把所有工作都交给浏览器去做了,浏览器在面上供给给用户界面(我们称之为前端),用户操纵了一番,点了一个提交按钮。

为了让用户在本地上的这些自嗨行为具有网络上的意义,浏览器在应用层上要对用户的输入加以措置惩罚惩罚,用户孕育产生的信息就这样从应用层坐电梯一路下到网络层再下到数据链路层把被发送出去。

graph LR user(用户) browser(浏览器) network>网络] user--操纵/数据-->browser browser--请求报文-->network

如果说的再确切一些:

graph LR user(用户) pages[页面] script[浏览器脚本] network>网络] subgraph 浏览器 pages script script--浏览器响应/前端响应/控制-->pages pages--页面内容-->script end user--操纵/数据-->pages pages--请求报文-->network

I.3 处事器视角

历经若干转发、代办代理、可能还包罗的重定向等,从浏览器发出的请求信息终于到了处事端手里,处事端自然要开始措置惩罚惩罚数据并反馈用户所需要的数据,固然了这也就意味着处事端由两部分组成:

graph LR subgraph Server data(数据源) service("处事措施") end data--数据-->service

实际上用户在浏览器中访谒某个URL得到的页面的数据来源也是处事器(这部分数据称为响应(Response)),也就是说,Web应用实际上的措置惩罚惩罚流程是这样的:

graph RL user(用户) browser(浏览器) service(处事措施) data("数据<br>(文件、数据库、...)</span>") subgraph Client user browser end subgraph Server service data end user--访谒URL/操纵-->browser browser--URL请求数据-->service service--数据操纵-->data data--数据-->service service--响应包-->browser browser--衬着-->user

II ASP.NET Core的角色

上面是一个Web应用措施中各个单位的运作流程,那么在一个ASP.NET的WebApp中ASP.NET Core在此中位于一个什么样的位置呢?? 在前端,ASP.NET Core不再使用传统的控制器和视图(cshtml和Controller类)来暗示一个前端页面,取而代之的是使用Razor页面。Razor是ASP.NET使用的一种页面符号语言,Razor使得页面在能够正确的被解析为浏览器可识另外HTML数据的同时允许页面内嵌入C#或VB代码来控制界面的动态显示(类似于JSP或者PHP)。别的,在.NET Core 3.x中又引入了Blazor前端框架来替代JS共同Razor完成前真个交互控制。而用户将请求发送至处事端时,请求会颠末ASP.NET Core供给的请求措置惩罚惩罚管道上挂载的各中间件(Middleware)进行措置惩罚惩罚,措置惩罚惩罚的请求数据移交至处事并决定是否从后端获取数据。后端数据的获取是通过Entity Framework Core(EFCore)数据访谒框架与数据库之间进行交互实现的。

graph LR client(Client) server(Server) subgraph ASP.NET Core请求措置惩罚惩罚管道 mid1[Middleware1] mid2[Middleware2] midetc[...] end client --> mid1 mid1 --> mid2 mid2 --> midetc midetc --> server server --> midetc midetc--> mid2 mid2 --> mid1 mid1 --> client subgraph Client user(用户) browser(浏览器) subgraph ASP.NET Core Razor razorpage[Razor Pages] blazor[Blazor] end razorpage-->browser blazor-->browser browser-->user user-->browser browser-->blazor end subgraph Server service(处事) data(数据) subgraph ASP.NET Entity Framework Core efc(EFCore) end service-->efc efc-->data data-->efc efc-->service end

II.1 Razor??又中间件??还有EFCore??这都是什么跟什么啊??

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31256.html