在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

使用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 Packages来restore必要的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);
});
}
}
}
参考资源
- Building Projects with Yeoman
- generator-aspnet
- Your First ASP.NET Core Application on a Mac Using Visual Studio Code
个人博客
在Mac下运行ASP.NET Core应用程序的更多相关文章
- Mac下运行ASP.NET Core应用程序
Mac下运行ASP.NET Core应用程序 在Mac下运行ASP.NET Core应用程序 通过参照.NET Core相关官方文档,在我的Mac电脑上用Visual Studio Code创建了我的 ...
- 在Mac下创建ASP.NET Core Web API
在Mac下创建ASP.NET Core Web API 这系列文章是参考了.NET Core文档和源码,可能有人要问,直接看官方的英文文档不就可以了吗,为什么还要写这些文章呢? 原因如下: 官方文档涉 ...
- Mac下开发ASP.NET Core应用,我用FineUICore!
在 Mac 下开发 ASP.NET Core 2.0+ 应用,我用FineUICore! FineUICore:企业级 ASP.NET 控件库,10年持续更新,只为你来:http://fineui.c ...
- 尝试在mac上用dotnet cli运行asp.net core示例程序
自从知道微软用dotnet cli取代dnx之后,一直在等dotnet cli支持asp.net core... 昨天看到这篇新闻(ASP.NET Core 1.0 Hello World)后,才知道 ...
- .NET Core初体验 - 在Mac下运行第一个Web示例程序
要说最近两天程序猿之间最喜欢吹水的事是什么?那绝壁是甲骨文要放弃Java!简直做梦都要笑醒!由于公司的产品线全面转向Java,最近几个月也一直在苦学Java技术.已经默默决定了,如果消息证实是真的,我 ...
- 怎么运行 ASP.NET Core控制台程序
aspnet test.dll
- (转) 将ASP.NET Core应用程序部署至生产环境中(CentOS7)
原文链接: http://www.cnblogs.com/ants/p/5732337.html 阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Cor ...
- 将ASP.NET Core应用程序部署至生产环境中(CentOS7)
这段时间在使用Rabbit RPC重构公司的一套系统(微信相关),而最近相关检验(逻辑测试.压力测试)已经完成,接近部署至线上生产环境从而捣鼓了ASP.NET Core应用程序在CentOS上的部署方 ...
- 将ASP.NET Core应用程序部署至生产环境中(CentOS7)(转)
阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Core SDK for CentOS7. 部署ASP.NET Core应用程序 配置Nginx 配置守 ...
随机推荐
- SCRIPT65535: 意外地调用了方法或属性访问 ie下不兼容 解决
一般有一下几种 $("#id").text("xxx") 改成 $("#id").attr("text"," ...
- Redhat环境下编译安装Google Bazel
Redhat环境下编译安装bazel 作者:Jack47 目前Google Bazel没有提供各个操作系统下的二进制安装包,只提供源代码,需要我们自己编译安装,详情可以见我翻译的中文版Google B ...
- 共享文件夹:The user has not been granted the requested logon type at this computer
场景重现 今天做一个项目测试,要用到虚拟机,于是在虚拟机(XP 32)上新建了一个共享的文件夹.然后我在Win7 机器上访问它得到如下的error 消息:
- [译]Asp.net MVC 之 Contorllers(一)
Asp.net MVC contorllers 在Ajax全面开花的时代,ASP.NET Web Forms 开始慢慢变得落后.有人说,Ajax已经给了Asp.net致命一击.Ajax使越来越多的控制 ...
- C# 服务程序 - 调试服务
前言:本篇文章环境是VS2015,win10.如果有任何的差别,请注意 1. 创建服务程序 1)用VC创建服务程序,叫做 MyTestWindowsService 创建完成之后,可以看到 2)添加安装 ...
- 记一个简单的保护if 的sh脚本
真是坑爹,就下面的sh,竟然也写了很久! if [ `pwd` != '/usr/xx/bin/tomcat' ] then echo "rstall is not allowed in c ...
- MyEclipse中屏蔽js检验
方法一: 右键工程-->properties-->Myeclipse-->validation-->Excluded Resource,勾选需要取消验证的文件或者文件夹就可以了 ...
- MyBatis参数绑定规则及原理分析
MyBatis参数的传递有几种不同的方法,本文通过测试用例出发,对其中的方式进行总结和说明,并对其部分源码进行分析. 一.测试用例(环境参考之前博客SSM接口编程一文 http://www.cnblo ...
- 【Win 10 应用开发】Toast通知激活应用——前台&后台
老周最近热衷于讲故事,接下来还是讲故事时间. 有人问我:你上大学的时候,有加入过学生会吗?读大学有没有必要加入学生会? 哎哟,这怎么回答呢,从短期来说,加入学生会有点用,至少可以娱乐一下,运气好的话, ...
- 网络连接详细信息出现两个自动配置ipv4地址
问题:网络连接详细信息出现两个自动配置ipv4地址,一个是有效地址,一个是无效地址. 解决办法:先将本地连接ip设置成自动获取,然后点击开始——>运行——>输入cmd,回车,进入命令行界面 ...