RapidBlazor 项目教程
1. 项目的目录结构及介绍
RapidBlazor 是一个基于 Blazor WebAssembly 的 Clean Architecture 解决方案模板。项目的目录结构如下:
RapidBlazor/
├── src/
│ ├── Application/
│ ├── Domain/
│ ├── Infrastructure/
│ ├── WebUI/
│ │ ├── Client/
│ │ ├── Server/
│ │ └── Shared/
├── tests/
│ ├── Application.IntegrationTests/
│ ├── Application.UnitTests/
│ └── WebUI.FunctionalTests/
├── .gitignore
├── .editorconfig
├── RapidBlazor.sln
├── README.md
└── LICENSE
目录介绍
- src/Application: 包含应用程序的业务逻辑和接口。
- src/Domain: 包含领域模型和实体。
- src/Infrastructure: 包含数据访问、外部服务和基础设施代码。
- src/WebUI: 包含 Web 用户界面代码,分为 Client、Server 和 Shared 三个部分。
- Client: Blazor WebAssembly 客户端代码。
- Server: ASP.NET Core 服务器端代码。
- Shared: 客户端和服务器共享的代码。
- tests: 包含应用程序的测试代码。
- .gitignore: Git 忽略文件配置。
- .editorconfig: 编辑器配置文件。
- RapidBlazor.sln: Visual Studio 解决方案文件。
- README.md: 项目说明文档。
- LICENSE: 项目许可证。
2. 项目的启动文件介绍
RapidBlazor 项目的启动文件位于 src/WebUI/Server
目录下,主要包括以下文件:
- Program.cs: 应用程序的入口点,配置和启动应用程序。
- Startup.cs: 配置应用程序的服务和中间件。
Program.cs
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
namespace WebUI.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>();
});
}
}
Startup.cs
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace WebUI.Server
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
// 配置服务
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseWebAssemblyDebugging();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseBlazorFrameworkFiles();
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
endpoints.MapFallbackToFile("index.html");
});
}
}
}
3. 项目的配置文件介绍
RapidBlazor 项目的配置文件主要包括 appsettings.json
和 appsettings.Development.json
,它们位于 src/WebUI/Server
目录下。
appsettings.json
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=RapidBlazorDb;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"LogLevel": {