核心概念
本章节介绍 Fastdotnet 的核心设计理念和架构思想。
📖 本章内容
🎯 设计理念
1. 约定优于配置
Fastdotnet 遵循"约定优于配置"的原则,减少不必要的配置项:
- 自动扫描和注册服务
- 默认合理的配置值
- 智能的路由规则
- 自动的数据库迁移
2. 模块化设计
系统采用高度模块化的设计:
- 核心框架:提供基础功能
- 业务模块:实现具体业务
- 插件系统:扩展功能边界
每个模块职责清晰,低耦合高内聚。
3. 多端支持
一套后端,多端复用:
┌──────────────┐
│ Backend │
│ (APIs) │
└──────┬───────┘
│
┌───────────┼───────────┬───────────┐
↓ ↓ ↓ ↓
Web Web Desktop Mobile
Admin App App App
(18888) (18887)- 管理端:系统管理和配置
- 应用端:用户业务操作
- 多平台:Web、桌面、移动
4. 插件化扩展
通过插件系统实现功能的动态扩展:
- ✅ 热插拔:无需重启
- ✅ 独立部署:单独发布
- ✅ 按需加载:灵活组合
- ✅ 生态共享:插件市场
🔑 核心概念速览
API 作用域
Fastdotnet 通过 ApiUsageScopeEnum 区分不同端的 API:
csharp
public enum ApiUsageScopeEnum
{
AdminOnly = 1, // 仅管理端
AppOnly = 2, // 仅应用端
Both = 3 // 两端通用
}使用特性标记:
csharp
[ApiUsageScope(ApiUsageScopeEnum.AdminOnly)]
public class SystemController : ControllerBase
{
// 仅管理端可访问
}插件生命周期
安装 → 加载 → 初始化 → 运行 → 卸载权限控制
用户 → 角色 → 权限 → 资源
↓
数据权限(行级/列级)📚 学习路径
新手路线
- 快速开始 → 5 分钟上手
- 创建第一个插件 → 实战练习
- 架构设计 → 理解整体设计
- 后端开发 → 深入学习后端
- 前端开发 → 深入学习前端
进阶路线
- 插件系统 → 掌握插件开发
- 权限模型 → 深入权限控制
- 性能优化 → 提升系统性能
- 安全最佳实践 → 保障系统安全
💡 常见问题
Q: 为什么要区分管理端和应用端?
A:
- 安全性:避免应用端暴露管理功能
- 性能:不同端可以独立优化
- 维护性:职责清晰,便于维护
- 扩展性:可以针对不同端定制功能
Q: 插件和模块有什么区别?
A:
- 模块:编译时确定,随主程序一起发布
- 插件:运行时加载,可以动态安装/卸载
Q: 如何选择数据库?
A:
- 开发测试:推荐 SQLite(零配置)
- 生产环境:根据团队技术栈选择
- SQL Server:Windows 环境
- PostgreSQL:开源首选
- MySQL:广泛使用
- 达梦:国产化需求