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

通过参照.NET Core相关官方文档,在我的Mac电脑上用Visual Studio Code创建了我的第一个ASP.NET应用。

开发环境搭建

首先要先安装.Net CoreVisual 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

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

sudo cnpm install -g yo generator-aspnet bower

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

然后会提示What type of application do you want to create?

这里选择Web Application Basic [without Membership and Authorization]并回车。

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

这里选择Bootstrap (3.3.6) as the UI framework并回车。

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



此时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







至此,打开本地的浏览器在地址栏输入: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中自定义的任务。

你还可以通过快捷键⌃`调出集成在VS Code里面的控制台。

对于未被用到的using语句会被标记一道绿色波浪线,鼠标移到上面还有显示一个黄色小灯泡,此时你可以使用⌘ .移除它们;类和方法也会显示它们在该项目中被引用的次数;还可以通过⌘KC来添加代码块注释,通过⌘KU来取消注释。

点击VS Code左侧调试窗格中的绿色三角形的调试按钮,可能会在顶部出现一个错误提示信息:

根据错误提示可知,我们需要配置launch.json文件里面的program为实际的可执行文件。

配置成功后,我们可以给程序设置断点、添加监视等。

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

基于Kestrel本地运行应用

本示例采用Kestrel作为Web服务器,可以在project.json里看到它被作为一个依赖项。

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);
});
}
}
}

参考资源

个人博客

我的个人博客

在Mac下运行ASP.NET Core应用程序的更多相关文章

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

    Mac下运行ASP.NET Core应用程序 在Mac下运行ASP.NET Core应用程序 通过参照.NET Core相关官方文档,在我的Mac电脑上用Visual Studio Code创建了我的 ...

  2. 在Mac下创建ASP.NET Core Web API

    在Mac下创建ASP.NET Core Web API 这系列文章是参考了.NET Core文档和源码,可能有人要问,直接看官方的英文文档不就可以了吗,为什么还要写这些文章呢? 原因如下: 官方文档涉 ...

  3. Mac下开发ASP.NET Core应用,我用FineUICore!

    在 Mac 下开发 ASP.NET Core 2.0+ 应用,我用FineUICore! FineUICore:企业级 ASP.NET 控件库,10年持续更新,只为你来:http://fineui.c ...

  4. 尝试在mac上用dotnet cli运行asp.net core示例程序

    自从知道微软用dotnet cli取代dnx之后,一直在等dotnet cli支持asp.net core... 昨天看到这篇新闻(ASP.NET Core 1.0 Hello World)后,才知道 ...

  5. .NET Core初体验 - 在Mac下运行第一个Web示例程序

    要说最近两天程序猿之间最喜欢吹水的事是什么?那绝壁是甲骨文要放弃Java!简直做梦都要笑醒!由于公司的产品线全面转向Java,最近几个月也一直在苦学Java技术.已经默默决定了,如果消息证实是真的,我 ...

  6. 怎么运行 ASP.NET Core控制台程序

    aspnet test.dll

  7. (转) 将ASP.NET Core应用程序部署至生产环境中(CentOS7)

    原文链接: http://www.cnblogs.com/ants/p/5732337.html 阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Cor ...

  8. 将ASP.NET Core应用程序部署至生产环境中(CentOS7)

    这段时间在使用Rabbit RPC重构公司的一套系统(微信相关),而最近相关检验(逻辑测试.压力测试)已经完成,接近部署至线上生产环境从而捣鼓了ASP.NET Core应用程序在CentOS上的部署方 ...

  9. 将ASP.NET Core应用程序部署至生产环境中(CentOS7)(转)

    阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Core SDK for CentOS7. 部署ASP.NET Core应用程序 配置Nginx 配置守 ...

随机推荐

  1. JS简介,如何快熟JS。打下结实基础。

    JS决定网页的行为,有行为就有逻辑,而计算机只是人工智能,你给它什么样的指令,它就会按照你的指令去运行. 有人会问,既然是给出指令,那还需要什么逻辑? 这里我举一个简单的小例子来说明一下! 到你想输入 ...

  2. NodeJS入门(四)—— path对象

    很快Node就会迎来4.0的时代,届时将并入现有的iojs,所以先前写过的iojs入门系列直接更名为NodeJS入门. 本篇开始将逐个介绍Node的各主要模块,依循API文档走一遍,但会给出比API文 ...

  3. [译] 给PHP开发者的PHP源码-第一部分-源码结构

    文章来自:http://www.hoohack.me/2016/02/04/phps-source-code-for-php-developers-ch 原文:http://blog.ircmaxel ...

  4. Android知识杂记(四)

    1.完整退出activity的设计思路 1.1 封装一个基础activity类 public abstract class RootActivity extends FragmentActivity{ ...

  5. python自动化测试(4)-使用第三方python库技术实现

    python自动化测试(4)-使用第三方python库技术实现 1   概述 关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 ...

  6. ubuntu下rhythmbox歌名显示乱码问题解决

    问题描述:本人装有双系统,一个是win7,另一个是ubuntu12.04LTS版本,所有的歌曲都在windows磁盘下KuGou目录中,这个时候,使用ubuntu的rhythmbox播放的歌曲的时候, ...

  7. CentOS 7 网络配置

    Virtual box 安装了CentOS 7最小模式后马上用ifconfig命令查看网络情况,发现该命令不存在. [root@centos1 ~]# ifconfig -bash: ifconfig ...

  8. SVN+码云 简单使用流程

    1.登录码云网站...

  9. SVN代码冲突解决方案小集合

    对于刚接触svn的人来说,svn冲突后,不能提交是件让人很郁闷的事情.最让人郁闷的事,是代码间的覆盖.你把我代码盖了,我会很火大的.谁把谁的盖了都不爽. 为什么会出现代码冲突问题呢,因为不同的人,同时 ...

  10. datatable去重

    两种方法1 数据库直接去除重复select distinct * from 表名去除了重复行distinct 2 对 DataTable直接进行操作DataTable dt=db.GetDt(&quo ...