# AsDI.BaseProject **Repository Path**: as-di-tech/as-di.-base-project ## Basic Information - **Project Name**: AsDI.BaseProject - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-23 - **Last Updated**: 2025-04-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AsDI.BaseProject #### 介绍 AsDI.BaseProject是基于AsDI的基本Web前后端项目框架。该项目使用后端使用AsDI框架实现,前端采用geeker admin实现(如果喜欢用其它的前端框架,可以直接改换,当前仅是一个示例)。项目包含了基本的用户、部门、菜单、角色、权限、日志、文件等功能。开箱即用。并且允许商业使用。 #### 软件架构 软件整体架构分为以下六个部分: 1. API(AsDI.BaseProject.API) 包含了前端访问的所有接口。在这一个项目中,你既可以写Controller,也可以写API(不建议写Controller,建议写API,API允许使用接口,便于面向切面编程) 2. IServices(AsDI.BaseProject.IServices) 服务接口。API引用此项目,服务接口是整个项目的核心 3. Services(AsDI.BaseProject.Services) 服务实现。API项目不一定需要引用此项目,在微服务时,服务的实现可以与API分离,单独发布。但在单服务器时,API项目需要引用服务实现(仅引用,为减少耦合,请不要在API项目中直接调用任何服务实现中的对象,以便于以后项目扩展) 4. Dtos(AsDI.BaseProject.Services) 服务传递实体。在服务间或API与前端之间传递的实体对象 5. Repositories(AsDI.BaseProject.Repositories) 数据逻辑层。用于与数据库交互。服务实现项目调用此项目。其它项目不要调用此项目 6. Utils(AsDI.BaseProject.Utils) 工具包。用于编写一些常用的方法。所有层都可以调用 项目引用关系如下: ![输入图片说明](pic/image.png) #### 安装教程 1. 下载项目以后,将数据还原出来,数据库文件在 AsDI.BaseProject.API/wwwroot/Initial/struct.sql 文件中 2. 使用Visual Studio打开项目,并将AsDI.Baseproject.API项目设为启动项目 3. 修改AsDI.BaseProject.API项目下的appsettings.json文件,将数据库指向你还原的数据库地址 4. 启动项目,此时即可以看到后端服务的swaggerAPI 5. 使用VS Code打开前端项目,前端项目在Front-End文件夹内。然后运行前端项目 #### 开发说明 下面以“订单”为例,说明开发过程: 1. 在数据库创建 **t_order** 表,业务字段包括:OrderNo、OrderName、OrderType、OrderDetail、Amount、OrderTime,基本字段包括:Id、CreatedBy、CreatedTime、ModifiedBy、ModifiedTime、RowVersion、IsDeleted、Status 2. 在AsDI.BaseProject.Repositories项目中,新建 **OrderEntity** 。在/Entities/Biz目录下,新建 OrderEntity 类,并增加业务字段。该类继承 **BaseEntity** 类,并增加标注 **[Table("t_order")]** 3. 在AsDI.BaseProject.Repositories项目中,新建 **IOrderRepository** 。在/Biz目录下,新建 IOrderRepository 接口。该接口继承 **IBaseRepository** 接口,并增加标注 **[Repository]** 4. 在AsDI.BaseProject.Dtos项目中,新建 **OrderDTO** 。在/Biz目录下,新建OrderDTO类,并增加业务字段。该类继承 **BaseDTO** 类 5. 在AsDI.BaseProject.IServices项目中,新建 **IOrderService** 。在/Biz目录下,新建IOrderServicer接口。该接口继承 **IBaseService** 接口 5. 在AsDI.BaseProject.Services项目中,新建 **OrderService** 。在/Biz目录下,新建OrderServicer类。该类继承 **BaseService** 类以及 **IOrderService** 接口,并增加标注 **[Service]**。同时OrderService需要使用到数据库,需要注入 **IOrderRepository**,注入方式可以是属性或变量注入,也可以是构造注入 6. 在AsDI.BaseProject.API项目中,新建 **IOrderAPI** 。在/APIs/Biz目录下,新建IOrderAPI接口,接口继承 **IBaseApi** 接口,并增加标注 **[RestApi("/order")]** 用于指定路径,增加标注 **[PermissionGroup("订单管理", "order-")]** 用于指定访问权限组 7. 在AsDI.BaseProject.API项目中,新建 **OrderAPI** 。在/APIs/Biz/Implement目录下,新建OrderAPI类,该类继承 **BaseApi** 类和 **IOrderAPI** 接口,,并增加标注 **[Service]**。同时OrderAPI需要使用到服务,需要注入 **IOrderService**,注入方式可以是属性或变量注入,也可以是构造注入 以上开发就做完了,订单的增删改查的工作 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request