ASP.NET 到第 5 版,我也算是从 ASP.NET 2 一起走过来的老用户了。ASP.NET 每一个版本的更新都可以开一个大的系列,以前我没有写过,然而这次我觉得有必要了。

这篇文章里,我们来一起看看在一台从来没有安装过开发环境 Visual Studio 的 Windows 机器上如何顺利地部署一个 ASP.NET 5 的开发环境,所用到的代码在文章结尾处可下载到。

 

运行时基础设施

.NET 应用程序需要一个运行时,新版本的 ASP.NET 仍是这样。不过,随着开源和跨平台等策略的影响,ASP.NET 需要的运行时较以前已经小了许多。现在,我们只需要 CLR 和 FCL 的一个子集就够了,微软将其重新整理成为 Core CLR 和对应的 Core FX。新的运行时是与之前完整的 .NET Framework 是独立的,它采用类似 NuGet 包的形式分发,并具有跨平台的能力,可以在多个平台上编译使用。完整的 .NET Framework 以及 Mono 仍然可以工作,它们通过一定的兼容处理之后,形成自己的对应的 .NET 运行时。这些运行时统一称为 DNX,全称是 .NET Execution Environment。

由于可能存在多个并行的运行时,因此新的机制中还提供了一个 DNVM 的工具来管理和切换这些运行时。实际上,我们要安装新的 ASP.NET 开发基础设施就是从安装 DNVM 开始的。使用管理员权限打开一个命令行窗口并输入以下命令执行:

powershell -NoProfile -ExecutionPolicy unrestricted -Command “&{$Branch=‘dev’;iex ((new-object net.webclient).DownloadString(‘https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}"

安装成功后,输入 dnvm 命令,将可以看到如下的控制台输出:

image

 

安装一个可用的 DNX:

    dnvm upgrade

完成后,再输入 dnvm list 即可看到可用的 DNX 运行时了:

image

此时,你的运行时环境已经准备就绪,可以着手创建一个 ASP.NET 5 应用程序了。

 

创建 ASP.NET 5 Hello World 应用程序

与以往要使用 Visual Studio 或 Web Matrix 基于模板创建应用程序不同,现在如果需求很简单,那么这一切不必要的前置步骤都可以省掉了——虽然以前也可以,但似乎人们更倾向于使用 Visual Studio 来开发 ASP.NET 应用程序。现在我们仅需要手动创建两个简单的文件,就可以很快运行起我们的 Hello World 应用程序了:project.json 和 Startup.cs,它们的代码也十分简单,分别如下。

image

 

image

 

project.json 的作用是记录项目的基本信息,定义依赖的其他包,要使用的 dnx 运行时等,而 Startup.cs 文件中的 Startup 类则是新的 ASP.NET 5 中所需要的启动文件,其作用类似于以前的 Global.asax,但这个文件现在是必要的,而且其中必须要声明 Configure 方法,用于启动我们的 ASP.NET 应用程序。

我们这个简单的应用程序需要一个服务器程序来运行它,所以它依赖了 Microsoft.AspNet.Hosting,以及用于自宿主的 Microsoft.AspNet.Server.WebListener 两个包。在上面的 Startup.cs 文件中,我们指定应用程序在运行时,向客户端输出 Hello AspNet vNext 的响应。

 

启动 Hello World 应用程序

是的,一切来得如此突然而顺利,你已经完成了一个 Hello World 应用程序的所有步骤。是时候启动它,让它生效了。

打开命令行,输入下面的命令,待命令行出现“Started”提示则表示已经运行成功了:

    dnu restore

    dnx . web

dnu restore 命令类似 nuget.exe restore,用于从 project.json 中读取所依赖的包,并自动安装它们。而后一个命令的意思是在当前目录下,运行 web 命令行。这个 web 命令是在 project.json 的 commands 节配置好的。

我们打开浏览器,访问 http://localhost:5000 之后,即可看到我们的 ASP.NET 5 应用程序已经正常工作了:

image

 

 

总结

通过上面的步骤,我们可以发现,ASP.NET 5 运行时框架的思路很清晰,通过几个简单的命令即可完成配置,更可以运行于 Windows、Linux 和 OS/X 等多个平台上;上  面整个过程中,我们也没有使用 Visual Studio 这样的大杀器。可以看出,ASP.NET 正在变得轻量级,比以前简化了许多。

 

 

下载附件 ASP.NET 5 Startup

nline; padding-right: 0px”>

下载附件 ASP.NET 5 Startup