Skip to content

DULASlee/hxlot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,199 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

## Quality Gates

Frontend (Vue/TS):

cd src/SmartAbp.Vue
npm ci
npm run type-check
npm run lint
npm run test:run
npm run build

Backend (.NET):

dotnet format --verify-no-changes
dotnet build -c Release

Git Hooks (Husky): ensure .husky/pre-commit is executable and run npx husky install.

SmartAbp - ABP vNext + Vue.js SPA 集成项目

📖 项目简介

这是一个基于ABP vNext框架的企业级应用项目,集成了Vue.js作为前端SPA(单页应用)。项目采用前后端分离架构,提供了完整的开发、构建和部署解决方案。

🚀 企业级低代码重构方案

🔥 全新升级:从基础工具到企业级平台的完美蜕变

我们正在将SmartAbp升级为企业级配置驱动的前端模块化代码生成平台,通过三阶段重构实现:

🎯 重构亮点

维度 原方案 重构后 提升幅度
可靠性 无事务保障 99.9%可用性 从0到100%
性能 O(n²)冲突检测 O(1)布隆过滤 1000倍+
内存 不可控泄漏 智能监控管理 减少60%
扩展性 硬编码架构 插件化设计 无限扩展

📋 三阶段重构计划

🔥 P0 - 立即修复(1周)

  • 事务性生成机制 - 彻底解决数据一致性风险
  • 智能增量更新 - 性能提升10倍,大项目秒级更新
  • 布隆过滤器冲突检测 - 性能提升1000倍,O(1)时间复杂度

P1 - 短期改进(6周)

  • 插件化策略架构 - 彻底解决扩展性限制
  • 企业级内存监控 - 智能内存管理,减少60%内存使用
  • 完整日志审计系统 - 全链路可观测性

🚀 P2 - 中期演进(12周)

  • 可视化拖拽设计器 - 降低使用门槛,提升开发效率
  • 多框架支持 - Vue/React/Angular全覆盖
  • 企业级管理控制台 - RBAC权限、实时监控、审计日志

🛡️ 企业级特性

  • 安全性:JWT认证、RBAC权限、审计日志、数据加密
  • 可靠性:事务操作、自动回滚、健康检查、故障恢复
  • 可观测性:实时监控、内存分析、告警系统、详细日志
  • 可扩展性:插件架构、多框架、微服务、云原生

🚨 开发铁律(最高优先级)

⚡ 所有开发人员必须首先阅读并严格遵守以下铁律

📚 文档索引

🏗️ 架构设计

🔄 企业级重构方案

📋 工作计划

🏗️ 技术架构

后端技术栈

  • ABP vNext - 现代化的.NET应用框架
  • ASP.NET Core - Web API和MVC框架
  • Entity Framework Core - ORM数据访问层
  • Microsoft.AspNetCore.SpaServices.Extensions - SPA中间件支持
  • SQLite/SQL Server - 数据库支持

前端技术栈(重构升级)

  • Vue.js 3 - 渐进式JavaScript框架
  • TypeScript - 类型安全的JavaScript超集
  • Vite - 现代化的前端构建工具
  • Pinia - Vue.js状态管理
  • Vue Router - Vue.js路由管理
  • Element Plus - Vue.js UI组件库
  • Zod - TypeScript模式验证库
  • ESLint - 代码质量检查工具

🔧 低代码平台技术栈

  • 配置驱动架构 - JSON配置驱动的代码生成
  • 模块化设计 - ABP风格的模块依赖管理
  • 增量更新引擎 - 智能文件变更检测
  • 布隆过滤器 - 高性能冲突检测算法
  • 事务性操作 - 原子性代码生成和回滚
  • 插件化策略 - 可扩展的生成策略架构
  • 内存监控 - 实时内存使用分析和优化
  • 可视化设计器 - 拖拽式模块配置界面

🚀 SPA集成配置详解

1. 后端SPA中间件配置

1.1 NuGet包依赖

src/SmartAbp.Web/SmartAbp.Web.csproj 中添加:

<PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="8.0.8" />

1.2 模块配置

SmartAbpWebModule.cs 中进行以下配置:

ConfigureServices方法中添加SPA服务:

public override void ConfigureServices(ServiceConfigurationContext context)
{
    // ... 其他配置

    // 配置SPA服务
    ConfigureSpaServices(context);
}

private void ConfigureSpaServices(ServiceConfigurationContext context)
{
    var services = context.Services;
    var configuration = context.Services.GetConfiguration();

    // 添加SPA静态文件服务
    services.AddSpaStaticFiles(configuration =>
    {
        configuration.RootPath = "wwwroot/dist";
    });
}

OnApplicationInitialization方法中配置SPA中间件:

public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
    var app = context.GetApplicationBuilder();
    var env = context.GetEnvironment();

    // ... 其他中间件配置

    // 配置路由
    app.UseRouting();
    app.UseAuthentication();
    app.UseAuthorization();

    // 配置MVC和Razor Pages路由
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
        endpoints.MapRazorPages();
    });

    // 配置SPA中间件(必须在最后)
    app.UseSpa(spa =>
    {
        spa.Options.SourcePath = "../SmartAbp.Vue";

        if (env.IsDevelopment())
        {
            // 开发环境:代理到Vue开发服务器
            spa.UseProxyToSpaDevelopmentServer("http://localhost:11369");
        }
        // 生产环境:直接使用构建后的静态文件
    });
}

2. 前端Vite配置

2.1 开发服务器配置

src/SmartAbp.Vue/vite.config.ts 中配置:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [vue()],
  server: {
    port: 11369,  // 与后端SPA代理端口保持一致
    host: '0.0.0.0'
  },
  build: {
    outDir: '../SmartAbp.Web/wwwroot/dist',  // 构建输出到后端静态文件目录
    emptyOutDir: true
  }
})

3. 路由优先级设计

系统采用以下路由优先级:

  1. MVC控制器路由 - /api/* 和控制器路由
  2. Razor Pages路由 - 服务器端页面路由
  3. SPA路由 - 所有未匹配的路由都会转发到Vue应用

4. 默认控制器配置

创建了 HomeController 作为默认路由处理:

public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}

对应的视图 Views/Home/Index.cshtml

<!DOCTYPE html>
<html>
<head>
    <title>SmartAbp</title>
</head>
<body>
    <div id="app">
        <h1>欢迎使用 SmartAbp</h1>
        <p>ABP vNext + Vue.js SPA 集成项目</p>
    </div>
</body>
</html>

🛠️ 开发环境搭建

环境要求

  • .NET 8.0 SDK 或更高版本
  • Node.js 18+npm/yarn
  • Visual Studio 2022VS Code

快速启动

方式一:使用启动脚本(推荐)

# Windows批处理
./start-dev.bat

# PowerShell
./start-dev.ps1

方式二:手动启动

# 1. 启动后端服务
cd src/SmartAbp.Web
dotnet run

# 2. 启动前端开发服务器(新终端)
cd src/SmartAbp.Vue
npm install
npm run dev

访问地址

📦 生产部署

构建前端资源

cd src/SmartAbp.Vue
npm run build

发布后端应用

cd src/SmartAbp.Web
dotnet publish -c Release -o ./publish

构建完成后,前端资源会自动输出到 src/SmartAbp.Web/wwwroot/dist 目录,后端会直接提供这些静态文件。

🔧 项目结构

SmartAbp/
├── src/
│   ├── SmartAbp.Web/                 # 后端Web项目
│   │   ├── Controllers/              # MVC控制器
│   │   ├── Views/                    # Razor视图
│   │   ├── wwwroot/                  # 静态资源
│   │   │   └── dist/                 # Vue构建输出目录
│   │   ├── SmartAbpWebModule.cs      # 主模块配置
│   │   └── Program.cs                # 程序入口
│   ├── SmartAbp.Vue/                 # Vue前端项目
│   │   ├── src/                      # Vue源码
│   │   ├── public/                   # 公共资源
│   │   ├── package.json              # 前端依赖
│   │   └── vite.config.ts            # Vite配置
│   ├── SmartAbp.Application/         # 应用服务层
│   ├── SmartAbp.Domain/              # 领域层
│   ├── SmartAbp.EntityFrameworkCore/ # 数据访问层
│   └── ...                           # 其他ABP模块
├── test/                             # 测试项目
├── start-dev.bat                     # Windows启动脚本
├── start-dev.ps1                     # PowerShell启动脚本
└── README.md                         # 项目说明文档

🎯 核心特性

ABP框架特性

  • 多租户支持 - 内置多租户架构
  • 身份认证授权 - 基于OpenIddict的认证系统
  • 模块化设计 - 高度模块化的架构
  • 领域驱动设计 - DDD最佳实践
  • 审计日志 - 完整的操作审计
  • 本地化支持 - 多语言国际化
  • 设置管理 - 灵活的配置管理
  • 权限管理 - 细粒度的权限控制

SPA集成特性

  • 开发热重载 - 前端代码修改实时更新
  • 生产优化 - 自动构建和静态文件服务
  • 路由集成 - 前后端路由无缝集成
  • API代理 - 开发环境API请求代理
  • TypeScript支持 - 完整的类型安全
  • 现代化构建 - 基于Vite的快速构建

🔍 开发指南

API开发

  1. SmartAbp.Application 中创建应用服务
  2. SmartAbp.HttpApi 中创建控制器
  3. 前端通过 /api/* 路径访问API

前端开发

  1. src/SmartAbp.Vue/src 中开发Vue组件
  2. 使用 npm run dev 启动开发服务器
  3. API请求会自动代理到后端服务

数据库迁移

cd src/SmartAbp.EntityFrameworkCore
dotnet ef migrations add YourMigrationName
dotnet ef database update

🤝 贡献指南

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

📞 联系方式

🙏 致谢

  • ABP Framework - 现代化的.NET应用框架
  • Vue.js - 渐进式JavaScript框架
  • Vite - 下一代前端构建工具

Happy Coding! 🎉

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors