第一章 開發體驗
目錄- 第一章 開發體驗
- 一、Asp.Net Core應用程式
- 二、Asp.Net Core Mvc應用程式
一、Asp.Net Core應用程式
-
使用CLI創建控制臺應用程式
dot new console -n helloworld -
編輯專案檔案
<ItemGroup> <FrameworkReference include = "Microsoft.AspNetCore.App"></FrameworkReference> </ItemGroup> -
創建Host主機并配置
在Main方法中,呼叫靜態類Host的CreateDefaultBuilder方法,創建一個IHostBuilder物件,并呼叫Builder方法構建服務宿主的IHost物件,再呼叫IHost物件的擴展方法Run,AspNetCore應用程式就被啟動了,
var builder = Host.CreateDefaultBuilder(); IHost host = builder.Build(); host.Run(); -
配置請求管道
在呼叫Builder方法之前,呼叫ConfigureWebHost擴展方法,引數是Action
委托,構建請求管道, var builder = Host.CreateDefaultBuilder(); builder.ConfigureWebHost(options => { options.UseKestrel().Configure(app => { app.Run(context => context.Response.WriteAsync("HelloWord")); }); }); IHost host = builder.Build(); host.Run(); -
launchSetting.json組態檔
修改專案組態檔,并重新加載,這時你會發現 控制臺應用程式 變成了 web應用程式,
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup> </Project>CLI啟動,并指定Kestrel服務器
dotnet run --launch-profile helloworld
二、Asp.Net Core Mvc應用程式
-
注冊服務與中間件
AspNetCore Mvc就是建立在用來實作路由的EndpointRoutingMiddleware中間件和EndpointMiddleware中間件上的,所以我們開始改造,
內置的依賴注入框架以后會深入了解,現在拿來直接用,
var builder = Host.CreateDefaultBuilder(); builder.ConfigureWebHostDefaults(options => { options.ConfigureServices(configureServices => { //注冊服務 configureServices.AddRouting(); configureServices.AddControllersWithViews(); }).Configure(app => { //使用服務 app.UseRouting(); app.UseEndpoints(endpoint => { endpoint.MapControllers(); }); }); }); IHost host = builder.Build(); host.Run(); -
添加控制和視圖
添加一個類HelloController,然后繼承controller,
public class HelloController : Controller { [HttpGet("/hello/{name}")] public IActionResult SayHello(string name) { ViewData["Name"] = name; return View(); } }@{ ViewData["Title"] = "SayHello"; } <h1>@ViewData["Name"]</h1> -
注冊Startup型別
以上可以直接跑起來,現在開始注冊Startup類,約定大于配置嘛,所以我們把注冊服務配置中間件的程序提取出來,單獨放在一個類中,這樣就方便以后維護了,
修改Main方法
private static void Main(string[] args) { Host.CreateDefaultBuilder() .ConfigureWebHostDefaults(configure => configure.UseStartup<Startup>() ).Build().Run(); }Startup類
public class Startup { public void ConfigureServices(IServiceCollection services) => services.AddRouting().AddControllersWithViews(); public void Configure(IApplicationBuilder app) => app.UseRouting().UseEndpoints(point => point.MapControllers()); }
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/204704.html
標籤:.NET Core
