⚡ C# 后端学习概要
掌握C#、ASP.NET Core WebAPI、EF Core,构建企业级后端应用
🛠️ 技术栈概览
C#
Microsoft 强类型编程语言
基础必学ASP.NET Core
跨平台 Web 框架
核心技能EF Core
对象关系映射框架
数据访问SQL
数据库
数据存储📚 学习资源推荐
📖 官方文档
- C# 官方文档 最权威的语言参考
- ASP.NET Core 文档 完整的框架指南
- EF Core 文档 数据访问技术详解
🔧 开发工具
- Visual Studio 2022 Community 免费强大的IDE
- Visual Studio Code 轻量级编辑器
- Rider JetBrains 团队的 IDE
🗓️ 学习路径规划
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
- ✅ 理解依赖注入和中间件概念
- ✅ 完成一个完整的后端项目