Skip to content

核心概念

本章节介绍 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
{
    // 仅管理端可访问
}

插件生命周期

安装 → 加载 → 初始化 → 运行 → 卸载

权限控制

用户 → 角色 → 权限 → 资源

数据权限(行级/列级)

📚 学习路径

新手路线

  1. 快速开始 → 5 分钟上手
  2. 创建第一个插件 → 实战练习
  3. 架构设计 → 理解整体设计
  4. 后端开发 → 深入学习后端
  5. 前端开发 → 深入学习前端

进阶路线

  1. 插件系统 → 掌握插件开发
  2. 权限模型 → 深入权限控制
  3. 性能优化 → 提升系统性能
  4. 安全最佳实践 → 保障系统安全

💡 常见问题

Q: 为什么要区分管理端和应用端?

A:

  • 安全性:避免应用端暴露管理功能
  • 性能:不同端可以独立优化
  • 维护性:职责清晰,便于维护
  • 扩展性:可以针对不同端定制功能

Q: 插件和模块有什么区别?

A:

  • 模块:编译时确定,随主程序一起发布
  • 插件:运行时加载,可以动态安装/卸载

Q: 如何选择数据库?

A:

  • 开发测试:推荐 SQLite(零配置)
  • 生产环境:根据团队技术栈选择
    • SQL Server:Windows 环境
    • PostgreSQL:开源首选
    • MySQL:广泛使用
    • 达梦:国产化需求

🔗 相关链接

Released under the MIT License.