微软最近发布了ASP.NET Core 1.1 的预览版,这个版本包含了多个新的中间件组件、针对Windows 的WebListener 服务器、Razor 视图编译以及Azure 相关的特性。
新的中间件组件和增强
在这个版本中,我们能够在特定的控制器或action 中使用中间件组件。组件可以借助新的MiddlewareFilterAttribute 担当MVC 资源过滤器的角色。例如,响应压缩和缓存这样的功能可以配置在特定的action 或控制器中,而不是配置在整个应用的级别上。
在之前的几个版本中,URL 重写(URL rewriting)就已经成为IIS 的一项特性了,它是作为一个http 模块来实现的。在这个预览版本中,URL 重写作为一个中间件组件重新回归了。这个组件可以配置为使用IIS 标准的XML 格式化规则、Apache Mod_Rewrite 语法,也可以直接使用Web 应用中的C#方法。
ASP.NET Core 1.1 还带来了两个新的中间件,也就是响应缓存(response caching)和响应压缩(response compression)。响应缓存中间件会作为ASP.NET MVC 中OutputCacheAttribute 的继任者。
Razor 视图编译
在 ASP.NET MVC 之前的版本中,有一种预编译Web 站点的方式,这样的话,视图编译就可以在部署阶段执行,而不是在运行期。通过这种方式,能够减少部署后首次加载页面所造成的延迟。ASP.NET Core 1.1 重新带回了预编译Razor 视图的功能。这个视图编译器要添加到应用的project.json 文件的“tools”部分,并且要带有对工具包的引用。在运行package restore 之后, dotnet razor-precompile
命令就可以预编译 razor 视图了。
针对 Windows 的 WebListener 服务器
WebListener 是构建在 Windows Http Server API 之上的服务器。WebListener 提供了依赖于平台的特性,比如 Windows authentication、端口共享(port sharing)、结合 SNI 的 HTTPS、基于 TLS 的 HTTP/2(Windows 10)、直接的文件传输以及 WebSockets 的响应缓存(Windows 8)。
Azure 相关的特性
AzureAppServicesIntegration 包允许发送日志到 Azure App Service 中。要写入的所有日志信息都会使用 ILogger/ILoggerFactory 抽象,在 Azure 门户的 App Service 配置中,Diagnostics Logs 区域设置了这些日志将会写入到什么位置中。
AzureKeyVault 包带来了一个针对 Azure Key Vault 的配置提供者(configuration provider )。这样的话,就允许我们在应用启动的时候从 Key Vault secrets 中获取配置,并将其放在内存之中,从而能够使用正常的 ASP.NET Core 配置抽象来访问配置数据。
ASP.NET Core 引入了 DataProtection ,它提供了加密相关的 API。这个预览版本包含了两个包,允许将数据保护的 key(Data Protection key)存储到 Azure Storage 和 Redis 中。这样的话,能够跨多个 Web 站点实例来共享 key,也能够在负载均衡的场景下跨多台服务器进行共享。
评论