跨平台从控制台开始
我们都知道ASP.NET Core 是从控制台开始启动的,所以废话不多说,我们直接创建一个干净的控制台程序。这里要注意的是,要选择 .NET Core 的控制台,不是Windows控制台
创建好后,内置了一段代码
using System;
namespace CoreConsole
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
当然你可以完全操作一个控制台来做自己的练习题。
安装ASP.NET CORE 相关的包
包很多,如果你记不住,你可以直接安装ASP.NET Core 的全家桶,Microsoft.AspNetCore.All
如果连包都不知道怎么安装的话,那这篇文章就不适合你看了
安装好了以后,建一个Core 的启动类,默认叫 Startup.cs,当然你自己命名一个就行了。
然后在 Main 方法中写下面这段代码:
static void Main(string[] args)
{
WebHost.CreateDefaultBuilder(args)
.UseStartup<CoreStart>();
}
UseStartup 表示启动的时候使用的启动类,CoreStart 就是刚才建的一个启动类。
WebHost 需要 using Microsoft.AspNetCore;
然后需要增加一个 http 的监听,在 Core 中我们用的服务器是 Kestrel 。要知道这是个什么东西,请移步百度吧。
补充完整代码,用Kestrel 来监听一个端口
static void Main(string[] args)
{
WebHost.CreateDefaultBuilder(args)
.UseStartup<CoreStart>()
.UseKestrel(option=>
{
option.Listen(System.Net.IPAddress.Loopback, 9090);//端口是 9090
})
.Build().Run()//启动
;
}
当然,现在启动的话会报一个错误。
a public method named “ConfigureProduction” or “Configure” cannot be found in “CoreStart”
很明显,这句话的意思是,在CoreStart 里必须要有一个 Configure 或 ConfigureProduction 的公开方法。
打开CoreStart.cs
新增一个方法,必须是 public 的,名字是 Configure,当然你可以什么都不写
class CoreStart
{
public void Configure()
{
}
}
这一次运行,就ok了,你可以用浏览器运行 http://localhost:9090 了。
只不过什么都没有,但是你可以看看控制台的输出,是正常的。
我们可以输出一个 Hello World 再页面上:
public void Configure(IApplicationBuilder app)
{
app.Run(async context => await context.Response.WriteAsync("Hello world"));
}
重新再启动,再打开那个 url,就能看到页面的输出啦!