Skip to content

⚡ C# 后端学习概要

掌握C#、ASP.NET Core WebAPI、EF Core,构建企业级后端应用

🛠️ 技术栈概览

🔷

C#

Microsoft 强类型编程语言

基础必学
🌐

ASP.NET Core

跨平台 Web 框架

核心技能
🗄️

EF Core

对象关系映射框架

数据访问
💾

SQL

数据库

数据存储

📚 学习资源推荐

📖 官方文档

🔧 开发工具

🗓️ 学习路径规划

C# 语言基础

第1-3周🔄 学习中
语法基础面向对象集合与泛型异步编程LINQ

💡 点击标记完成进度,跟踪学习状态

ASP.NET Core WebAPI

第4-6周🔄 学习中
RESTful API控制器与路由中间件依赖注入身份验证

💡 点击标记完成进度,跟踪学习状态

Entity Framework Core

第7-8周🔄 学习中
Code First数据模型CRUD操作关系映射迁移管理

💡 点击标记完成进度,跟踪学习状态

综合实战项目

第9-10周🔄 学习中
项目架构API设计数据库设计测试部署

💡 点击标记完成进度,跟踪学习状态

📝 每周学习任务详情

1 C# 基础入门与环境搭建

搭建好开发环境,掌握C#最基础的语法,能够编写简单的控制台应用程序。

🔄 进行中

📚 学习内容

写在前面
  • 阅读此部分,建立正确的学习心态。
开发环境搭建
  • 安装 .NET SDK
  • 安装 Visual Studio 2022 (推荐,社区版免费) 或 VS Code (配合C#插件)。
  • 创建并运行第一个 "Hello World" 控制台应用。
基础语法
  • 变量、数据类型 (int, string, bool, double 等)。
  • 运算符 (算术、关系、逻辑)。
  • 控制流 (if-else, switch, for, while, do-while)。
  • 数组。
  • 方法/函数的定义与调用。

💻 实践任务

  • 编写一个简单的计算器控制台程序。
  • 编写一个'猜数字'游戏。

2 C# 核心 - 面向对象编程 (OOP)

深刻理解面向对象的思想,并能在C#中应用。这是未来构建复杂系统的基石。

🔄 进行中

📚 学习内容

面向对象
  • 类 (Class) 与对象 (Object)。
  • 封装 (Encapsulation): 字段、属性、访问修饰符 (public, private)。
  • 继承 (Inheritance)。
  • 多态 (Polymorphism): virtual, override, abstract。
  • 接口 (Interface)。
  • 构造函数 (Constructor)。
  • static 关键字。

💻 实践任务

  • 设计并实现一组类来模拟一个场景,例如"学校" (包含学生类、教师类、课程类)。
  • 使用接口定义一个"可攻击"的行为,让"战士"和"法师"类都实现它。

3 C# 实用特性 - 集合与LINQ

掌握处理一组数据的常用方法,并学会使用LINQ高效地查询和操作数据。

🔄 进行中

📚 学习内容

集合
  • List<T>: 最常用的动态数组。
  • Dictionary<TKey, TValue>: 键值对集合。
  • 了解 Array, Queue<T>, Stack<T> 等。
LINQ (语言集成查询)
  • 理解其核心思想:像查询数据库一样查询集合。
  • 掌握常用方法: Where, Select, OrderBy, FirstOrDefault, ToList, Count, Any。
  • 学习方法语法 (Method Syntax) 和查询语法 (Query Syntax)。

💻 实践任务

  • 创建一个学生列表 (List<Student>),每个学生有ID、姓名、年龄、分数等属性。
  • 使用LINQ完成以下查询:
  • - 找出所有分数及格的学生。
  • - 按年龄对学生进行排序。
  • - 只获取所有学生的名字列表。
  • - 找到第一个姓"王"的学生。

4 C# 进阶与 WebAPI 初探

接触C#的异步编程,并创建你的第一个ASP.NET Core WebAPI项目。

🔄 进行中

📚 学习内容

异步编程
  • 理解为什么需要异步 (async/await)。
  • 掌握 Task 和 Task<TResult>。
  • 学习 async 和 await 关键字的用法。
第一个WebAPI程序
  • 使用 Visual Studio 创建一个新的 "ASP.NET Core Web API" 项目。
  • 理解项目结构:Program.cs, Controllers 文件夹, appsettings.json。
  • 运行项目,了解 Swagger UI 的作用。
  • 尝试修改默认的 WeatherForecastController,添加一个新的API接口。

💻 实践任务

  • 将一个模拟耗时操作(如 Task.Delay)的同步方法改写为异步方法。
  • 创建一个 TodoController,提供一个返回静态待办事项列表的GET接口。

5 ASP.NET Core 核心机制

深入理解ASP.NET Core的两个灵魂:中间件和依赖注入。

🔄 进行中

📚 学习内容

中间件 (Middleware)
  • 理解请求管道 (Request Pipeline) 的概念。
  • 学习 app.Use() 和 app.Run()。
  • 尝试编写一个简单的自定义中间件(例如,记录请求耗时)。
依赖注入 (DI - Dependency Injection)
  • 理解为什么要使用DI (解耦)。
  • 学习三种生命周期: Singleton, Scoped, Transient。
  • 在 Program.cs 中注册服务,并在 Controller 中通过构造函数注入服务。
路由 (Routing)
  • 精通特性路由 (Attribute Routing) ([Route], [HttpGet], [HttpPost], etc.)。

💻 实践任务

  • 创建一个 LogService,通过DI注入到 TodoController 中,用来记录操作日志。
  • 自定义一个中间件,用于在请求头中检查是否存在特定的 API-KEY。

6 WebAPI 开发深化

掌握WebAPI开发中的常见任务:配置、模型绑定与验证。

🔄 进行中

📚 学习内容

配置 (Configuration)
  • 学习如何从 appsettings.json 读取配置信息。
模型绑定 (Model Binding)
  • 理解API如何自动将HTTP请求中的数据 (JSON body, query string, route data) 映射到C#方法的参数上。
模型验证 (Model Validation)
  • 使用数据注解 (Data Annotations) 如 [Required], [StringLength], [Range] 来验证输入模型。
  • 理解 ModelState.IsValid 的作用。
过滤器 (Filters)
  • 初步了解Action Filter,可以用于处理一些横切关注点。

💻 实践任务

  • 为创建待办事项 (POST /api/todo) 的接口创建一个 CreateTodoDto 模型,并添加验证规则。
  • 在接口方法中检查 ModelState,如果验证失败,返回 400 Bad Request。
  • 将数据库连接字符串配置在 appsettings.json 中并读取。

7 数据访问 - Entity Framework Core

将数据库集成到你的WebAPI项目中,实现数据的持久化。

🔄 进行中

📚 学习内容

数据库基础
  • (如果需要,快速复习SQL基础)
Entity Framework Core (EF Core)
  • 安装 EF Core 相关的 NuGet 包。
  • Code-First 开发模式: 先写C#实体类,再由EF Core生成数据库。
  • 创建 DbContext。
  • 配置实体 (Entity) 和数据库连接。
  • 迁移 (Migrations): 使用命令行工具 (dotnet ef) 创建和应用数据库迁移。
  • 在服务中注入 DbContext 并执行基本的 CRUD (增删改查) 操作。

💻 实践任务

  • 为你的 Todo 应用创建 TodoItem 实体类。
  • 创建 TodoDbContext。
  • 使用 Migrations 在本地数据库 (如 SQL Server LocalDB 或 SQLite) 中生成 TodoItems 表。
  • 重写 TodoController 中的所有接口,使其从操作静态列表改为操作数据库。

8 实战项目启动与核心功能

参照网站的实战项目,从零开始搭建一个结构更合理的项目,并实现核心业务功能。

🔄 进行中

📚 学习内容

实战项目
  • 学习分层架构思想 (例如: Domain, Application, Infrastructure, API 四层)。
  • 搭建项目结构,创建不同的类库项目。
  • 设计并实现核心实体(如用户、文章、评论等)。
  • 完成核心业务的CRUD接口开发。
统一格式
  • 统一异常处理: 使用中间件捕获全局异常,返回统一的错误信息。
  • 统一返回格式: 封装一个通用的API响应类,让所有接口返回相同结构的JSON。

💻 实践任务

  • 按照分层思想,动手搭建一个简单的博客API项目。
  • 实现文章 (Post) 的增、删、改、查系列接口。
  • 添加全局异常处理中间件。

9 项目功能完善 - 认证与授权

为项目集成安全机制,保护你的API接口。

🔄 进行中

📚 学习内容

认证与授权 (Authentication & Authorization)
  • 理解认证(你是谁)和授权(你能做什么)的区别。
  • 学习 JWT (JSON Web Token) 的工作原理。
  • 在项目中集成JWT:
  • - 用户注册/登录接口,登录成功后颁发Token。
  • - 配置JWT认证中间件。
  • - 在需要保护的接口上添加 [Authorize] 特性。

💻 实践任务

  • 为你的博客API项目添加用户注册和登录接口。
  • "创建文章"接口必须是登录用户才能访问。
  • "删除文章" 接口必须是文章作者本人才能访问(权限)。

10 部署与总结

学习如何将你的WebAPI应用部署到服务器上,并对整个学习过程进行回顾。

🔄 进行中

📚 学习内容

部署 (Deployment)
  • Docker 简介: 理解容器化的优势。
  • 编写 Dockerfile 来容器化你的ASP.NET Core应用。
  • 学习基本的 Docker 命令 (build, run, ps, stop)。
  • 了解部署到 Linux 服务器的基本流程。
总结
  • 回顾这10周的学习内容,整理知识体系,形成自己的知识图谱。
  • 思考下一步的学习方向(如:微服务、gRPC、Blazor、分布式系统等)。

💻 实践任务

  • 为你的博客API项目编写一个 Dockerfile。
  • 在本地使用 Docker 构建镜像并运行容器。
  • 通过 localhost:port 访问容器化的API,并用Postman等工具测试。

🎯 综合实战项目

运用所学技术栈,构建一个完整的个人博客管理系统

🔐 用户认证

JWT身份验证与授权

📝 内容管理

博客文章CRUD操作

🗄️ 数据存储

EF Core + SQL Server

🌐 RESTful API

标准化接口设计

💡 学习建议

🎯 高效学习策略

  • 理论与实践结合:每学习一个概念立即编写代码验证
  • 循序渐进:先掌握C#基础,再学习框架应用
  • 项目驱动:通过实际项目巩固所学知识
  • 社区交流:积极参与技术社区讨论,解决问题
  • 版本管理:使用Git管理代码,养成良好习惯

📈 学习成果检验

  • ✅ 能够使用C#编写面向对象程序
  • ✅ 熟练创建和配置ASP.NET Core WebAPI项目
  • ✅ 掌握EF Core进行数据库操作
  • ✅ 能够设计和实现RESTful API
  • ✅ 理解依赖注入和中间件概念
  • ✅ 完成一个完整的后端项目