Skip to content

xiaocaiisxiaocai/CodeGenerator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

智能代码生成器

基于模板的智能代码生成工具,支持多数据库和自定义模板。

🚀 项目特性

  • 多数据库支持: MySQL、SQL Server、PostgreSQL、SQLite
  • 智能模板引擎: 基于Razor模板引擎,支持自定义模板
  • 现代化前端: Vue 3 + TypeScript + Element Plus
  • RESTful API: ASP.NET Core Web API
  • 实时通信: SignalR支持
  • 批量操作: 支持批量代码生成
  • 可扩展架构: 模块化设计,易于扩展

🏗️ 项目结构

代码生成器/
├── src/                          # 源代码
│   ├── CodeGenerator.Core/       # 核心业务逻辑
│   ├── CodeGenerator.Web/        # Web API
│   └── CodeGenerator.Console/    # 命令行工具
├── web/                          # Vue 3前端
├── templates/                    # 代码模板
├── config/                       # 配置文件
└── docs/                         # 文档

🛠️ 技术栈

后端

  • .NET 8 / .NET Standard 2.0
  • ASP.NET Core Web API
  • Entity Framework Core
  • Razor模板引擎
  • SignalR
  • Serilog

前端

  • Vue 3
  • TypeScript
  • Vite
  • Element Plus
  • Pinia
  • Vue Router

数据库

  • MySQL
  • SQL Server
  • PostgreSQL
  • SQLite

📋 环境要求

  • .NET 8.0 SDK
  • Node.js 18+
  • 支持的数据库之一

🚀 快速开始

1. 克隆项目

git clone <repository-url>
cd 代码生成器

2. 安装后端依赖

dotnet restore

3. 安装前端依赖

cd web
npm install

4. 配置数据库

编辑 config/database.json 文件,配置你的数据库连接信息。

5. 启动应用

Web应用模式

# 启动后端API
dotnet run --project src/CodeGenerator.Web

# 启动前端(新终端)
cd web
npm run dev

命令行模式

dotnet run --project src/CodeGenerator.Console -- --help

📖 使用指南

Web界面使用

  1. 连接数据库: 在数据库管理页面配置数据库连接
  2. 选择表格: 浏览并选择要生成代码的表格
  3. 选择模板: 选择适合的代码模板
  4. 生成代码: 执行代码生成并下载结果

命令行使用

# 生成单个表的代码
dotnet run --project src/CodeGenerator.Console -- --table Users --template Entity

# 批量生成所有表
dotnet run --project src/CodeGenerator.Console -- --all --output ./Generated

# 指定配置文件
dotnet run --project src/CodeGenerator.Console -- --config ./custom-config.json

🎨 模板开发

创建自定义模板

  1. templates/ 目录下创建新的模板文件
  2. 使用Razor语法编写模板
  3. config/templates.json 中注册模板

模板示例

using System;
using System.ComponentModel.DataAnnotations;

namespace {{Namespace}}.Models
{
    /// <summary>
    /// {{TableComment}}
    /// </summary>
    public class {{EntityName}}
    {
        @foreach(var field in Fields)
        {
        /// <summary>
        /// {{field.Comment}}
        /// </summary>
        public {{field.CSharpType}} {{field.PropertyName}} { get; set; }
        
        }
    }
}

📊 支持的模板类型

  • 实体类: 数据模型类
  • 服务类: 业务逻辑服务
  • 仓储类: 数据访问层
  • 控制器: Web API控制器
  • DTO: 数据传输对象
  • 前端组件: Vue.js组件
  • TypeScript类型: 类型定义

🔧 配置说明

数据库配置 (config/database.json)

{
  "connections": [
    {
      "name": "默认连接",
      "type": "MySQL",
      "host": "localhost",
      "port": 3306,
      "database": "test",
      "username": "root",
      "password": ""
    }
  ]
}

项目配置 (config/project.json)

{
  "project": {
    "name": "MyProject",
    "namespace": "MyProject",
    "outputPath": "./Generated",
    "author": "开发者"
  }
}

🧪 运行测试

# 运行所有测试
dotnet test

# 运行特定测试项目
dotnet test tests/CodeGenerator.Core.Tests

📦 发布部署

发布Web应用

dotnet publish src/CodeGenerator.Web -c Release -o ./publish

发布命令行工具

dotnet publish src/CodeGenerator.Console -c Release -r win-x64 --self-contained

🤝 贡献指南

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/new-feature)
  3. 提交更改 (git commit -am 'Add new feature')
  4. 推送到分支 (git push origin feature/new-feature)
  5. 创建 Pull Request

📄 许可证

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

📞 联系方式

  • 项目主页: [GitHub Repository]
  • 问题反馈: [Issues]
  • 技术讨论: [Discussions]

🙏 致谢

感谢所有为这个项目做出贡献的开发者!


⭐ 如果这个项目对你有帮助,请给个Star支持一下!

About

C#代码生成器

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors