第2章大话 ASP.NET Core 入门

1.什么是ASP.NET Core框架

ASP.NET Core是一个超级棒的框架,它是免费的,你可以在任何主流的系统上,比如Windows、Linux或macOS上使用它,而且它是完全开放源代码的,意味着你可以看到并修改它的内部代码。这个框架是专门用来帮助开发者创建现代、高效的网站、网络应用还有API服务的。它特别擅长利用.NET平台和C#语言的强大能力来做到这点。

有了ASP.NET Core,你可以非常灵活地选择把应用放到云上,或者放在自己的电脑上。这样一来,你就可以利用云服务的优势,比如可以根据需要自动调整资源大小,让你的应用更加强大和灵活。但是,如果你喜欢自己掌控一切,也可以直接在自己的电脑上管理应用。

更重要的是,ASP.NET Core可以在很多不同的操作系统上工作得很好,这给了开发者更多的选择,让他们可以在最适合自己的环境中进行开发。总的来说,ASP.NET Core是一个既强大又灵活的工具,让开发者可以更容易地创建出色的Web应用和API服务。

2.ASP.NET Core 框架 可以构建的应用程序

你可以使用ASP.NET Core框架来打造一系列超级强大的应用程序,就像是搭建一个完整的生态系统一样。这个生态系统里包括了各种类型的应用,比如直接在服务器上显示内容的Web应用,还有负责处理复杂业务逻辑的后端系统。而且,它还能轻松地为手机应用提供可以直接调用的HTTP API接口,让手机应用也能和服务器顺畅交流。更厉害的是,它还能用在物联网(IoT)上,解决各种设备联网的问题。

现在,人工智能技术越来越火,ASP.NET Core在这方面也是大显身手。特别是处理数据和部署机器学习模型的时候,它可是个不可或缺的好帮手。你可以把ASP.NET Core和.NET的机器学习库,比如ML.NET,放在一起用。这样一来,你就能直接在Web应用里面运行机器学习模型了,模型可以帮你智能地预测和分析用户输入的数据。这样,你的Web应用就会变得更聪明,能为用户提供更加个性化和精准的服务体验。

那么,ASP.NET Core到底能支持哪些常用的应用程序类型呢?我来给你列举几个:

最小化APIs: 这种API超轻量,专为移动应用或单页应用(SPA)设计,让它们调用起来特别方便。

Web APIs: 如果你想要一个功能更全面、结构更丰富的HTTP API服务,那么Web APIs就是你的首选。

gRPC APIs: 当服务器之间需要高效沟通时,gRPC APIs就派上用场了。它使用gRPC协议,能让API通信变得更快、更高效。

Razor Pages: 如果你喜欢页面导向的开发方式,Razor Pages就是为你准备的。它简化了页面开发流程,让你更容易构建服务器端渲染的应用。

MVC Controllers: 对于复杂的服务器端应用逻辑,MVC Controllers是个不错的选择。它采用Model-View-Controller架构,让你的应用逻辑更清晰,而且不限于页面渲染哦。

Blazor WebAssembly: 想象一下,如果你能在浏览器里直接运行.NET代码,那该有多酷!Blazor WebAssembly就做到了这一点。它利用WebAssembly技术,让你的单页应用性能超群,用起来感觉就像是用JavaScript框架(比如Angular、React、Vue)一样流畅。

Blazor Server: 如果你想要单页应用的体验,但又不想放弃服务器端渲染的便利性和性能优势,那么Blazor Server就是你的救星。它通过WebSocket实现UI交互和页面更新,让你享受两全其美的开发体验。

这些应用程序构建模式均建立在于ASP.NET Core的核心组件体系之中,包括配置管理和日志记录等基础设施。每种模式在保留这些共通特性的基础上,进一步扩展了针对特定场景的功能集。

在选择最适合的应用程序架构范式时,开发者需要综合评估API的特定需求、与现有应用系统的集成度、客户端的运行环境、系统的可扩展性需求以及稳定性要求等多个方面。ASP.NET Core凭借其高度的灵活性,不仅支持单独采用任一范式进行开发,还鼓励在同一应用程序内灵活地结合多种范式,以更好地应对复杂多变的业务需求。

3.为什么选择ASP.NET Core 框架

在挑选ASP.NET Core框架时,咱们得好好琢磨它的好处。其实,它跟其他牛气的平台、框架有很多相似的好东西,比如能在各种操作系统上跑(跨平台兼容性),跑得快还能轻松变大变强(性能与可扩展性),开发起来感觉很现代(现代化开发体验),还有自带的防护罩保护数据安全(内置安全机制),想放哪儿就放哪儿(灵活部署策略),还有一大群人帮你解决问题(强大社区支持与生态系统)。

但说来说去,这些好处虽然都很棒,却不是让我决定用ASP.NET Core的最主要原因。真正打动我的,是它特别照顾我们这些单打独斗的开发者。这个框架学起来特别容易,就像走下坡路一样顺畅(平滑的学习曲线),新手也能很快搞懂怎么玩,然后就开始做自己的项目了。

而且,它用的C#语言也特别给力,说话清楚(语法清晰)、想法多(表达力强),还有超级多的学习材料,从书到视频教程应有尽有,想学啥都有。这样一来,我们这些独立开发者就能更快地把想法变成真实的应用,而且质量还杠杠的!

4.ASP.NET Core 应用程序实现了HTTP请求的接收与响应

ASP.NET Core框架在创建网站和应用程序时超级重要,它的主要任务是帮助打造那些运行快、能轻松变大的Web应用,这些应用能顺畅地把数据从服务器送到我们的电脑或手机上。对于专门搞Web开发的人来说,设计那种在浏览器里既好看又好用的网站,既是挑战也是机会。

想象一下,当你在浏览器里输入网址或URL时,你其实是在打开一扇通往新世界的大门。这个URL就像是网络上的地图,告诉你想要访问的网站是哪一个,还有网站里的哪个部分。它用HTTP这个强大的沟通工具,把你的电脑或手机和放网站的服务器连起来,这样你就能看到网站上的内容了。

再来说说网站的名字,也就是主机名,它是网站在网络上的身份证。通过一个叫DNS的东西,这个主机名能变成一个特别的数字地址(IP地址),这样全世界的电脑都能找到它。就像你知道微软的网站叫microsoft.com,百度的是baidu.com,这些都是DNS帮忙的。有了这些,我们才能轻松地在网上找到我们想看的东西,享受互联网带来的便利。

好啦,咱们来聊聊HTTP这个神奇的东西吧!有些小伙伴可能还不太清楚HTTP是啥,别急,我这就简单说说。

HTTP,全名是超文本传输协议,它是让网页能在网上跑起来的“交通规则”。你可以把它想象成快递员送快递的过程:客户端(比如你的电脑或手机)就是寄快递的人,它给服务器(那个放着网站的大仓库)发个请求,说:“嘿,我要这个东西!”然后服务器就按照请求找东西,再打包好送回来,这就是响应啦。

每次请求都会有个“动词”和“路径”,动词就像是“给我”、“告诉我”这样的指令,路径就是告诉服务器你要找的东西在哪里。请求里还会带上一些“头信息”,就像是快递单上的备注,告诉服务器一些额外的信息。有时候,请求里还会有个“主体部分”,就像是你寄给朋友的礼物。

服务器收到请求后,会回一个响应给你。响应里有个“状态码”,就像是快递公司的回执单,告诉你请求是成功了还是出啥问题了。响应里也可能有“头信息”和“主体部分”,头信息还是那些备注,主体部分就是你要的东西啦!

信息在互联网上开始它的旅行,就像寄出的一封信,可能要经过好多好多的地方,翻山越岭,漂洋过海,最后才到达那个有特定名字的服务器家里。在那里,有一个Web应用程序正等着处理这封信呢。

在这段旅途中,信息会在很多叫做“路由器”的地方停下来,被看一看,然后再被送到下一个地方去。但真正的处理,要等到它到了那个指定的服务器家里才开始。

当信息终于到达服务器时,服务器就像是个魔术师,会根据这封信的内容,变出一个叫做HTTP响应的东西来回复。这个响应可以是个漂亮的网页,可以是个清晰的图片,可以是个让网页动起来的JavaScript小魔法,也可以是个简单的“收到啦”的消息,或者是其他任何你想要的东西。

想象一下,你点击了网页上的一个链接,就像是在告诉服务器:“嘿,给我看点东西!”然后服务器就会用HTML文档作为礼物,包装成HTTP响应,通过互联网这条快速通道,送到你的浏览器上。

浏览器收到这个礼物后,就开始表演了。它不只是把HTML代码显示出来那么简单,而是会按照HTML里的指示,一点点地搭建出一个完整的网页来。如果HTML里提到了服务器上的其他小东西,比如图片、CSS来装饰页面,或者JavaScript来让页面更有趣,浏览器就会再去跟服务器说:“我还要这些!”然后一一地把它们也拿过来。

不管是HTML、图片、CSS还是JavaScript,它们都是通过同样的HTTP请求和响应的方式来传递的。在互联网这个大舞台上,这样的表演每时每刻都在发生,是网页能够呈现给我们看的基础。

简单的网页可能只需要几次请求就能搞定,但那些复杂的现代网页,背后可能藏着成百上千次的请求和响应呢!

现在,你对这个过程有了个大概的了解了吧?接下来,我们就来看看ASP.NET Core这个神奇的魔术师,是怎么在服务器端灵活地变出那些精彩的HTTP响应的。

5.ASP.NET Core 处理请求

在ASP.NET Core的世界里,建网站就像是在演戏,不过这次演员是浏览器和服务器,他们用的剧本还是老一套的HTTP对话。ASP.NET Core就像是那个超级厉害的魔术师,负责后台的所有工作,从检查请求是不是合理,到管理登录信息,再到创造漂亮的网页,它都能搞定。

想象一下,你在浏览器上轻轻一点,就像是发了个邀请函给ASP.NET Core。然后,这个邀请函就通过网络跑到了ASP.NET Core的地盘。每个网站都有一个叫Kestrel的小助手,它是默认的服务器大师,悄悄地把邀请函接过来,然后转换成一种内部的语言——HttpContext,这样网站就知道你想干嘛了。

有了这个HttpContext,网站就能知道你的需求,然后给你回应。可能是给你一个漂亮的网页,也可能是告诉你“你不能进这个地方”,或者帮你发个邮件。所有的这些回应,都是网站通过对HttpContext里的信息琢磨后,用它的智慧和技巧做出来的。

等网站准备好回应后,Kestrel又会出来,它把这些回应——其实就是一堆数字和字母的组合——重新打包成HTTP的样子,然后通过网络送回到你的浏览器上。

对你来说,这个过程就像看了一场戏,只看到HTTP请求和响应在屏幕上跳来跳去,但不知道后台有多少人在忙活着。其实,真正的变化都发生在你看不到的地方,那就是你的ASP.NET Core网站里,那里是技术和创意的大本营。

现在你已经知道了请求和响应是怎么在ASP.NET Core里跑来跑去的,接下来,我们要一起揭开这些响应是怎么被做出来的秘密。这本教程会带你走进ASP.NET Core的内部,看看它是怎么工作的,每个部分是怎么合作的,还有它们是怎么在眨眼间就做出那么精彩的回应的。这将是一次充满惊喜和学习的旅程,每一章都会让你对ASP.NET Core有更多的了解。

6.前后端分离

Blazor帮你轻松搞定前后端分离!在这个教程里,我会特别加入Blazor的部分,让你的项目也能享受前后端分离的好处。现在,咱们先来简单聊聊Blazor是个啥好东西:

想象一下,如果你是一个喜欢C#的开发者,但现在大家都用JavaScript来做网页前端,你是不是觉得有点头疼?毕竟,要重新学一门新语言,还得花时间实践,挺不容易的。虽然JavaScript也挺酷,和C#有些地方还挺像,但真想把它用得像C#那么溜,还是得下大功夫。

这时候,Blazor就像是个救星一样出现了!它让你能直接用C#来写网页的客户端部分,再也不用为学新语言发愁了。Blazor有两种玩法:Blazor Server和Blazor WebAssembly。

Blazor Server就像是有个中间人,它一直跟你的ASP.NET Core服务器保持着联系,你的C#代码其实都是在服务器上跑的。这样一来,虽然代码不在浏览器里直接跑,但对你来说,写起来就跟写C#后端一样轻松。

而Blazor WebAssembly就更厉害了,它能让你的C#代码直接在浏览器里跑起来,真正实现了客户端的渲染。这样一来,你的网页就能更快地响应用户的操作,体验更棒了。

当然啦,这两个版本的Blazor也不是万能的,它们有各自的适用场景。但不管怎么说,Blazor都为ASP.NET Core的未来发展打开了一扇新的大门,让C#开发者在前端领域也能大展拳脚!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/782014.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python 比webdriver更好用的ChromiumPage

优点(目前发现的): 不用配合selenium不用下载对应浏览器的webdriver,不用对应浏览器版本不用设置webdriver路径之类的设置目前没看到有出现像webdriver类似的浏览器被控制的提示,使用过程中好像也没被检测出来。每次不…

unity3d:Shader知识点,矩阵,函数,坐标转换,Tags,半透明,阴影,深度,亮度,优化

基本结构 Shader "MyShaderName" {Properties {// 属性}SubShader {// 针对显卡A的SubShaderPass {// 设置渲染状态和标签Tags { "LightMode""ForwardBase" }// 开始Cg代码片段CGPROGRAM// 该代码片段的编译指令,例如:#p…

【vite创建项目】

搭建vue3tsvitepinia框架 一、安装vite并创建项目1、用vite构建项目2、配置vite3、找不到模块 “path“ 或其相对应的类型声明。 二、安装element-plus1、安装element-plus2、引入框架 三、安装sass sass-loader1、安装sass 四、安装vue-router-next 路由1、安装vue-router42搭…

python基础篇(8):异常处理

在Python编程中,异常是程序运行时发生的错误,它会中断程序的正常执行流程。异常处理机制使得程序能够捕获这些错误,并进行适当的处理,从而避免程序崩溃。 1 错误类型 代码的错误一般会有语法错误和异常错误两种,语法错…

CTF常用sql注入(一)联合注入和宽字节

0x01 前言 给自己总结一下sql注入的常用姿势吧,记录一下学习 0x02 联合 联合注入的关键词是union SQL的union联合注入原理是联合两个表进行注入攻击,使用union select关键词来进行联合查询。 那么为什么我们在题目中一般是只写一个呢 因为 $sql &quo…

逆变器学习笔记(三)

DCDC电源芯片外围器件选型_dcdc的comp补偿-CSDN博客、 1.芯片的COMP引脚通常用于补偿网络: 芯片的COMP引脚通常用于补偿网络,在控制环路中发挥重要作用。COMP引脚接电容和电阻串联接地,主要是为了稳定控制环路、调整环路响应速度和滤波噪声…

cs231n作业1——SVM

参考文章:cs231n assignment1——SVM SVM 训练阶段,我们的目的是为了得到合适的 𝑊 和 𝑏 ,为实现这一目的,我们需要引进损失函数,然后再通过梯度下降来训练模型。 def svm_loss_naive(W, …

NAT 打洞

由于 ipv4 地址数量的有限性,导致实际网络部署模式中存在大量的 NAT 网络。对于 NAT 内部的主机,可以主动发起去公网的流量,但对于位于不同 NAT 内的两台主机而言,想要直接进行点对点的连接,就需要用到打洞技术了。 常…

Bash ——shell

Bash作为用户与操作系统之间的接口,让用户通过命令行输入各种指令来控制和操作计算机系统。 shell的两种解释: 1.linux命令解释器 Terminal 终端 ——》shell命令 ——》 Linux kernel (内核) Linux内核的作用: 1.…

AI与编程:一个学生的心路历程与思考

前言 大家好,本人是在一个在校的大学生,方向是前端语言。爱好是码代码和看一点小新闻,游戏也是喜爱的。其实本篇文章的想法是源于网上一些人对AI以及对前端的看法,看完网上的评论后我也是有感而发。本篇文章的讨论中心也是围绕着A…

IDA*——AcWing 180. 排书

IDA* 定义 IDA*(Iterative Deepening A*)是一种结合了深度优先搜索(DFS)的递归深度限制特性和A搜索的启发式估价函数的搜索算法。它主要用于解决启发式搜索问题,尤其是当搜索空间很大或者搜索成本不确定时。 IDA* 是…

SprongBoot及其基础应用全套部署脚本和配置

POM.xml配置 </dependencies> <!--skywalking日志监控依赖--><dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version>8.5.0</version></dependency&g…

轻松驾驭开发之旅:Maven配置阿里云CodeUp远程私有仓库全攻略

文章目录 引言一、为什么选择阿里云CodeUp作为远程私有仓库&#xff1f;二、Maven配置阿里云CodeUp远程私有仓库的步骤准备工作配置Maven的settings.xml文件配置项目的pom.xml文件验证配置是否成功 三、使用阿里云CodeUp远程私有仓库的注意事项 引言 在软件开发的世界里&#…

软件工程(上)

目录 软件过程模型&#xff08;软件开发模型&#xff09; 瀑布模型 原型模型 V模型 构件组装模型 螺旋模型&#xff08;原型瀑布&#xff09; 基于构件的软件工程&#xff08;CBSE&#xff09; 快速应用开发模型&#xff08;RAD&#xff09; 统一过程&#xff08;UP&a…

Http Json参数到x-www-form-urlencoded参数的在线转换工具

Json参数到x-www-form-urlencoded参数的在线转换工具

C语言 printf 函数多种输出格式以及占位输出

一、输出格式 在C语言中&#xff0c;printf 函数提供了多种输出格式&#xff0c;用于控制不同类型数据的输出方式。 1.整数输出格式 %d&#xff1a;以十进制形式输出整数。 %o&#xff1a;以八进制形式输出整数&#xff08;无前导0&#xff09;。 %x 或 %X&#xff1a;以十六进…

CMD命令详细介绍 | 超详细版本!

文章目录 启动cmd命令用户启动使用管理员的账号启动 文件夹命令网络命令其他常用命令介绍常用快捷方式程序员相关命令 本文参考了博客园一篇帖子&#xff0c;ULR&#xff1a;cmd常用命令介绍(可收藏) - Mrwhite86 - 博客园 (cnblogs.com) CMD是Windows操作系统自带的命令行解释…

嵌入式C语言面试相关知识——内存管理(不定期更新)

嵌入式C语言面试相关知识——内存管理&#xff08;不定期更新&#xff09; 一、博客声明二、自问题目1、嵌入式系统的内存布局是怎么样的&#xff1f;2、动态内存分配在嵌入式系统中的使用有什么注意事项&#xff1f;3、什么是内存碎片&#xff0c;如何减少内存碎片&#xff1f…

恢复出厂设置后如何从 iPhone 恢复数据

在 iPhone 恢复出厂设置后&#xff0c;所有数据都会被删除&#xff0c;并且 iPhone 将恢复到原始出厂设置&#xff0c;这意味着您的所有 iPhone 数据&#xff0c;包括照片、视频、联系人和应用程序都将消失。 幸运的是&#xff0c;如果您有备份可以恢复&#xff0c;这并不一定…

Edge浏览器油猴插件的安装与使用

油猴 (又称篡改猴或Tampermonkey) 是最流行的浏览器扩展之一。它允许用户自定义并增强网页的功能。用户脚本是小型 JavaScript 程序&#xff0c;可用于向网页添加新功能或修改现有功能。使用油猴&#xff0c;您可以轻松在任何网站上创建、管理和运行这些用户脚本。 1.插件的安…