ASP.NET Core 2 加入了 Razor 页面特性

  • Jeff Martin
  • 盖磊

2017 年 8 月 30 日

话题:.NET语言 & 开发

最近发布的 ASP.NET Core 2.0,连同新发布的.NET Core 2Entity Framework Core 2.0y,一并构成了.NET Core 2.0 生态中的三元组。此发布给出了多个新特性和改进,其中包括通用性能的改进、Razor 页面、新的开发模板以及更好的 Azure Diagnostics 支持。

让我们首先看一下Razor 页面。Razor 页面类似于标准的 MVC 视图,只是通过使用 @Page 指令标明自身为 Razor 页面。Microsoft 现在考虑将 Razor 页面作为 ASP.NET Core 中构建 Web 应用 UI 的推荐方法,当然开发人员也可自由地选择最适合自己的方法。使用 Razor 页面编写的 Web 页面,无需经过控制器即可直接处理请求,正如在标准的 ASP.NET MVC 应用中那样。

转向 ASP.NET Core 2 平台的另一个好处是简化了对软件包的引用。在项目的.csproj文件中,仅需引用Microsoft.AspNetCore.All。这是一个Meta-package,它在简化了引用问题的同时,确保应用所需的所有库是可用的。而在发布 Web 应用时,只有应用所需的库才会与应用一并发布,避免了文件膨胀。另一个优点是 Meta-package 可使应用的启动速度更快,这是因为它使用了.NET Core Runtime Store,其中预编译了所有的软件包和文件。虽然这一 Meta-package 提供了一种便利的软件包引用方式,但是开发人员依然可以继续在Microsoft.AspNetCore.*中直接引用特定的软件包。

为了支持新的特性,ASP.NET Core 2 扩充一些模板,它们来自于 Razore 页面(模板命名为“Web Application”)、Web API、基于 MVC 的 Web 应用、Angular、React.js 和 React.js& Redux 等。所有这些模板也可以通过命令行使用,不必依赖于 Visual Studio 2017。

在明确声明的情况下,Razor 语言引擎提供对 C# 7.1 特性的支持。为此,需在项目文件中需添加该如下属性:<LangVersion>latest</LangVersion>。更改将在重新加载解决方案后生效。

规划将应用部署到 Azure 的开发人员将会看到,ASP.NET Core 2 构建的应用不需作任何更改,就可使用 Azure App Service。应用的部署可以在 VS2017 中执行,也可直接在 Azure 门户上执行。

使用已有 ASP.NET Core 1.X 软件包的开发人员,要详细了解如何升级应用到 ASP.NET Core 2.0,可以参考 Microsoft 的升级指南。使用 ASP.NET 2.0 需下载.NET Core 2 SDK,它是独立于 VS2017 提供的。

查看英文原文: ASP.NET Core 2 Gains Razor Pages

.NET语言 & 开发