📚
Hoa Framework
  • 一、框架指南
  • 二、功能特性
  • 三、源码结构
  • 四、代码规范
  • 五、入门指南
  • 六、依赖注入/控制反转
  • 七、控制器和服务
  • 八、对象映射指南
  • 九、数据库操作指南
    • 9.1、正向工程(Code First)
    • 9.2、逆向工程(Database First)
    • 9.3、关于仓储(IRepository)
    • 9.4、增删改操作
    • 9.5、查询操作
    • 9.6、DataSet、DataTable 操作
    • 9.7、查询结果集映射
    • 9.8、批量增删改操作
    • 9.9、存储过程、视图、函数操作
    • 9.10、工作单元和事务
    • 9.11、多上下文、读写分离
    • 9.12、切面上下文(TangentDbContext)
    • 9.13、其他操作
    • 9.14、EF Core 高性能
    • 9.15、常见错误
  • 十、开放接口指南
    • 10.1、RESTFul 和 Swagger
    • 10.2、规范化返回值
  • 十一、数据校验
  • 十二、安全授权
  • 十三、异常处理
  • 十四、日志管理
  • 十五、配置管理
  • 十六、缓存管理
  • 十七、内置工具类
    • 17.1、数据加解密
  • 十八、跨域处理
  • 十九、筛选拦截器(未)
  • 二十、进程服务(Daemon)
  • 二十一、编写测试
    • 20.1、单元测试
    • 20.2、基准测试
    • 20.3、性能测试
  • 二十二、托管部署
    • 22.1、IIS 托管部署
    • 22.2、Nginx 托管部署
    • 22.3、Docker 容器部署
  • 二十三、性能分析(MiniProfiler)
  • 二十四、其他功能
    • 23.1、第三方包管理
    • 23.2、文件上传下载
    • 23.3、Razor 视图引擎
    • 23.4、生成客户端请求代码
    • 23.5、快捷操作
  • 二十五、Docker 容器化
    • 25.1、Docker 介绍
    • 25.2、Docker 安装
    • 25.3、Docker 安装服务
    • 25.4、Docker 常用命令
    • 25.6、Docker run 常用命令
    • 25.7、Docker-Compose 介绍
    • 25.8、docker-compose.yml
    • 25.9、Docker-Compose 常用命令
    • 25.10、Docker-Compose 转换 docker run
    • 25.11、Docker 构建自己的镜像
    • 25.12、Dockerfile指南
    • 25.13、Dockerfile 常用命令
    • 25.14、Dockerfile 打包、上传、分享
    • 25.15、Docker 数据卷
    • 25.16、Docker 域网络
    • 25.17、Docker + Nginx 实现分布式集群、负载均衡
  • 二十六、DevOps 持续部署集成
    • 26.1、DevOps 介绍
    • 26.2、持续集成、交付、部署
    • 26.3、Jenkins 介绍
    • 26.4、Jenkins 安装
    • 26.5、Jenkins 初始化
    • 26.6、Jenkins 实战演练
    • 26.7、Jenkis 项目配置
    • 26.8、Jenkins 插件
  • 二十七、OpenXml/Excel 操作
  • 二十八、SaaS 多租户
  • 二十九、Git 代码管理
    • 29.1、Git 介绍
    • 29.2、Git 安装
    • 29.3、Git 基础配置
    • 29.4、Git 工作流程
    • 29.5、Git 重要概念
    • 29.6、Git 创建仓库
    • 29.7、Git 基本操作
    • 29.8、Git 分支管理
    • 29.9、Git 查看提交历史
    • 29.10、Git 标签
    • 29.11、Git 拉取/获取/推送
    • 28.12、Git GUI工具
    • 29.13、Git 私有化部署
    • 29.14、Git 推荐开发模式
    • 29.15、Svn 转 Git
  • 贡献代码
  • 更新日志
由 GitBook 提供支持
在本页
  • Hoa 项目层
  • Hoa.Application 项目层
  • Hoa.Core 项目层
  • Hoa.EntityFrameworkCore 项目层
  • Hoa.UnitTest.Specs 项目层
  • Hoa.Web.Core 项目层
  • Hoa.Web.Host 项目层
  • Hoa.MSTest.SpecFlow 项目层
  • Hoa.MSTest.Projects 项目层
  • Hoa.MSTest.Remote 项目层
  • Hoa.Worker.Projects 项目层

这有帮助吗?

三、源码结构

Hoa Framework 采用自动抽象工厂多层设计模式。

Hoa 项目层

Hoa 项目层是Hoa Framework 的核心层,支撑着整个应用的初始化和管理工作。

HoaFramework                  
├─Hoa                                框架核心层(由框架作者维护)
│  ├─AppConfigure                    应用全局配置选项目录
│  ├─Authorization                   应用授权目录
│  │  ├─HoaMultipleClassifyPolicy    内置多应用授权策略目录
│  ├─DbManager                       数据库操作管理目录
│  │  ├─Attributes                   特性目录
│  │  ├─Collections                  分页拓展目录
│  │  ├─ContextPool                  上下文池目录
│  │  ├─Extensions                   拓展目录
│  │  ├─Filters                      过滤器目录
│  │  ├─Helpers                      帮助库过滤器目录
│  │  ├─Identifiers                  多上下文标识目录
│  │  ├─Interceptors                 拦截器目录
│  │  ├─Repositories                 内置EF Core仓储目录
│  │  ├─Tangents                     切面上下文目录
│  │  ├─Tenant                       多租户目录
│  ├─Dependencies                    注入/反转依赖目录
│  ├─Encryption                      数据加密目录
│  ├─Exception                       内置异常目录
│  ├─Extensions                      拓展方法目录
│  ├─Helpers                         帮助类目录
│  ├─Interceptors                    内置拦截器目录
│  ├─IocManager                      依赖注入/控制反转目录
│  ├─Jwt                             Jwt授权目录
│  ├─Models                          碎片类目录
│  ├─ServiceController               动态WebApi目录
│  │  ├─Attributes                   特性目录
│  ├─Swagger                         Swaggger管理目录
│  ├─Views                           视图相关管理目录
│  │  ├─Models                       模型目录
│  ├─Workbook                        Excel操作目录
│  ├─AppGlobal.cs                    全局应用类
│  ├─HoaModule.cs                    依赖配置管理类

Hoa.Application 项目层

Hoa.Application 项目层是应用业务代码编写的主要层。

HoaFramework        
├─Hoa.Application                    业务代码主要编写层
│  ├─Authorization                   内置授权示范例子目录
│  ├─AppConst.cs                     业务层常量配置类
│  ├─HoaApplicationModule.cs         依赖配置管理类
│  ├─HoaAppService.cs                业务层公共代码定义类
│  ├─ManualMapper.cs                 模型映射配置类

Hoa.Core 项目层

Hoa.Core 项目层是数据库实体模型、自定义仓储编写的主要层。

HoaFramework        
├─Hoa.Core                           实体模型、自定义仓储主要编写层
│  ├─DbConst.cs                      数据库常量配置类
│  ├─DbScalarFunctions.cs            数据库标量函数配置类
│  ├─HoaCoreModule.cs                依赖配置管理类

Hoa.EntityFrameworkCore 项目层

Hoa.EntityFrameworkCore 项目层是EF Core构建 代码先行(Code First)和 逆向工程(Database First)代码生成器主要层。

HoaFramework        
├─Hoa.EntityFrameworkCore            EF Core 实体生成器及配置层
│  ├─DbContextBakFiles               HoaDbContext生成备份目录
│  ├─db_to_entities.ps1              逆向工程生成模型脚本文件
│  ├─HoaDbContext.cs                 EF Core 数据库操作上下文类
│  ├─ManualHoaDbContext.cs           存储过程、视图、函数、自定义模型配置类
│  ├─HoaEntityFrameworkCoreModule.cs 依赖配置管理类

Hoa.UnitTest.Specs 项目层

HoaFramework   
├─Hoa.UnitTest.Specs                 UnitTest和SpecFlow 单元测试层
│  ├─Features                        测试故事板目录
│  ├─SpecFlowPlusRunner              SpecFlow测试自动生成目录
│  ├─StepDefinitions                 Feature故事板生成的测试目录
│  ├─Support                         单元测试帮助类目录(包含依赖注入,初始化等)

Hoa.Web.Core 项目层

Hoa.Web.Core 项目层是Web应用的核心公共代码配置层。

HoaFramework
├─Hoa.Web.Core                       Web应用公共代码配置层(过滤器、MVC拓展、服务拓展等)
│  ├─Filters                         过滤器目录
│  ├─MiddlewareExtensions            中间件拓展目录
│  ├─Middlewares                     中间件目录
│  ├─MvcBuilderExtensions            MvcBuilder拓展目录(拓展Mvc功能)
│  ├─ServiceExtensions               Startup 服务拓展目录
│  ├─HoaWebConfigure.cs              Web应用启动初始化文件
│  ├─HoaWebCoreModule.cs             依赖配置管理类

Hoa.Web.Host 项目层

Hoa.Web.Host 项目层是我们框架自带的WebAPI应用层,也就是我们的启动层。

HoaFramework
├─Hoa.Web.Host                       Web应用层(启动项)
│  ├─Properties                      服务器主机启动配置目录
│  ├─wwwroot                         静态资源存放目录
│  ├─Controllers                     默认控制器目录(支持MVC所有功能)
│  ├─appsettings.json                全局框架应用配置文件
│  ├─appsettings.Development.json    全局框架应用配置文件(开发环境)
│  ├─nlog.config                     NLog 日志组件配置文件
│  ├─Program.cs                      应用启动程序类
│  ├─Startup.cs                      应用启动挂载文件

Hoa.MSTest.SpecFlow 项目层

Hoa.MSTest.SpecFlow 项目层是单元测试核心功能层,也就是所有的单元测试需要的模型、服务、接口都应该在这里定义。

HoaFramework
├─Hoa.MSTest.SpecFlow                单元测试核心层
│  ├─Dependencies                    依赖注入目录
│  ├─Extensions                      测试快捷拓展目录
│  ├─Materials                       单元测试需要的辅助类目录
│  ├─Models                          模型定义目录
│  ├─SpecFlowStartup.cs              单元测试初始化启动类
│  ├─TestConst.cs                    测试常量配置类

Hoa.MSTest.Projects 项目层

Hoa.MSTest.Projects 项目层是单元测试测试代码层,主要对应用项目进行单元测试。

HoaFramework
├─Hoa.MSTest.Projects                项目代码单元测试层
│  ├─Features                        故事板/测试案例目录
│  ├─SpecFlowPlusRunner              SpecFlow运行测试依赖目录
│  ├─StepDefinitions                 故事板/测试案例生成具体的测试步骤目录
│  ├─Startup.cs                      启动配置类

Hoa.MSTest.Remote 项目层

Hoa.MSTest.Remote 项目层是单元测试测试代码层,主要对远程API进行单元测试。

该项目层有区别于 Hoa.MSTest.Projects,前者主要对远程API进行测试,后者是测试项目代码。🤦‍♀️🤦‍♂️🤷‍♀️🤷‍♂️

HoaFramework
├─Hoa.MSTest.Remote                  远程API单元测试层
│  ├─Features                        故事板/测试案例目录
│  ├─SpecFlowPlusRunner              SpecFlow运行测试依赖目录
│  ├─StepDefinitions                 故事板/测试案例生成具体的测试步骤目录
│  ├─Startup.cs                      启动配置类

Hoa.Worker.Projects 项目层

Hoa.Worker.Projects 项目层是创建Windows服务或Linux守护进程的服务层,可以非常方便的系统后台服务。

HoaFramework
├─Hoa.Worker.Projects                工作服务目录
│  ├─Properties                      配置信息
│  ├─Workers                         具体的工作目录(功能都写在这里)
│  ├─create_system_services.ps1      创建系统服务脚本
│  ├─delete_system_services.ps1      删除系统服务脚本(只能删除自己创建的)
│  ├─Program.cs                      启动程序
│  ├─WorkerStartup.cs                工作服务启动注册类
上一页二、功能特性下一页四、代码规范

最后更新于4年前

这有帮助吗?

Hoa.UnitTest.Specs 项目层是整个框架的单元测试层,默认集成了 UnitTest 和 类库。

SpecFlow