net core --hello world
一 添加HelloWorld项目
二 添加netcore依赖,在csproj文件里,双击新建的项目即可
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net5.0</TargetFramework> </PropertyGroup> <ItemGroup> <FrameworkReference Include="Microsoft.AspNetCore.App"></FrameworkReference> </ItemGroup> </Project>
三 修改为net core项目
class Program { static void Main(string[] args) { Host.CreateDefaultBuilder() .ConfigureWebHost(WebHostBuilder => WebHostBuilder .UseKestrel() .Configure(ApplicationBuilder => ApplicationBuilder.Run(httpContext => httpContext.Response.WriteAsync("hello dyb") ))) .Build() .Run(); } }
- host宿主,承载服务,通过自带的CreateDefaultBuilder()方法创建一个hostBuilder对象,最终通过Builder()方法创建Host.最终Run()启动应用程序。
- 通过ConfigureWebHost()扩展方法,通过Action<IWebHostBuilder>委托对象构建asp.net core应用请求处理管道。
- 通过扩展方法UserKestrel(),将kestrelServer注册为服务器。
- 通过扩展方法Configure(),通过action<IApplicationBuilder>对象,所需的中间件注册在IApplicationBuilder对象上。
- 上面的中间注册是通过ApplicationBuilder对象的扩展方法Run(),通过Func<HttpContext,Task>实现了一个简易的返回文字的中间件。
四 修改SDK.
在csproj文件中,project Sdk是Microsoft.Net.Sdk而asp.net core应用通常采用另一种名为 Microsoft.net.sdk.Web的sdk类型。
直接修改这个文件就可以了。保存后,reload项目,生成launchSettings.json文件。
<Project Sdk="Microsoft.NET.Sdk.Web">
内容如下:
{ "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:49181/", "sslPort": 44373 } }, "profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "HelloWorld": { "commandName": "Project", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }, "applicationUrl": "https://localhost:5001;http://localhost:5000" } } }