
本书共14章,深入浅出地介绍了ASP.NET Core基础及项目开发方面的知识。主要内容有.NET Core基础知识、ASP.NET Core开发工具的使用、ASP.NET Core的原理和特性、Razor页面、MVC、Blazor、EF Core、Dapper、ASP.NET Core Web API、SignalR、gRPC、身份验证、NetNote系统等。除此之外,还从零开始讲解一个完整的ASP.NET Core Razor页面项目的开发、发布及部署,带领读者走进ASP.NET Core项目开发。使用ABP框架创建了一个图书管理项目,深入源码了解其原理和思想。最后详细介绍了ASP.NET Core的一些优秀开源项目,供读者在其他项目中借鉴和使用。
前言 ASP.NET Core是一个开源的跨平台框架,可用来构建如Web应用、物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序,为那些部署在云端或者内部运行的应用提供一个高效的开发框架。ASP.NET Core由最小开销的模块化组件构成,因此在构建解决方案的同时可以保持灵活性。我们可以在Windows、macOS 和Linux系统上跨平台地开发和运行自己的ASP.NET Core应用。 本书内容 本书共14章,深入浅出地介绍了ASP.NET Core基础及项目开发方面的知识。主要内容有.NET Core基础知识、ASP.NET Core开发工具的使用、ASP.NET Core的原理和特性、Razor页面、MVC、Blazor、EF Core、Dapper、ASP.NET Core Web API、SignalR、gRPC、身份验证、NetNote系统等。除此之外,还从零开始讲解一个完整的ASP.NET Core Razor页面项目的开发、发布及部署,带领读者走进ASP.NET Core项目开发。使用ABP框架创建了一个图书管理项目,深入源码了解其原理和思想。最后详细介绍了ASP.NET Core的一些优秀开源项目,供读者在其他项目中借鉴和使用。 适合的读者 1. NET开发人员; 2. Web开发人员; 3. 在校学生。 本书特色 版本新:针对ASP.NET Core 3.1 LTS版本。 搭配巧:采用“ASP.NET Core 知识点+典型实例”的形式编写,拥有完整的项目实例及系统部署。 上手快:先通过简单示例帮助读者理解 ASP.NET Core,再通过完整项目实例深入学习 ASP.NET Core。 技术全:讲解了ASP.NET Core的各个方面,如Razor页面、MVC、Blazor、SignalR、gRPC等,并且还包含EF Core、Dapper等ORM。同时还介绍了成熟的ABP框架,为项目开发提供良好的基础。最后还深入介绍了ASP.NET Core的优秀开源项目,供学习借鉴。 剖析深:对于各知识点,均通过实例和源码深入剖析原理。 由于笔者的能力和时间有限,书中难免有疏漏之处,恳请广大读者批评指正。
第1章 ASP.NET Core 1 1.1 为何使用ASP.NET Core 1 1.2 使用ASP.NET Core MVC生成Web API和Web UI 2 1.3 面向.NET Framework的ASP.NET Core 2 1.4 ASP.NET Core与ASP.NET 4.x的区别 3 1.5 ASP.NET Core的主要开源框架 3 第2章 .NET Core 5 2.1 .NET Core特性 5 2.2 .NET Core支持的跨平台 8 2.3 安装SDK 10 2.4 命令行 11 2.4.1 dotnet命令介绍 11 2.4.2 dotnet命令实战 12 第3章 .NET Standard 16 3.1 .NET Standard介绍 16 3.1.1 版本 17 3.1.2 规范 18 3.1.3 .NET Framework兼容性模式 19 3.1.4 .NET Standard库和Visual Studio 20 3.1.5 .NET Standard图解 20 3.2 .NET Standard 2.0 20 3.3 .NET Standard 2.1 22 第4章 ASP.NET Core项目入门 24 4.1 项目创建流程 24 4.2 开发工具 26 第5章 ASP.NET Core Web应用 29 5.1 基础知识 29 5.1.1 主机 29 5.1.2 主机提供的服务 31 5.1.3 主机配置 33 5.1.4 Startup 34 5.1.5 中间件 35 5.1.6 配置 36 5.1.7 依赖注入 40 5.1.8 环境 44 5.1.9 日志 45 5.1.10 错误处理 47 5.1.11 静态文件 48 5.2 Razor页面 50 5.2.1 创建Razor Pages Web应用 51 5.2.2 开发书籍管理系统 52 5.2.3 Razor页面的理论知识 73 5.3 MVC 85 5.3.1 创建MVC应用 85 5.3.2 项目开发 86 5.3.3 MVC介绍 96 5.4 Blazor 103 5.4.1 创建Blazor应用 103 5.4.2 项目开发 108 5.4.3 Blazor介绍 114 第6章 数据访问 126 6.1 EF Core 126 6.1.1 入门 128 6.1.2 模型 137 6.1.3 查询 157 6.1.4 保存 162 6.2 Dapper 165 6.2.1 新建项目 166 6.2.2 增删查改实现 166 6.2.3 源码解析 168 第7章 ASP.NET Core Web API 171 7.1 Web API 171 7.1.1 新建Web API 172 7.1.2 实现Web API 173 7.2 Swagger 179 第8章 SignalR 185 8.1 实时聊天室 186 8.2 横向扩展 191 第9章 gRPC 194 9.1 gRPC服务端 195 9.2 gRPC客户端 196 9.3 双向通信 199 9.4 gRPC与Web API的功能比较 203 9.4.1 gRPC的优点 204 9.4.2 gRPC的缺点 205 9.4.3 gRPC适合的方案 206 第10章 身份验证 207 10.1 身份验证介绍 207 10.2 Identity 210 10.3 IdentityServer4 210 10.3.1 API访问控制 211 10.3.2 ASP.NET Core OpenID Connect交互应用 217 第11章 NetNote系统 224 11.1 创建新项目 224 11.2 实现NetNote的基本功能 228 11.3 分类和分页 233 11.4 密码及附件上传 240 11.5 编辑和删除 245 11.6 富文本支持 248 11.7 Web API 250 11.8 基本身份验证中间件 254 11.9 身份验证 257 11.10 数据库初始化及切换 268 第12章 部署实践 271 12.1 部署至Linux系统 271 12.1.1 部署至Ubuntu系统 273 12.1.2 部署至CentOS系统 276 12.2 部署至Windows系统 279 12.3 Docker 部署实践 282 12.3.1 NetNote部署 283 12.3.2 Docker管理 285 第13章 ABP框架 287 13.1 ABP框架介绍 287 13.2 基础知识 289 13.2.1 使用命令行创建应用 289 13.2.2 在线创建应用 290 13.3 图书管理项目 295 13.4 特性及源码解析 323 13.4.1 模块 323 13.4.2 多租户 329 13.4.3 事件总线 334 第14章 ASP.NET Core开源项目 341 14.1 eShopOnWeb(微软ASP.NET Core示例项目) 341 14.1.1 配置SQL Server 342 14.1.2 解决方案 343 14.1.3 eShopOnContainers 345 14.2 Orchard Core(CMS管理系统和模块化框架) 348 14.2.1 解决方案 349 14.2.2 Orchard Core CMS 350 14.2.3 Orchard Core Framework 352 14.3 AspNetCoreSpa(单页Web应用) 355 14.3.1 解决方案 355 14.3.2 源码解析 356 14.4 CleanArchitecture(整洁架构示例) 358 14.4.1 解决方案 360 14.4.2 整洁架构 361