第2章 大话 ASP.NET Core 入门

第1章 框架学习的基石与实战策略 链接

第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网站里,那里是技术和创意的大本营。

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#开发者在前端领域也能大展拳脚!

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

我写这个教程的初衷很简单,就是想让学习变得不再无聊,而是充满乐趣。在接下来的每一章里,我都会尝试用各种有趣的方式来解释知识点,让学习变得像探险一样。不过呢,这一章有点特别,它就像是学习之旅的开场白,让大家先热热身,放松心情,准备好接下来的精彩旅程!我保证“一本正经的胡说八道仅此一章!😊”

相关推荐

  1. 2 大话 ASP.NET Core 入门

    2024-07-11 11:46:03       24 阅读
  2. 2 团队

    2024-07-11 11:46:03       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 11:46:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 11:46:03       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 11:46:03       58 阅读
  4. Python语言-面向对象

    2024-07-11 11:46:03       69 阅读

热门阅读

  1. git github gitee 三者关系

    2024-07-11 11:46:03       21 阅读
  2. 学习小记-一些Redis小知识

    2024-07-11 11:46:03       23 阅读
  3. 【Spring】springSecurity简介

    2024-07-11 11:46:03       19 阅读
  4. Nginx配置支持WebSocket功能

    2024-07-11 11:46:03       25 阅读
  5. CleanCode、安全编码规范

    2024-07-11 11:46:03       25 阅读