核心概念
简介
Known 框架是一个现代化的软件开发框架,旨在通过服务分层、插件机制、组件化前端和数据访问解耦等核心设计理念,提供灵活且可扩展的解决方案。本文档将深入探讨这些设计理念及其在项目中的具体体现。
项目结构
Known 框架的项目结构清晰,主要分为以下几个部分:
Known:核心模块,包含框架的主要功能和服务。
Config.cs
:全局配置管理。ServiceBase.cs
:服务基类,提供通用的数据操作方法。Database.cs
:数据访问层。
Known.Core:核心业务逻辑模块。
ApiFeatureProvider.cs
:API 功能提供者。WebApi.cs
:Web API 实现。
Plugins:插件模块,支持动态扩展。
Known.Admin
:管理插件。Known.Cells
:Excel 处理插件。
Shared:共享模块,包含公共工具和基础类。
Context.cs
:系统上下文管理。Database.cs
:数据库操作工具。
Sample:示例项目,展示框架的使用方式。
项目结构图
classDiagram class Known { +Config.cs +ServiceBase.cs +Database.cs } class Known.Core { +ApiFeatureProvider.cs +WebApi.cs } class Plugins { +Known.Admin +Known.Cells } class Shared { +Context.cs +Database.cs } class Sample { +Sample.Web +Sample.Wasm } Known --> Shared Known.Core --> Known Plugins --> Known Sample --> Known
核心组件
1. Config.cs
Config.cs
是框架的全局配置管理类,负责管理系统的运行时配置。主要功能包括:
- 定义全局常量(如
AutoBizIdPrefix
)。 - 管理菜单、操作按钮等系统资源。
- 提供插件机制的支持。
关键方法:
AddApp
:初始化应用程序模块。InitAssembly
:加载程序集并初始化相关资源。AddActions
:加载操作按钮配置。
代码示例:
public static void AddApp(Assembly assembly)
{
if (App.IsModule)
{
Modules.AddItem("0", Constants.BaseData, "基础数据", "database", 1);
Modules.AddItem("0", Constants.System, "系统管理", "setting", 99);
}
Version = new VersionInfo(App.Assembly);
InitAssembly(App.Assembly);
AddModule(assembly);
}
2. ServiceBase.cs
ServiceBase.cs
是服务基类,提供通用的数据操作方法,如查询、保存和删除数据。
关键方法:
QueryModelsAsync
:异步查询数据。DeleteModelsAsync
:异步删除数据。SaveModelAsync
:异步保存数据。
代码示例:
protected static Task<PagingResult<T>> QueryModelsAsync<T>(string key, PagingCriteria criteria, Func<List<T>, List<T>> filter = null)
{
var result = AppData.QueryModels(key, criteria, filter);
return Task.FromResult(result);
}
3. Context.cs
Context.cs
是系统上下文类,用于管理用户会话和请求/响应交互。
关键属性:
CurrentUser
:当前用户信息。IsMobile
:是否为移动端。Language
:当前语言设置。
代码示例:
public class Context
{
public UserInfo CurrentUser { get; set; }
public bool IsMobile { get; set; }
public Language Language { get; }
}