# Sdari.BusinessFramework **Repository Path**: sdari/sdari.business.framework ## Basic Information - **Project Name**: Sdari.BusinessFramework - **Description**: 一个旨在加速企业级业务系统开发的综合性框架,基于 Microsoft 的 ASP.NET Core 平台构建。包含常见的业务逻辑、数据访问层、安全认证、服务集成等核心功能 - **Primary Language**: C# - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 46 - **Forks**: 13 - **Created**: 2024-07-23 - **Last Updated**: 2024-11-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: 业务框架, 项目模版 ## README # 新建Api项目 ## 方法一:手动建立 ### DbModel项目 1. 此项目是为存放数据库模型。 * 项目类型为:类库 1. 为项目添加引用:Microsoft.EntityFrameworkCore.SqlServer 1. 添加项目目录 * \Generated\Context:存放自动生成的DbContext * \Generated\Models:存放自动生成的数据库实体类 * \Custom\Context:存放DbContext的接口信息,每个连接DbContext需要建一个接口。接口需要手动添加所有的数据库字段; * \Custom\Models:存放数据库实体类自定义的部分 * \CodeTemplates\EFCore:存放用于自动生成模板,通过菜单可以生成默认值。如果采用默认的生成模板,也可以不生成此目录。 1. 添加IDbContext.cs:此接口内容完全复制DbContext,用于封装生成的DbContext,对外隐藏所有数据库类的实现 1. 添加静态扩展类:xxxDbModelExtensions。此类为服务添加DbContext ### Business项目 1. 此项目用于所有的业务逻辑,对外提供对象。 * 项目类型为:类库 1. 需要较强的业务分析、设计能力,如果没有需要可以跳过。 1. 为项目添加引用: * Sdari.Core.dll:一些基础类的定义 * 前面创建的DbModel项目 1. 修改项目文件,在Project节点内添加以下代码。如果对Sdari.Core是项目引用,则不需要: ```xml ``` 1. 添加项目目录 * \Database:存放Business需要使用的数据库上下文 * \Exceptions:项目用到的异常定义 * \Extensions:扩展方法,包括从服务中获取数据库上下文 * \Interface:业务接口定义 * \Implement:各个业务类实现 1. 具体代码参考例子 ### Services项目 1. 此项目存放所有的对外服务。如果有Business项目,应该是对该项目业务对象的封装发布。 * 项目类型为:类库 * 如果需要不同的实现,此项目之存放接口定义。具体的实现通过创建Services.???.Implements项目来实现 1. 为项目添加引用: * Sdari.Core.dll:一些基础类的定义 * 前面创建的DbModel项目 * 如果有Business项目,则添加之 1. 添加目录 * Interfaces:存放所有服务的接口定义。 * Model:存放用于服务端的数据模型。 * Provider:存放一些本项目需要的与业务相关的辅助方法,如:ProjectProvider * Services:存放所有的服务实现,所有Service类都应该是internal的 * Utility:存放本项目特许的通用工具 1. 添加静态扩展类:xxxServicesExtensions: 此类为服务添加服务。 ### Api项目 1. 此项目是Api的网站项目 * 项目类型为 Asp.net Core Web Api * 勾选:使用控制器 1. 为项目添加引用: * Sdari.Core.dll:一些基础类的定义 * 如果有Business项目,则添加之 * 前面创建的Services项目 * Sdari.Authentication.Paraview.dll:sso认证需要此程序集 * Sdari.Authentication.Jwt.dll:生成Token需要集成此程序集 * Sdari.Authentication.United.dll:已经集成了基于jwt和cookie的派拉登录认证 * nlog.web.aspnetcore:日志工具 * microsoft.extensions.caching.sqlserver:共享cache需要 * 如果是项目引用3个dll可以不添加下列nuget包 * microsoft.aspnetcore.mvc.newtonsoftjson:newtonsoft相关 * microsoft.identitymodel.tokens:token相关 * System.IdentityModel.Tokens.Jwt:jwt相关 * Microsoft.AspNetCore.Authentication.JwtBearer:jwt相关 1. 添加项目目录 * Models:存放控制器需要的数据模型 1. 修改Program.cs:参照例子 1. 修改appsettings.json:参照例子 ## 方法二:复制Sdari.Example项目 1. 该项目中的所有Example请替换成需要的字符。 * 使用调整过的数据生成模型:注意要替CodeTemplates\EFCore\目录下的两个.t4文件中的Example字段换 * 使用工具默认的数据生成模型,请删除CodeTemplates\EFCore\目录及其包含的.t4文件