# KiteFramework **Repository Path**: superdu6/kite-framework ## Basic Information - **Project Name**: KiteFramework - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-10 - **Last Updated**: 2025-05-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Kite Framework
Kite Framework Logo

轻量级全栈开发框架

如风筝(Kite)般轻盈、灵活,自由翱翔于开发的蓝天

## 📋 目录 - [项目简介](#-项目简介) - [技术栈](#-技术栈) - [项目结构](#-项目结构) - [快速开始](#-快速开始) - [功能特性](#-功能特性) - [开发指南](#-开发指南) - [部署方案](#-部署方案) - [贡献指南](#-贡献指南) - [许可证](#-许可证) ## 📖 项目简介 Kite Framework 是一个基于 .NET Core 和 Vue.js 的全栈开发框架,旨在提供一个轻量级、高性能、易于扩展的开发平台。框架采用前后端分离的架构,后端使用 .NET Core 构建 RESTful API,前端使用 Vue.js 和 Element Plus 构建现代化的用户界面。 "Kite"(风筝)这一名称寓意着本框架如风筝般轻盈、灵活,能够自由飞翔在技术的天空中。正如风筝借助风力高高飞翔,Kite Framework 借助现代化的技术栈,帮助开发者快速构建应用,轻松应对各种开发需求。框架追求轻量化设计,摒弃繁重的依赖,同时保留强大的功能,让开发者的创意如风筝般无拘无束地实现。 特点: - **模块化设计**:易于扩展和维护 - **CQRS 架构**:命令和查询职责分离,提高系统的可扩展性和性能 - **完善的权限控制**:基于角色的访问控制(RBAC) - **统一的响应格式**:使用 AjaxResponse 统一前后端交互格式 - **前端组件化**:提供丰富的基础组件和业务组件 ## 🔧 技术栈 ### 后端 (KiteServer) - **.NET Core**:跨平台的高性能框架 - **Entity Framework Core**:ORM 框架 - **MediatR**:中介者模式实现,用于实现 CQRS - **Mapster**:对象映射工具 - **Swagger**:API 文档生成工具 ### 前端 (KiteWeb) - **Vue 3**:渐进式 JavaScript 框架 - **TypeScript**:JavaScript 的超集,提供类型检查 - **Element Plus**:基于 Vue 3 的 UI 组件库 - **Vite**:现代化的前端构建工具 - **Axios**:基于 Promise 的 HTTP 客户端 - **Pinia**:Vue 的状态管理库 ## 📂 项目结构 ### 后端结构 (KiteServer) ``` KiteServer/ ├── Api/ # API 控制器和模型 ├── Application/ # 应用服务层,包含命令和查询 ├── Domain/ # 领域模型和领域服务 ├── DomainShared/ # 领域共享层,定义 DTO 和常量 ├── Infrastructure/ # 基础设施层,包含工具类和过滤器 ├── Repository/ # 数据访问仓储 └── kiteServer.sln # 解决方案文件 ``` #### 核心目录说明 - **Api**:包含控制器和 API 模型,负责处理 HTTP 请求并返回响应 - **Application**:应用服务层,实现 CQRS 模式,包含命令(Commands)和查询(Queries) - **Domain**:包含领域模型、聚合根、实体和领域服务 - **Infrastructure**:提供基础设施支持,如过滤器、工具类和中间件 ### 前端结构 (KiteWeb) ``` KiteWeb/ ├── public/ # 静态资源 ├── src/ │ ├── api/ # API 请求封装 │ ├── assets/ # 资源文件(图片、字体等) │ ├── components/ # 公共组件 │ ├── composables/ # 组合式函数 │ ├── hooks/ # 自定义钩子 │ ├── layout/ # 布局组件 │ ├── router/ # 路由配置 │ ├── store/ # 状态管理 │ ├── styles/ # 全局样式 │ ├── utils/ # 工具函数 │ ├── views/ # 页面视图 │ ├── App.vue # 根组件 │ └── main.ts # 入口文件 ├── vite.config.ts # Vite 配置 ├── package.json # 项目依赖 └── tsconfig.json # TypeScript 配置 ``` #### 核心目录说明 - **api**:封装 API 请求,按模块组织 - **components**:公共组件,可复用于多个页面 - **layout**:布局组件,定义页面的整体结构 - **views**:页面组件,按模块组织 - **store**:基于 Pinia 的状态管理 ## 🚀 快速开始 ### 环境要求 - .NET Core SDK 8.0 或更高版本 - Node.js 20.0 或更高版本 - MySQL 8.0 或更高版本(或其他支持的数据库) ### 后端启动 1. 克隆项目到本地 ```bash git clone https://github.com/dushaoqi666/kiteFramework.git cd kiteFramework ``` 2. 配置数据库连接 修改 `KiteServer/Api/appsettings.json` 中的数据库连接字符串。 3. 运行后端项目 ```bash cd KiteServer dotnet restore dotnet run --project Api ``` ### 前端启动 1. 安装依赖 ```bash cd KiteWeb npm install # 或 yarn install 或 pnpm install ``` 2. 开发环境运行 ```bash npm run dev # 或 yarn dev 或 pnpm dev ``` 3. 生产环境构建 ```bash npm run build # 或 yarn build 或 pnpm build ``` ## 🧩 功能特性 ### 系统功能 - **用户管理**:用户的增删改查、分配角色、分配岗位、重置密码等 - **角色管理**:角色的增删改查、分配菜单、分配权限等 - **菜单管理**:菜单的增删改查、菜单排序等 - **岗位管理**:岗位的增删改查等 - **权限管理**:基于角色的权限控制 - **日志管理**:操作日志、登录日志等 - 其他模块逐步开发完善中..... ### 开发特性 - **CQRS 模式**:命令和查询责任分离,提高系统可扩展性 - **统一响应格式**:所有 API 返回统一的响应格式 - **全局异常处理**:集中处理系统异常,提供友好的错误提示 - **数据验证**:基于模型的数据验证 - **对象映射**:使用 Mapster 进行对象映射 - **代码生成**:提供代码生成工具,快速创建 CRUD 功能 ## 📝 开发指南 ### 后端开发 #### 添加新的 API 控制器 1. 在 `KiteServer/Api/Controllers` 中创建新的控制器类 2. 实现 CQRS 模式,创建相应的命令和查询类 3. 在控制器中注入 `IMediator` 和相应的 Queries 接口 4. 为每个操作添加适当的 HTTP 方法和路由 示例: ```csharp [ApiController] [Route("api/[controller]")] public class MyController : ControllerBase { private readonly IMediator _mediator; private readonly IMyQueries _myQueries; public MyController(IMediator mediator, IMyQueries myQueries) { _mediator = mediator; _myQueries = myQueries; } [HttpGet("list")] public async Task GetList([FromQuery] MyDto queryDto) { var result = await _myQueries.GetListAsync(queryDto); return new JsonResult(result); } [HttpPost] public async Task Add([FromBody] AddMyCommand command) { var result = await _mediator.Send(command); return new JsonResult(result); } } ``` #### 添加新的查询 1. 在 `KiteServer/Application/Queries` 中创建查询接口和实现类 2. 实现查询方法,并返回 `AjaxResponse` 类型的结果 #### 添加新的命令 1. 在 `KiteServer/Application/Commands` 中创建命令类和处理器类 2. 命令类应包含所有必要的属性 3. 处理器类应实现 `IRequestHandler` 接口 ### 前端开发 #### 添加新的 API 调用 1. 在 `KiteWeb/src/api` 目录下创建或修改相应的 API 模块 2. 使用封装好的 axios 实例发起请求 示例: ```typescript import request from '@/utils/request'; export function getList(params) { return request({ url: '/api/my/list', method: 'get', params }); } export function add(data) { return request({ url: '/api/my', method: 'post', data }); } ``` #### 添加新的页面 1. 在 `KiteWeb/src/views` 目录下创建新的页面组件 2. 在 `KiteWeb/src/router` 中添加相应的路由配置 ## 🚢 部署方案 ### Docker 部署 项目提供了 Docker 支持,可以使用 Docker Compose 一键部署整个应用。 1. 在项目根目录下创建 `docker-compose.yml` 文件: ```yaml version: '3' services: kite-server: build: context: ./KiteServer dockerfile: Dockerfile ports: - "5000:80" depends_on: - db environment: - ASPNETCORE_ENVIRONMENT=Production - ConnectionStrings__Default=Server=db;Database=kite;User=root;Password=yourpassword; kite-web: build: context: ./KiteWeb dockerfile: Dockerfile ports: - "80:80" depends_on: - kite-server db: image: mysql:8.0 environment: - MYSQL_ROOT_PASSWORD=yourpassword - MYSQL_DATABASE=kite volumes: - db-data:/var/lib/mysql volumes: db-data: ``` 2. 执行部署命令: ```bash docker-compose up -d ``` ### 传统部署 #### 后端部署 1. 发布后端项目: ```bash cd KiteServer dotnet publish -c Release -o publish ``` 2. 将发布后的文件部署到 IIS 或其他 Web 服务器。 #### 前端部署 1. 构建前端项目: ```bash cd KiteWeb npm run build ``` 2. 将 `dist` 目录下的文件部署到 Nginx 或其他 Web 服务器。 Nginx 配置示例: ```nginx server { listen 80; server_name your-domain.com; location / { root /path/to/dist; index index.html; try_files $uri $uri/ /index.html; } location /api { proxy_pass http://localhost:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` ## 🤝 贡献指南 我们欢迎任何形式的贡献,包括但不限于: - 提交问题和建议 - 改进文档 - 添加新功能 - 修复 bug 贡献流程: 1. Fork 本仓库 2. 创建你的特性分支 (`git checkout -b feature/amazing-feature`) 3. 提交你的更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 创建一个 Pull Request ## 📄 许可证 本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。 ---

© 2025 Kite Framework Team. All Rights Reserved.