TriviaR 开源项目教程
1. 项目的目录结构及介绍
TriviaR 项目的目录结构如下:
TriviaR/
├── src/
│ ├── TriviaR.Server/
│ │ ├── Controllers/
│ │ ├── Hubs/
│ │ ├── Models/
│ │ ├── Program.cs
│ │ ├── Startup.cs
│ │ ├── appsettings.json
│ │ ├── TriviaR.Server.csproj
│ ├── TriviaR.Web/
│ │ ├── wwwroot/
│ │ ├── Pages/
│ │ ├── Shared/
│ │ ├── _Imports.razor
│ │ ├── App.razor
│ │ ├── index.html
│ │ ├── Program.cs
│ │ ├── TriviaR.Web.csproj
├── tests/
│ ├── TriviaR.Tests/
│ │ ├── TriviaR.Tests.csproj
├── .gitignore
├── LICENSE
├── README.md
├── TriviaR.sln
目录结构介绍
src/
: 包含项目的源代码。TriviaR.Server/
: 服务器端代码,包含控制器、Hub、模型等。Controllers/
: 包含 API 控制器。Hubs/
: 包含 SignalR Hub。Models/
: 包含数据模型。Program.cs
: 服务器端程序入口。Startup.cs
: 服务器端配置文件。appsettings.json
: 服务器端配置文件。TriviaR.Server.csproj
: 服务器端项目文件。
TriviaR.Web/
: 客户端代码,包含静态文件、页面、共享组件等。wwwroot/
: 包含静态文件。Pages/
: 包含 Razor 页面。Shared/
: 包含共享组件。_Imports.razor
: 导入常用命名空间。App.razor
: 应用程序根组件。index.html
: 客户端入口页面。Program.cs
: 客户端程序入口。TriviaR.Web.csproj
: 客户端项目文件。
tests/
: 包含测试代码。TriviaR.Tests/
: 包含单元测试项目。TriviaR.Tests.csproj
: 单元测试项目文件。
.gitignore
: Git 忽略文件。LICENSE
: 项目许可证。README.md
: 项目说明文档。TriviaR.sln
: 解决方案文件。
2. 项目的启动文件介绍
服务器端启动文件
Program.cs
:using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; namespace TriviaR.Server { public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); } }
客户端启动文件
Program.cs
:using Microsoft.AspNetCore.Components.WebAssembly.Hosting; using Microsoft.Extensions.DependencyInjection; using System; using System.Net.Http; using System.Threading.Tasks; namespace TriviaR.Web { public class Program { public static async Task Main(string[] args) { var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add<App>("#app"); builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); await builder.Build().RunAsync(); } } }
3. 项目的配置文件介绍
服务器端配置文件
appsettings.json
: