核心概念
简介
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; }
}