Node.js以Mac下运行ASP.NET Core应用程序

每当Mac下运行ASP.NET Core应用程序

经过参照.NET Core相关官方文档,在自己的Mac电脑及用Visual Studio
Code创建了自家之率先独ASP.NET应用。

出条件搭建

先是使先期安装.Net
Core和Visual Studio
Code,并且使叫Visual Studio Code安装
C#
extension,另外要到nodejs.org
安装Node.js和npm。

动用Yeoman搭建应用

由于我们于装置Node.js时于带的npm地址是墙外,npm
install有或没有影响还是很卡。所以本文所有的npm安装都动了淘宝NPM镜像:

npm install cnpm -g --registry=https://registry.npm.taobao.org

Node.js 1

使用npm安装必要之yeoman generators和bower。

sudo cnpm install -g yo generator-aspnet bower

Node.js 2

Yeoman的logo是一个戴帽子的女婿。它实际是一个工作流,这个工作流包含了三种植用来提升你构建一个Web应用之生产力与满意度的家伙:
脚手架工具(yo), 构建工具(Gulp,Grunt等),
确保管理工具(比如npm和Bower)。

使用yo aspnet来运作ASP.NET Core generator,以十分成一个Web
Application基础模板。

yo aspnet

yo aspnet转变的模版都是冲大家耳熟能详的Visual Studio
2015达到的模板,这个模板维护以ASP.NET Templates
project。

Node.js 3

接下来会提醒What type of application do you want to create?

此地选择Web Application Basic [without Membership and Authorization]并回车。

接着会提示Which UI framework would you like to use?

Node.js 4

此间选择Bootstrap (3.3.6) as the UI framework并回车。

MyFirstApp作为以名称并回车。如下图:

Node.js 5
Node.js 6

这会儿generator会生成项目的底蕴框架文件,然后提醒而分别执行restore,build,run命令。

Your project is now created, you can use the following commands to get going
    cd "MyFirstApp"
    dotnet restore
    dotnet build (optional, build will also happen with it‘s run)
    dotnet run

Node.js 7
Node.js 8
Node.js 9
Node.js 10

迄今,打开当地的浏览器在地方栏输入:http://localhost:5000,即可访问你创造的第一个程序。

下Visual Studio Code开发使用

故Visual Studio
Code打开刚刚创建的种类,通过快捷键⌘⇧P输入dot,选择dotnet: Restore Packagesrestore必备之build和debug项目依赖。可以在VS
Code中一直运行包括dotnet restore在内的指令和具备在project.json文本中援引到之家伙及以.vscode/tasks.json遭到由定义之职责。

Node.js 11

汝还得经快速键⌃`调出集成以VS Code里面的控制台。

Node.js 12

对于不被用到之using语句会被标记一道绿色波浪线,鼠标移到面还有形一个黄色小灯泡,此时公可行使⌘ .移除它们;类及法呢会显得她以拖欠品种中被引用的次数;还好透过⌘KC来上加代码块注释,通过⌘KU来Node.js取消注释。

Node.js 13

点击VS
Code左侧调试窗格中之绿色三角形的调节按钮,可能会见当顶部起一个误提示信息:
Node.js 14

因错误提示可知,我们需要配备launch.json文本之中的program啊实际的可执行文件。

Node.js 15

布局成功后,我们可让程序设置断点、添加监视等。

Node.js 16

终极程序会调出本地默认的浏览器先后并导航及http://localhost:5000,效果如下:

Node.js 17

根据Kestrel本地运行应用

本示例祭Kestrel作为Web服务器,可以以project.json里见到它吃作为一个据项。

Node.js 18

KestrelHttpServer服务器是微软出的绝无仅有一放缓基于跨平台网络库libuv的跨平台Web服务器。
经代码可以发现经过调用IWebHostBuilder的UseKestrel扩展方法即可形成对KestrelHttpServer的挂号。

namespace Microsoft.AspNetCore.Hosting
{
    public static class WebHostBuilderKestrelExtensions
    {
        public static IWebHostBuilder UseKestrel(this IWebHostBuilder hostBuilder)
        {
            return hostBuilder.ConfigureServices(services =>
            {
                services.AddTransient<IConfigureOptions<KestrelServerOptions>, KestrelServerOptionsSetup>();
                services.AddSingleton<IServer, KestrelServer>();
            });
        }

        public static IWebHostBuilder UseKestrel(this IWebHostBuilder hostBuilder,
                                                Action<KestrelServerOptions> options)
        {
            return hostBuilder.UseKestrel().ConfigureServices(services =>
            {
                services.Configure(options);
            });
        }
    }
}

参照资源

  • Building Projects with
    Yeoman
  • generator-aspnet
  • Your First ASP.NET Core Application on a Mac Using Visual Studio
    Code

私博客

自我之个体博客