襄陽(yáng)做網(wǎng)站哪家好b2b平臺(tái)有哪些
歡迎來(lái)到《小5講堂》
大家好,我是全棧小5。
這是《C#》系列文章,每篇文章將以博主理解的角度展開(kāi)講解,
特別是針對(duì)知識(shí)點(diǎn)的概念進(jìn)行敘說(shuō),大部分文章將會(huì)對(duì)這些概念進(jìn)行實(shí)際例子驗(yàn)證,以此達(dá)到加深對(duì)知識(shí)點(diǎn)的理解和掌握。
溫馨提示:博主能力有限,理解水平有限,若有不對(duì)之處望指正!
目錄
- 前言
- 創(chuàng)建Web應(yīng)用
- 創(chuàng)建新項(xiàng)目
- 選擇應(yīng)用模板
- 項(xiàng)目命名
- 選擇框架
- 項(xiàng)目結(jié)構(gòu)
- 結(jié)構(gòu)說(shuō)明
- 特性文件夾
- 資源文件夾
- 靜態(tài)資源存放:
- 頁(yè)面模型
- 配置參數(shù)
- 啟動(dòng)文件
- 總結(jié)
前言
技術(shù)更新?lián)Q代非常的快,轉(zhuǎn)眼間.net core 6.0也是長(zhǎng)期支持版本,.net 8都已經(jīng)出來(lái)了。
但是不同框架或者框架不同版本,創(chuàng)建的默認(rèn)應(yīng)用項(xiàng)目結(jié)構(gòu)都會(huì)有所不同,可能寫(xiě)法都不一樣了,畢竟在不斷優(yōu)化。
本篇文章就是通過(guò)創(chuàng)建默認(rèn)web應(yīng)用項(xiàng)目,以及講解TA默認(rèn)的結(jié)構(gòu)。
創(chuàng)建Web應(yīng)用
core更加專(zhuān)注的是配置化,默認(rèn)是沒(méi)有MVC結(jié)構(gòu)示例,這個(gè)也是需要配置化實(shí)現(xiàn)MVC控制器模型。
創(chuàng)建新項(xiàng)目
打開(kāi)Visual Studio 2022
選擇應(yīng)用模板
這里選擇的是ASP,NET Core Web 應(yīng)用
項(xiàng)目命名
填寫(xiě)項(xiàng)目名稱(chēng)、解決方案名稱(chēng)會(huì)自動(dòng)和項(xiàng)目名稱(chēng)一致,也可以修改。
并且可勾選,是否將解決方案和項(xiàng)目放在同一目錄中,就是xxx.sln文件
選擇框架
可以選擇框架版本,這里選擇的是.NET 6.0(長(zhǎng)期支持版本),默認(rèn)不勾選Docker啟動(dòng)
項(xiàng)目結(jié)構(gòu)
下面就是解決方案和項(xiàng)目不同在同一個(gè)目錄
結(jié)構(gòu)說(shuō)明
特性文件夾
在特性文件夾下有一個(gè)啟動(dòng)設(shè)置文件,launchSettings.json
一般情況下就使用默認(rèn)值,除非需要調(diào)整端口等信息
-
運(yùn)行效果
從上圖可以知道,默認(rèn)情況下是以本身項(xiàng)目自托管方式啟動(dòng),上圖對(duì)應(yīng)端口就是7021 -
IIS Express
-
默認(rèn)文件內(nèi)容
{"iisSettings": {"windowsAuthentication": false,"anonymousAuthentication": true,"iisExpress": {"applicationUrl": "http://localhost:52161","sslPort": 44306}},"profiles": {"Core6TestResouce": {"commandName": "Project","dotnetRunMessages": true,"launchBrowser": true,"applicationUrl": "https://localhost:7021;http://localhost:5043","environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development"}},"IIS Express": {"commandName": "IISExpress","launchBrowser": true,"environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development"}}}
}
資源文件夾
接觸core的小伙伴就會(huì)發(fā)現(xiàn),默認(rèn)會(huì)有一個(gè)wwwroot文件夾,TA用于存放靜態(tài)資源文件(如 HTML、CSS、JavaScript、圖像等)和客戶(hù)端腳本。
類(lèi)似于以前.net framework框架下的Content文件夾,原定俗稱(chēng)的意思吧,僅僅是建議,自己也可以不使用和自定義。
靜態(tài)資源存放:
wwwroot 文件夾是存放 web 應(yīng)用的靜態(tài)資源文件的默認(rèn)目錄。在開(kāi)發(fā) web 應(yīng)用時(shí),你可以將 HTML、CSS、JavaScript 等文件放置在該文件夾中,這些文件會(huì)被作為靜態(tài)資源直接發(fā)送給客戶(hù)端瀏覽器??蛻?hù)端瀏覽器可以通過(guò)訪問(wèn) URL 來(lái)獲取并呈現(xiàn)這些靜態(tài)資源。
1.靜態(tài)資源存放
wwwroot 文件夾是存放 web 應(yīng)用的靜態(tài)資源文件的默認(rèn)目錄。在開(kāi)發(fā) web 應(yīng)用時(shí),你可以將 HTML、CSS、JavaScript 等文件放置在該文件夾中,這些文件會(huì)被作為靜態(tài)資源直接發(fā)送給客戶(hù)端瀏覽器??蛻?hù)端瀏覽器可以通過(guò)訪問(wèn) URL 來(lái)獲取并呈現(xiàn)這些靜態(tài)資源。
2.靜態(tài)文件中間件
wwwroot 文件夾與靜態(tài)文件中間件密切相關(guān)。靜態(tài)文件中間件是 .NET Core 提供的一個(gè)組件,用于處理來(lái)自客戶(hù)端瀏覽器的靜態(tài)文件請(qǐng)求。當(dāng)使用這個(gè)中間件時(shí),靜態(tài)文件中間件會(huì)自動(dòng)查找并返回存放在 wwwroot 文件夾中的靜態(tài)資源文件。
3.默認(rèn)文件
wwwroot 文件夾中存放的是 web 應(yīng)用的靜態(tài)資源文件,其中可以包含一個(gè)或多個(gè)默認(rèn)文件。默認(rèn)文件是客戶(hù)端瀏覽器在訪問(wèn)網(wǎng)站根目錄時(shí)自動(dòng)請(qǐng)求的文件。例如,如果在 wwwroot 文件夾中有一個(gè)名為 index.html 的文件,那么當(dāng)訪問(wèn)網(wǎng)站根目錄時(shí),將自動(dòng)請(qǐng)求并返回該文件。
頁(yè)面模型
默認(rèn)情況下,有以下這些示例視圖文件
AddRazorPages 方法可以配置 Razor Pages(也稱(chēng)為頁(yè)面模型)。
這意味著可以在項(xiàng)目中創(chuàng)建 *.cshtml 視圖文件,并通過(guò) *.cshtml.cs 文件來(lái)處理頁(yè)面相關(guān)的邏輯。
當(dāng)使用 AddRazorPages 方法后,默認(rèn)的路由配置會(huì)將 *.cshtml 視圖文件與其對(duì)應(yīng)的 *.cshtml.cs 文件進(jìn)行關(guān)聯(lián)。
這意味著可以在項(xiàng)目中直接訪問(wèn) index.cshtml 視圖文件,而不需要?jiǎng)?chuàng)建控制器。
在 .NET Core 6.0 中,Razor Pages 已成為默認(rèn)的 Web 應(yīng)用模板,而控制器和視圖的結(jié)構(gòu)是面向 MVC 模型的應(yīng)用程序。
這樣做是為了簡(jiǎn)化開(kāi)發(fā)流程,并且更加注重于頁(yè)面的編寫(xiě)和處理邏輯。
配置參數(shù)
從core開(kāi)始,全局參數(shù)配置文件已經(jīng)改名為,appsettings.json,以前.net framework框架是叫web.config。
當(dāng)然也是可以自己自定義,只不過(guò)這個(gè)命名是可以直接和core自帶封裝的方法直接使用。
在 .NET Core 6.0 中,appsettings.json 是一個(gè)通用的配置文件,用于存儲(chǔ)應(yīng)用程序的配置參數(shù),可以在應(yīng)用程序中讀取和使用這些配置參數(shù)。
- 創(chuàng)建 appsettings.json 文件:
在項(xiàng)目的根目錄中,創(chuàng)建一個(gè)名為 appsettings.json 的文件,并在其中定義需要的配置參數(shù)。
{"Logging": {"LogLevel": {"Default": "Information","Microsoft.AspNetCore": "Warning"}},"AllowedHosts": "*","AppSettings": {"ApiKey": "your-api-key","SomeSetting": 123,"IsEnabled": true}
}
- 在應(yīng)用程序中讀取配置參數(shù)
在這里插入代碼片
在應(yīng)用程序的代碼中,可以通過(guò)配置提供程序(Configuration Provider)來(lái)讀取配置參數(shù)。
using Microsoft.Extensions.Configuration;// 創(chuàng)建配置構(gòu)建器
var configurationBuilder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);// 構(gòu)建配置
var configuration = configurationBuilder.Build();// 讀取配置參數(shù)
var apiKey = configuration["AppSettings:ApiKey"];
var someSetting = configuration.GetValue<int>("AppSettings:SomeSetting");
var isEnabled = configuration.GetValue<bool>("AppSettings:IsEnabled");
- 運(yùn)行效果
啟動(dòng)文件
在 .NET Core 6.0 中,確實(shí)對(duì)項(xiàng)目模板的結(jié)構(gòu)進(jìn)行了一些改變,將一部分配置移動(dòng)到
Program.cs 文件中。這樣做的目的是為了簡(jiǎn)化項(xiàng)目的結(jié)構(gòu)和減少冗余代碼。
- 默認(rèn)文件內(nèi)容’
var builder = WebApplication.CreateBuilder(args);// Add services to the container.
builder.Services.AddRazorPages();var app = builder.Build();// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{app.UseExceptionHandler("/Error");// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.app.UseHsts();
}app.UseHttpsRedirection();
app.UseStaticFiles();app.UseRouting();app.UseAuthorization();app.MapRazorPages();app.Run();
總結(jié)
整體上來(lái)說(shuō),.net core 6.0已經(jīng)在文件和代碼都做了精簡(jiǎn)
去掉了命名空間,去掉了入口方法等,非常精簡(jiǎn)
溫故而知新,不同階段重溫知識(shí)點(diǎn),會(huì)有不一樣的認(rèn)識(shí)和理解,博主將鞏固一遍知識(shí)點(diǎn),并以實(shí)踐方式和大家分享,若能有所幫助和收獲,這將是博主最大的創(chuàng)作動(dòng)力和榮幸。也期待認(rèn)識(shí)更多優(yōu)秀新老博主。