C# ASP.NET Core 毕设入门教程

知识库
知识库文档
/tech-stacks/csharp/tutorial/C# ASP.NET Core 毕设入门教程.md

文档

C# / ASP.NET Core 毕设入门教程

前言

C# 在毕设中的三大主战场:ASP.NET Core Web API 后端WPF/WinForms 桌面应用Unity 游戏开发。本教程聚焦毕设最常用的 ASP.NET Core + EF Core 后端开发。


第一章:快速搭建 Web API 项目

三板斧创建项目

dotnet new webapi -n MyProject
cd MyProject
dotnet run
# 浏览器访问 http://localhost:5000/swagger

项目结构

MyProject/
├── Controllers/       # API 控制器
├── Models/            # 数据模型
├── Services/          # 业务逻辑
├── Data/              # DbContext
├── appsettings.json   # 配置文件
└── Program.cs         # 入口

第二章:构建一个完整的 CRUD API

Model

public class TodoItem
{
    public int Id { get; set; }
    public string Title { get; set; } = "";
    public bool IsCompleted { get; set; }
    public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
}

DbContext

public class AppDbContext : DbContext
{
    public DbSet<TodoItem> Todos => Set<TodoItem>();
    public AppDbContext(DbContextOptions<AppDbContext> o) : base(o) {}
}

Controller(最小 API 风格)

app.MapGet("/todos", async (AppDbContext db) => await db.Todos.ToListAsync());

app.MapPost("/todos", async (TodoItem todo, AppDbContext db) =>
{
    db.Todos.Add(todo);
    await db.SaveChangesAsync();
    return Results.Created($"/todos/{todo.Id}", todo);
});

app.MapDelete("/todos/{id}", async (int id, AppDbContext db) =>
{
    var todo = await db.Todos.FindAsync(id);
    if (todo is null) return Results.NotFound();
    db.Todos.Remove(todo);
    await db.SaveChangesAsync();
    return Results.NoContent();
});

第三章:毕设常用模式

三层架构

Controller → Service → Repository → DbContext

JWT 认证(毕设加分项)

dotnet add package Microsoft.AspNetCore.Authentication.JwtBearer
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options => {
        options.TokenValidationParameters = new() {
            ValidateIssuer = true,
            ValidateAudience = true,
            // ... 配置密钥和签发者
        };
    });

全局异常处理

app.UseExceptionHandler(errorApp =>
{
    errorApp.Run(async context =>
    {
        context.Response.StatusCode = 500;
        context.Response.ContentType = "application/json";
        await context.Response.WriteAsync("{\"error\":\"服务器内部错误\"}");
    });
});

第四章:毕设答辩要点

演示流程建议

  1. 启动项目 dotnet run
  2. 打开 Swagger 页面展示 API 列表
  3. 用 Swagger 调几个接口展示 CRUD
  4. 展示数据库中的数据(SQLite 用 DB Browser 打开)

常见答辩问题

  • "为什么选 ASP.NET Core 而不是 Spring Boot?" → 强调 .NET 生态、LINQ 开发效率、学习曲线
  • "数据库用的什么?" → SQLite 零部署,适合毕设
  • "安全性怎么保证?" → JWT 认证、参数校验、CORS 配置

思考题

  1. RESTful API 的设计原则有哪些?你的接口是否符合?
  2. async/await 在 ASP.NET Core 中的作用是什么?
  3. EF Core 的 Include()ThenInclude() 解决了什么问题?

信息

路径
/tech-stacks/csharp/tutorial/C# ASP.NET Core 毕设入门教程.md
更新时间
2026/5/30