刘浩的技术博客

就当是做个笔记,顺便分享一些知识,更希望业界的交流

在Mac上安装Visual Studio Code开发Asp.Net应用程序

现在微软出了新的跨平台编译器Visual Studio Code,能够横跨Linux、Mac、Windows并在其上面进行web开发,现在ASP.NET已经出到了5.0了而且MVC框架也已近出到6.0.下面我就来写我在Mac上安装Visual Studio Code和与其依赖的环境。

安装Visual Studio Code

可以在这里下载Visual Studio Code的安装包,下载到硬盘后把下载的包拖到你机器的Application目录中就安装完成了,现在的最新版本是Visual Studio Code 1.3。 下载完成后你可以安装相应的扩展(除了第一个强烈要求安装外其余的可以看各自需要): * C# for Visual Studio Code (powered by OmniSharp)(启动VS Code按(⌘+P)快捷键然后复制ext install csharp命令到扩展查询框中接着按enter键。这个扩展提供了高亮语法,Debugging等的支持) * Auto Close Tag(安装方法类似上面的)

安装.NET Core SDK

Net Core是什么,其实可以看做是一个所有微软框架的基础,他是.Net Framework和跨平台框架mono(mono其实是更具.Net Framework重新实现的跨平台版本)的基石,以前的.Net Framework框架和mono是两个独立的框架,那么可能有些与跨平台无关的代码重复实现了,现在有Net Core框架,他是所有的微软框架的技术栈,都是依托它搭建起来,当然现在还才开始,Net Core实现的内容还不多,不过微软以后的趋势就是这样的。

安装.NET Core前必须确保安装了openssl的最新版本,用brew安装可以用以下命令

    brew install openssl
    brew link --force openssl

然后在这里下载安装.NET Core就可以了。

注意:如果你安装了oh-my-zsh,你可能会遇到一个错误,安装完.NET Core后它的dotnet命令没有在你的PATH里面,你可以用命令(sudo ln -s /usr/local/share/dotnet/dotnet /usr/local/bin)修复它

现在你可以初始化一些代码了

用以下命令初始化一个简单的Hello World应用

    mkdir hwapp
    cd hwapp
    dotnet new

运行应用程序

下面的第一个命令将恢复指定在project.json文件中的包,第二个命令将运行实际的项目。

    dotnet restore
    dotnet run

你可以创建一个web站点

  1. 就利用上面的项目,你可以更新上面的项目的project.json文件,在中间添加一行依赖于Kestrel HTTP服务包,加入后记得运行dotnet restore命令去恢复包,加入后大概类似以下部分。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.0"
        },
        "Microsoft.AspNetCore.Server.Kestrel": "1.0.0"
      },
      "imports": "dnxcore50"
    }
  }
}
  1. 添加一个Startup.cs(这个文件是所有的web的入口,是必须的)文件去定义请求逻辑,类似以下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
namespace aspnetcoreapp
{
    public class Startup
    {
        public void Configure(IApplicationBuilder app)
        {
            app.Run(context =>
            {
                return context.Response.WriteAsync("Hello from ASP.NET Core!");
            });
        }
    }
}
  1. 更新修改Program.cs去建立和启动这个Web主机(host):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using Microsoft.AspNetCore.Hosting;
namespace aspnetcoreapp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseStartup<Startup>()
                .Build();
            host.Run();
        }
    }
}
  1. 运行这个APP(这个dotnet run命令在这个APP有改动的时候自动编译它再运行)

     dotnet run
    
  2. 在浏览器键入http://localhost:5000打开这个web网站(你可以用Ctrl+C停止这个服务)

利用Yeoman来生成一个项目模板

Yeoman是一个完整项目生成器,他是一个开源的工具,他可以生成出来像一个Visual Studio项目模板等等。

安装Yeoman

首先要安装Yeoman所依赖的Node.js,你可以这里下载安装Node.js.然后要安装npm,可以在这里下载安装。接下来用npm安装Yeoman,bower,grunt和gulp

    sudo npm install -g yo bower grunt-cli gulp

安装ASP.NET模板生成器(-g标识是全局生成器,可以再任何路径使用)

    sudo npm install -g generator-aspnet

创建一个ASP.NET应用

键入如下命令

    mkdir src
    cd src
    yo aspnet

选中Web Application选项按enter,键入项目名字mywebapp,然后键入一下命令

    dotnet restore

编译和运行可以键入一下命令,其中dotnet build是可选命令,每次运行时都会重新编译一下。

    dotnet build
    dotnet run

打开浏览器,导航到http://localhost:5000可以看界面。至此一个简单web站点搭建成功。

利用yo可以添加类到现存项目中

进入如下命令

    yo aspnet:Class Person

结果是一个命名为Person.cs的文件被建立,如下Person:

1
2
3
4
5
6
7
8
9
10
11
12
13
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace MyNamespace
{
    public class Person
    {
        public Person()
        {
        }
    }
}

扩展

ASP.NET 5.0已经正式更名为 ASP.NET CORE,现在都存在于.NET Core SDK中。 关于Kestrel,它是一个跨平台的web服务是基于libuv的,你添加Kestrel的支持必须添加Microsoft.AspNetCore.Server.Kestrel到你的项目的project.json依赖列表中。Kestrel他是跑到一个代理服务后面的(例如IIS或者Nginx),它自己是不面向网络的,你可以在一个服务中配置代理请求转发到Kestrel处理。