配置应用程序
本章主题是关于配置,似乎不是很有趣, 但它揭露了很多关于 MVC 应用程序的工作原理及其 HTTP 请求的处理方式。抵制跳过本章的诱惑,并花时间了解 MVC 中关于配置系统的运行模式。这是很值得的,将为你理解后面章节打下坚实的基础。
如果您使用过早期版本的 ASP.NET,对比 ASP.NET Core,最显著的变化之一就是配置应用程序的方式。 一系列的文件,包括 Global.asax、FilterConfig.cs 和 RouteConfig.cs 统统消失了,取而代之的名为Startup 和 Program 的类文件,以及一系列的 JSON 文件。
在本章节, 我将解释如何使用这些文件配置 MVC 应用程序,以及如何在 ASP.NET Core 平台提供的功能中构建 MVC 应用程序。表14-1 有相关的解疑答惑。
■ 注意 Microsoft 已经宣布将改变 ASP.NET Core 应用程序在将来的版本中配置的方式,将 project.json 文件的扮演的角色转移到 XML 配置文件中。当新工具被发布时,请参阅在Apress.com上本书的页面。
表 14-1. 关于配置的解疑答惑
问题 | 答案 |
---|---|
是什么? | Program 和 Startup 类,JSON文件用于配置应用程序的工作原理以及它所依赖的软件包。 |
有什么用呢? | 配置系统允许应用程序定制环境变量,管理其软件依赖包。 |
怎么用? | 最重要的组件是 Startup 类, 它用于创建服务 (在整个应用程序中提供通用功能的对象) 和 中间件(用于处理HTTP请求)。 |
是否有任何陷阱或局限性? | 在复杂的应用中,配置变得难以管理。在 ASP.NET功能中处理该问题,请参阅 “处理复杂配置” 一节。 |
有别的替代方案吗? | 没有。配置系统是 ASP.NET 的一个组成部分,也是创建 MVC 应用程序的方法。 |
MVC 5之后有变化吗? | 配置系统自 MVC 5 以来已经完全改变,全新的方法旨在使得可以在传统的 IIS 平台之外运行应用程序。 |
表 14-2. 章节总结
难题 | 解决方案 | 清单 |
---|---|---|
向应用程序添加功能 | 使用依赖工具将 NuGet 软件包添加到 project.json 文件中 | 1-6 |
管理 ASP.NET 应用程序的初始化 | 使用 Program 类 | 7 |
配置应用程序 | 使用Startup类的ConfigureServices和Configure方法 | 8,9 |
创建常用功能 | 使用ConfigureServices方法创建服务 | 10-12 |
生成响应 | 创建响应中间件 | 13-15 |
阻止请求遍历请求管道 | 创建短路中间件 | 16-17 |
在请求被其他中间件处理前编辑 | 创建请求编辑中间件 | 18-20 |
编辑已被其他中间件组件处理的响应 | 创建响应编辑中间件 | 21,22 |
为应用程序在不同环境中更换配置 | 使用主机环境服务 | 24 |
记录应用数据 | 使用日志记录中间件 | 25-27 |
处理应用程序中的错误 | 使用开发环境或生产环境中的错误处理中间件 | 28,29 |
在开发过程中管理多个访问链接 | 使用访问链接 | 30 |
启用 images,JavaScript 和 CSS 文件 | 启用静态内容中间件 | 31 |
从 C# 代码中分离配置数据 | 创建外部配置源,如 JSON 文件 | 32-37 |
配置复杂的应用程序 | 使用多个外部文件或类 | 39-43 |