前言
为.net core 命令行的基础上写的,如果有兴趣的话,可以去看我的.net core 前文。
下面介绍如何将.net core控制台转换为.net core web应用。
正文
如果我们要实现一个.net core web的应用,那么我们要明白这个.net core web的本质是什么?
说是本质不如说是一个web应用需要什么?
.net core web的本质 是消息处理管道完成对http请求的监听、接收处理和最终响应。
asp.net core 管道是由一个服务器和若干中间件构成,当宿主程序启动后,管道被构建出来,作为管道"龙头"的服务器就开始监听来之客户端的http请求。
好的,那么现在就来改造吧。
先把解决方案改造一下:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App"/>
</ItemGroup>
</Project>
那么比上一节多了一个:
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App"/>
</ItemGroup>
添加了Microsoft.AspNetCore.App的引用。
那么接下来就是创建一个服务器。
请看code:
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Hosting;
using System;
namespace helloword
{
class Program
{
static void Main(string[] args)
{
WebHost.CreateDefaultBuilder().UseKestrel().Configure(app => app.Run(
context => context.Response.WriteAsync("hello word!")
)).Build().Run();
}
}
}
那么运行一下:
访问地址:
看一下控制台的内容:
这样就实现了切换至web应用。
总结
下一章介绍源码怎么实现的。