创建项目
今天我们来创建一个BlazorWebAssmbly项目,来看看项目结构是如何得,我们创建带模板得项目,会创建出一个demo,来看看项目结构。
创建的项目可以直接启动运行,首次启动会看见加载的过程,这个过程是正在下载.NET的捆绑包等资源
项目结构
我们可以看到如下的整体项目结构,我们可以一级一级来看看文件都有什么作用
Program.cs
这个文件相信大家都很熟悉了,是项目的入口函数,我们看看文件里写的内容都有什么作用,具体每段的解释已经写在注释里了,供同学参考
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;namespace BlazorApp1
{public class Program{public static async Task Main(string[] args){//运行 Blazor 的主机对象和其它默认配置var builder = WebAssemblyHostBuilder.CreateDefault(args);//表示在根组件集合中添加 App.razor 组件,//并将 App.razor 组件中的内容在index.html 文件的id=”app”的<div>元素中呈现builder.RootComponents.Add<App>("#app");//表示在根组件集合中添加 HeadOutlet 组件,该组件是 Blazor 提供的内置组件,用于呈现 PageTitle 和 HeadContent 组件提供的内容。builder.RootComponents.Add<HeadOutlet>("head::after");//注册服务builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });//启动项目await builder.Build().RunAsync();}}
}
在上面的代码中存在#app和head::after熟悉JS的同学们可能已经猜到了这个是选择器的作用
#app 表示选择id为app的元素
head::after 表示选择head标记底部
launchSettings.json
配置应用程序在开发环境中运行和调试使用的端口号及启动方式,在开发环境中使用;发布到生产环
境中不需要此配置文件。
我们从外层至内层来看看各个配置项的作用
$schema
指定json使用的标准
iisSettings
用于对 IIS 和 IIS Express 使用的端口号、windowsAuthentication 和 anonymousAuthentication 进行配置
"iisSettings": {"windowsAuthentication": false,"anonymousAuthentication": true,"iisExpress": {"applicationUrl": "http://localhost:16708","sslPort": 44358}
-
windowsAuthentication:是否启用 Windows 身份验证
-
anonymousAuthentication:是否启用匿名身份验证
-
applicationUrl:设置应用程序使用 IIS Express 运行时访问 http 协议的 URL 地址和端口号
-
sslPort:用于 SSL 安全访问的端口号
profiles
配置项目的启动方式,可配置 http、https 或 IIS Express启动方式
"profiles": {"http": {"commandName": "Project","dotnetRunMessages": true,"launchBrowser": true,"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}","applicationUrl": "http://localhost:5191","environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development"}},"https": {"commandName": "Project","dotnetRunMessages": true,"launchBrowser": true,"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}","applicationUrl": "https://localhost:7277;http://localhost:5191","environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development"}},"IIS Express": {"commandName": "IISExpress","launchBrowser": true,"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}","environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development"}}
}
http,https默认启动的是 Kestrel 服务器
- commandName:
IISExpress:启动 IIS Express 运行应用程序。
Project:启动 ASP.NET Core 内置的 Kestrel 服务器。 - launchBrowser:设置在应用程序运行或调试时是否自动打开默认浏览器访问
- applicationUrl:配置访问应用程序的 URL 地址,多个 URL 地址使用分号隔开。
- inspectUri:在 Blazor WebAssembly 应用程序上启用调试的 URL 地址。
- dotnetRunMessages:使用 dotnet run 命令运行项目时,是否显示反馈信息。
- environmentVariables:以键/值对的方式配置环境变量,“ASPNETCORE_ENVIRONMENT”: "Development"表示当前是开发环境
wwwroot 文件夹
默认存放静态文件的,默认使用 wwwroot 文件夹存放静态文件,如*.css、.js、.html 文件、图片、音视频等都是静态文件,静态文件不需要编译即可运行
下期将带来其余项目结构中的内容
Blazor-Blazor WebAssmbly项目结构(下)