玩转ASP.NET 6.0框架-序言
ASP.NET Core是微软提供的强大的web框架,它有很多潜在的强大而有用的功能。
本专栏的目标是帮助您把框架的隐藏能力最大限度地发挥出来,让您能够按需定制ASP NET Core框架。本专栏提供了一种具体的操作和实现方法,可以让你在短时间尽可能地提高效率。
ASP.NET Core架构概览
接下来,我们将介绍ASP.NET Core的基础架构及其组件。这专栏讨论了架构的几乎所有组成部分。
下图显示了ASP.NET Core 6.0的基础架构,让我们从下往上快速浏览一下:

底部是Host层,它是引导web服务和启动ASP.NET Core所需的所有的东西,包括日志记录、配置和服务提供者(service provider),这些对象都是上层需要的依赖项。
Host层之上是中间件层。该层负责处理请求对象,比如错误处理、权限控制、HSTS、CORS等等。
此外,还有路由层,它根据定义的路由模式将请求路由到端点endpoints 。端点路由是NET Core的新层,它将路由与上面的UI层分离,以支持不同端点的路由,包括Blazor、gRPC和Signal。
提醒:在
ASP.NET Core的早期版本中,路由是MVC层的一部分,其他每个UI层都需要实现自己的路由。
实际端点由第四层UI层提供,该层包含著名的UI框架Blazor、gRPC、SignalR和MVC。作为ASP.NET Core开发人员,这里是你主要编码的地方。
最后,在MVC上面,您将看到WebAPI和Razor页面。
专栏涵盖的内容
本专栏并未涵盖架构概述中提到的所有主题。本书涵盖了Host层的大部分主题,因为Host层包含了您可能需要定制的大部分内容。本专栏讨论了中间件和路由,以及MVC特性和一些更多的WebAPI主题,在这些主题中你可以做一些魔性化定制。
在每篇的开头,我会提示主题的难度级别。
专栏未涵盖的内容
专栏不包括Razor Pages、Signal、gRPC和Blazor。
原因是gRPC和Signal已经非常专业化,不需要定制。Blazor是ASP.NET Core的新成员,虽然尚未广泛使用。此外,笔者本身对Blazor还不够熟悉,不知道定制Blazor的所有细节。Razor页面位于MVC框架之上,MVC的定制也适用于Razor页面。
专栏的阅读对象
本书面向使用ASP.NET Core的web开发人员,他们可能需要更改框架的默认行为才能完成任务。读者应具备ASP. NET Core的基本知识,因为本专栏没有介绍这些技术的基础知识。读者还应该对Visual Studio、Visual Studio Code或任何其他支持ASP.NET Core 和C#的代码编辑器有很好的了解。
专栏涵盖的章节
第1篇:“自定义日志记录”,介绍如何自定义日志记录行为以及如何添加自定义日志记录提供程序。
第2篇:自定义应用程序配置,帮助您了解如何使用不同的配置源和添加自定义配置提供程序。
第3篇:定制依赖注入,介绍依赖注入(DI)如何工作,以及如何使用不同的DI容器。
第4篇:用Kestrel配置和定制HTTPS,探讨如何以不同的方式配置HTTPS。
第5篇:配置WebHostBuilder,帮助您了解如何在托管层上设置配置。
第6篇:使用不同的托管模型,介绍在不同平台上使用不同类型的托管。
第7篇:使用IHostedService和BackgroundService,让您了解如何在后台执行任务。
第8篇:编写定制中间件,探讨使用中间件的HTTP上下文。
第9篇:“端点路由”,介绍如何使用新路由提供自定义端点。
第10篇:定制ASP.NET Core的Identity,介绍如何扩展应用程序的用户属性,并帮助您更改Identity UI。
第11篇:配置Identity(身份管理),帮助您管理用户及其角色。
第12篇:使用自定义OutputFormatter的Content Negotiation(内容协商),介绍如何基于HTTP Accept头输出不同的内容类型。
第13章,使用自定义ModelBinder管理输入,帮您创建具有不同内容类型的输入模型。
第14章,创建自定义ActionFilter,介绍如何使用ActionFilter的面向切面编程。
第15章,使用缓存,帮助您提高应用程序的性能。
第16章,创建自定义TagHelper,通过创建TagHelper简化您的UI层。
技术准备
读者应具备ASP.NET Core的基本知识,以及Visual Studio、Visual Studio Code或任何其他支持ASP.NET Core代码编辑器。

安装最新的NET 6.0 SDK。请在以下网址查找最新版本。
使用任何支持ASP NET Core的代码编辑器。我们建议使用Visual Studio Code(网址),因为它可在所有平台上使用。
专栏中的所有项目都将使用控制台、命令提示符、shell或PowerShell创建。不建议使用Visual Studio创建项目,因为基本配置可能会被更改。
除了NET 6.0,理论上也支持NET Core 3.1或NET 5.0,有些章节介绍了NET 6.0和5.0的些许差异。
最后
欢迎你加入我的知识星球,学习更新更全的.NET知识。
玩转ASP.NET 6.0框架-序言的更多相关文章
- ASP.NET 2.0服务器控件开发的基本概念(转载)
利用ASP.NET 2.0技术,创建Web自定义服务器控件并不是一件轻松的事情.因为,这需要开发人员了解并能够灵活应用多种Web开发技术,例如,CSS样式表.客户端 脚本语言..NET开发语言.服务器 ...
- VS2017创建一个 ASP.NET Core2.0 应用,并搭建 MVC 框架
https://testerhome.com/topics/11747 1.使用最新版本的VS2017,并安装.NET Core2.0中相关开发工具 2.打开VS2017,点击文件-新建-项目,选 ...
- IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API
IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习之保护API. 使用IdentityServer4 来实现使用客户端凭据保护ASP.N ...
- 7 天玩转 ASP.NET MVC — 第 1 天
0. 前言正如标题「7 天玩儿转 ASP.NET MVC」所言,这是个系列文章,所以将会向大家陆续推出 7 篇.设想一下,一天一篇,你将从一个愉快的周一开始阅读,然后在周末成为一个 ASP.NET M ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2 ...
- Asp.NET Core2.0 项目实战入门视频课程_完整版
END OR START? 看到这个标题,你开不开心,激不激动呢? 没错,.net core的入门课程已经完毕了.52ABP.School项目从11月19日,第一章视频的试录制,到今天完整版出炉,离不 ...
- Log4Net异常日志记录在asp.net mvc3.0的应用
前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual ...
- 新作《ASP.NET MVC 5框架揭秘》正式出版
ASP.NET MVC是一个建立在ASP.NET平台上基于MVC模式的Web开发框架,它提供了一种与Web Form完全不同的开发方式.ASP.NET Web Form借鉴了Windows Form基 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(24)-权限组的设计和实现(附源码)(终结)
ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2):数据库访问层的设计Demo (3):面向接口编程 (4 ):业务逻辑层的封装 ...
随机推荐
- 技能篇:linux服务性能问题排查及jvm调优思路
只要业务逻辑代码写正确,处理好业务状态在多线程的并发问题,很少会有调优方面的需求.最多就是在性能监控平台发现某些接口的调用耗时偏高,然后再发现某一SQL或第三方接口执行超时之类的.如果你是负责中间件或 ...
- 顺序、随机IO和Java多种读写文件性能对比
概述 对于磁盘的读写分为两种模式,顺序IO和随机IO. 随机IO存在一个寻址的过程,所以效率比较低.而顺序IO,相当于有一个物理索引,在读取的时候不需要寻找地址,效率很高. 基本流程 总体结构 我们编 ...
- sql语句中 left join,right join,inner join 的区别
看到了sql,发现好久没写sql甚是想念哈哈哈哈,好多当时学的东西都忘了,当时总结的好多的文档也怎么都找不到了..... 言归正传,找到了一张图感觉描述的还挺清晰,先贴图,再说说自己的理解. 1.LE ...
- mysql各个集群方案的优劣
集群的好处 高可用性:故障检测及迁移,多节点备份. 可伸缩性:新增数据库节点便利,方便扩容. 负载均衡:切换某服务访问某节点,分摊单个节点的数据库压力. 集群要考虑的风险 网络分裂:群集还可能由于网络 ...
- jboss修改内存
在修改配置文件,在 <JBOSS_HOME> /bin/stadalone.conf中 找到并修改 如图
- Wireshark-过滤器-数据包解析
目录 过滤器 数据包解析 参考 推荐阅读: https://www.cnblogs.com/zwtblog/tag/计算机网络/ 过滤器 显示过滤器 和 捕获过滤器,俩者使用非常类似. 在Wiresh ...
- 爬虫---scrapy全站爬取
全站爬取1 基于管道的持久化存储 数据解析(爬虫类) 将解析的数据封装到item类型的对象中(爬虫类) 将item提交给管道, yield item(爬虫类) 在管道类的process_item中接手 ...
- rpm方式安装mysql
一.系统标准化采样 1)查看centos系统版本 [root@fp-web-126 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 ...
- 缓存中间件-Redis(一)
1.Redis介绍 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的 key-value 存储系统,是跨平台的非关系型数据库,Red ...
- 在网站copy时自带的版权小尾巴以及“复制代码“,可以怎么实现
前言 每天网上的博客各个领域都会涌现新文章,有时候看到感兴趣的知识就想把某段文字 copy下来 摘录下来,等有时间后慢慢品味 在部分网站上,如果只是复制少量文字,并没有什么不同.但是当我们复制的文字多 ...