ASP.NET 5新特性解析

ASP.NET 5引入了许多新特性和改进,这些变化旨在提高开发效率和应用性能。本文将详细解析ASP.NET 5中的关键更新,包括项目结构的变化、依赖管理的革新以及项目文件的更新。

项目结构的变化

在ASP.NET 5中,项目结构有了显著的变化。最明显的是,网站的根目录不再是项目的根目录。默认情况下,根目录被设置为wwwroot文件夹。这种设计的理念是为了保持Web服务器检索并发送给客户端的文件与包含逻辑和配置的文件之间的清晰分离。静态文件如JavaScript、CSS和HTML可以存放在wwwroot文件夹中。

例如,如果在运行应用程序时尝试查看放置在My Images文件夹中的图片,可能会遇到404错误。但是,如果将相同的文件夹添加到wwwroot文件夹并尝试导航到该文件夹,它将正常显示结果。这说明所有静态文件都由根目录提供服务,而逻辑内容则由项目空间提供服务,正如在添加控制器到控制器文件夹并生效时所看到的那样。

ASP.NET 5中,依赖管理也得到了革新。现在,解决方案中不再有web.config文件,也没有Global.asax文件;取而代之的是startup.cs文件。但是,稍后会讨论这个问题。首先,让看看project.json文件。这个文件现在管理着网站的许多方面。

首先会注意到的是,project.json中设置了根目录为wwwroot。这是告诉网站这是根目录的地方,从这里开始展示。可以根据需要更改或重命名这个设置。现在,这个配置文件是JSON格式的。它还告诉ASP.NET运行时项目将需要哪些依赖项。在新的ASP.NET 5系统中,管理依赖项有了新的方式。不再需要引用程序集并将引用程序集的列表存储在项目文件中。相反,引用NuGet包作为依赖项,这些依赖项列在project.json文件中。

这种变化有几个原因。一个原因是简化依赖管理。另一个很好的原因是ASP.NET正在摆脱VS依赖。因此,在未来,可以使用任何文本编辑器来构建ASP.NET应用程序。

这些依赖可以是双向的。已经在下面的截图中展示了一种方式。现在,UI也发生了变化。最初,使用的是模态窗口。现在,这更像是全屏,提供了更宽的可见性。还可以看到安装的模板,如:

此外,仍然可以灵活地选择不同的NuGet源。第二种选择是通过project.json文件。假设计划安装一些自定义包。那么可以按照下面所示进行:

无论安装了哪个包;可以在“References”下找到它的引用。在下面的截图中,可以看到有两个版本的运行时。第一个是核心版本,第二个是云优化版本。

现在,让折叠并深入研究。在这里,依赖管理系统将程序集保持在一个漂亮的树结构中。它清楚地告诉哪个包依赖于哪个包。

就框架和运行时而言,正如在下面的截图中看到的,在这里列出了两个框架。所以,每当构建解决方案时,都是针对这两个框架构建的。通过针对这两个框架构建,实际上是在确保它将在这两个框架上很好地工作。这也意味着,每当切换平台时,代码不会在那里中断。

但是,让继续破坏一些东西。还记得在上一段中,用记事本创建了一个新控制器。现在,让修改它并刷新应用程序。

正如看到的,它说GetCallingAssembly()System.Reflection的一部分,在云优化版本中不受支持。但是,让假设忽略了这个错误并刷新了应用程序。所以,它实际上产生了预期的结果。

但是,当明确构建项目并检查输出窗口时,它给了以下错误消息。所以,构建有错误,但应用程序在完整的CLR上运行得很好。现在,如果决定不需要CORE CLR版本,只需要在project.json文件中注释掉Core CLR部分。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485