ASP.NET vNext 入门






4.82/5 (14投票s)
设置环境,在代码编辑器中编写 C# 代码,并通过命令行运行。
引言
你一直以来都在使用 OSX 和 UNIX,但又想体验一些微软最前沿的技术。也就是说,你想最终编写一些 C# 代码。那么,现在最棘手的问题是,如何在没有 Visual Studio 的情况下编写 C# 代码?更重要的是,我的操作系统不支持运行微软的产品。好吧!你不用再抱怨了,因为我有一个好消息告诉你。如果你参加了 2014 年 11 月初微软的名为 Connect();
的在线活动,你可能已经了解到 ASP.NET 5 已开源。它被称为 ASP.NET vNext。
活动视频可以在下面的链接找到
ASP.NET vNext 的 GitHub 仓库链接在此
设置
如果你已经浏览过该仓库并阅读了文档,你可能已经看到在 OSX 和 UNIX 操作系统中运行 ASP.NET vNext 应用程序的最低要求和工具。
简而言之,你只需要安装两样东西,就可以创建一个可以运行 C# 应用程序的环境。其中之一是 KVM(K 版本管理器),它基本上为你提供了 .NET 框架库。第二个是 KRE(K 运行时环境),它只是框架的运行时环境提供者。这就像你需要安装 JDK 和 JRE 来构建和运行 JAVA 应用程序一样。所以所有繁重的工作都已完成,现在是时候编写一些 C# 代码了。
在那之前,假设我的 Windows 中没有安装 Visual Studio(当然,你无法在 OSX 和 UNIX 中安装这个令人惊叹的 IDE)。然而,我想充分利用 Visual Studio 支持的 IntelliSense。让我们朝着构建自己的 Visual Studio 迈出微小的一步。首先,选择任何你喜欢的先进文本编辑工具。但不是任何工具,为了获得完整的 IntelliSense 支持,你必须在这些先进的文本编辑工具之间进行选择。别担心,Sublime Text 是其中之一,其余的是
- Atom
- Brackets
- Emacs
- Vim
我选择 Brackets,因为它有一些符合我需求的功能。好的,我已经安装了 Brackets 并启动了它。第一次运行时你会看到这个。
让我们点击写着“扩展管理器”的图标。在这个窗口中,你可以为 Brackets 安装一些扩展,这将最终让你的开发生活更轻松。
那么,我为什么要进入扩展管理器窗口?当然是为了安装一个扩展。但是是哪个呢?扩展的名称是 OmniSharp
。
你可以通过访问以下网址来访问该项目的官方网站
正如你将看到的标语,它写着
OmniSharp - 跨平台 .NET 开发
.NET 尽在你选择的编辑器中
所以,它只是你最喜欢的文本编辑器的扩展提供者,它将为 .NET 应用程序启用 IntelliSense 支持。它提供的功能比 IntelliSense 支持更多。剩下的部分留给你去发现。到目前为止一切顺利。
你几乎准备好了,在 Windows 中,让我们以管理员模式运行命令提示符。复制并粘贴以下命令,然后按 Enter 键。
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex
((new-object net.webclient).DownloadString
('https://raw.githubusercontent.com/aspnet/Home/master/kvminstall.ps1'))"
此命令将在你的系统上安装 KVM(K 版本管理器)。
再次,要安装 KRE(K 运行时环境),请启动另一个命令提示符并运行以下命令
kvm upgrade
Using the Code
现在将 ASP.NET vNext 首页仓库克隆到你的桌面。
如果你浏览 Home 文件夹,你会发现在 samples 文件夹下有三个子文件夹。它们是
- ConsoleApp
- HelloMVC
- HelloWeb
好吧,如果你想编写一个控制台应用程序,你将在 ConsoleApp 文件夹中工作,HelloMVC
是用于创建 ASP.NET MVC 应用的,而 HelloWeb
只是一个基本的 Web 应用程序骨架,运行它只会显示一个静态页面。
构建控制台应用程序
现在让我们来创建一个传统的“Hello World”应用程序。在此之前,让我们从命令提示符进入 ConsoleApp 文件夹并运行下面的命令
kpm restore
它将恢复该示例所需的包。所有命令只是简单地查看 project.json 文件,然后下载并添加其中提供的依赖项。就像 NuGet 包管理器一样。
现在用 Brackets 打开 ConsoleApp 文件夹,并修改里面的 Program.cs 文件。将 Console.WriteLine
方法中的文本更改为“Hello from ASP.NET vNext!”并保存。
最后,是时候运行控制台应用程序了。要做到这一点,只需在命令提示符中输入下面的命令
k run
它将在命令提示符中构建并运行控制台应用程序,你将在控制台中看到打印出来的“Hello from ASP.NET vNext!” string
。
构建 ASP.NET MVC 应用程序
与控制台应用程序一样,让我们更改目录并进入 HelloMVC 文件夹,然后运行下面的命令来恢复该示例所需的包。
kpm restore
现在用 Brackets 打开文件夹,你将看到一个 MVC 应用程序骨架,在 Models 文件夹中有一个名为 User
的简单 POCO 类,在 controllers 中有一个 HomeController
,在 Views 文件夹下的 Home 文件夹中有一个 Index.cshtml。我们还有一个在 shared 文件夹下的 _Layout.cshtml 文件,它基本上就像你应用程序的主页面。
为了不浪费时间,让我们创建一个我们自己的 POCO 类,名为 Employee.cs,并将这些属性添加到其中。
namespace MvcSample.Web.Models
{
public class Employee
{
public string Name { get; set; }
public string Address { get; set; }
}
}?
现在创建一个名为 EmployeesController
的控制器,并定义一个 Index
方法,该方法负责将预定义的员工列表返回到视图。
using System.Collections.Generic;
using Microsoft.AspNet.Mvc;
using MvcSample.Web.Models;
namespace MvcSample.Web
{
public class EmployeesController : Controller
{
public IActionResult Index()
{
List<Employee> employees = new List<Employee>()
{
new Employee(){ Name = "Blake", Address = "Ap #343-2378 Erat Rd." },
new Employee(){ Name = "Kibo", Address = "Ap #987-4812 Nonummy. Avenue" },
new Employee(){ Name = "Finn", Address = "266-551 Curabitur Avenue" },
new Employee(){ Name = "Gareth", Address = "1221 Hendrerit Rd." },
new Employee(){ Name = "Adam", Address = "Ap #181-8987 Est Rd." },
new Employee(){ Name = "Omar", Address = "P.O. Box 221, 1322 Nibh St." },
new Employee(){ Name = "Kirk", Address = "847-8772 Urna. Street" }
};
return View(employees);
}
}
}
是时候创建视图了,我们将在这里以表格形式显示员工列表。在 Views 下创建一个 Employees 文件夹,并在其中添加一个 Index.cshtml 文件。写下下面的代码
@model IEnumerable<MvcSample.Web.Models.Employee>
@{
Layout = "/Views/Shared/_Layout.cshtml";
ViewBag.Title = "Home Page";
string helloClass = null;
}
<h2>All Employees</h2>
<table class="table table-striped table-bordered">
<tr>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.Address)
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Address)
</td>
</tr>
}
</table>
我们的简单 MVC 应用程序已准备好运行。运行 Web 应用程序与运行控制台应用程序略有不同,不是使用 k run
,而是需要输入下面的命令并按 Enter 键
k web
该命令将创建一个服务器,并在 https://:5001 上打开一个监听端口。
打开你喜欢的浏览器并访问该链接。它将显示主页。让我们来看看我们的表格员工列表。为此,请访问 https://:5001/Employees。在那里你将看到你的表格员工列表。
结论
好了。我向你展示了如何使用 ASP.NET vNext 修改、构建和运行你自己的控制台和 ASP.NET MVC 应用程序。
希望你喜欢这篇帖子。我会带着更多这样的有趣帖子再次回来。在此之前,祝你编码愉快,新年快乐!