SmartCode 正式开源,不只是代码生成器!
2018-10-06 23:41
323 查看
SmartCode(https://github.com/Ahoo-Wang/SmartCode)
SmartCode = IDataSource -> IBuildTask -> IOutput => Build Everything
Introduction
SmartCode.Db (代码生成器)
Demo
Getting Started
- Install from .NET Core Global Tool
dotnet tool install --global SmartCode.CLI
- 编辑构建配置文件(默认:SmartCode.yml)
- 命令行执行SmartCode命令
-
SmartCode
- 等待提示输入配置文件路径(可选:默认程序根目录下SmartCode.yml文件)
- 回车执行命令
- 等待任务执行结束
- 查看输出目录结果
构建配置文件
Module: SmartSql.Starter Author: Ahoo Wang DataSource: Name: Db Paramters: DbName: SmartSqlStarterDB DbProvider: SqlServer ConnectionString: Data Source=.;Initial Catalog=SmartSqlStarterDB;Integrated Security=True Language: CSharp TemplateEngine: Razor Output: Type: File Path: 'E://SmartSql-Starter' # 构建任务 Build: ClearDir: Type: Clear Paramters: Dirs: '.' Solution: Type: Project Template: Sln.cshtml Output: Path: '.' Name: '{{Project.Module}}' Extension: '.sln' SmartSqlConfig: Type: Project Template: SqlMapConfig.cshtml Output: Path: '{{Project.Module}}.API' Name: 'SmartSqlMapConfig' Extension: '.xml' Entity_Project: Type: Project Template: Proj.cshtml Output: Path: '{{Project.Module}}.Entity' Name: '{{Project.Module}}.Entity' Extension: '.csproj' Entity: Type: Table Module: Entity Template: Entity.cshtml Output: Path: '{{Project.Module}}.{{Build.Module}}' Extension: '.cs' NamingConverter: Table: Tokenizer: Type: Default Paramters: IgnorePrefix: 'T_' Delimiter: '_' Converter: Type: Default Paramters: { } View: Tokenizer: Type: Default Paramters: IgnorePrefix: 'V_' Delimiter: '_' Converter: Type: Pascal Column: Tokenizer: Type: Default Paramters: Delimiter: '_' Converter: Type: Pascal Repository_Project: Type: Project Template: Proj-Repository.cshtml Output: Path: '{{Project.Module}}.Repository' Name: '{{Project.Module}}.Repository' Extension: '.csproj' Repository: Type: Table Module: Repository Template: Repository.cshtml Output: Path: '{{Project.Module}}.{{Build.Module}}' Name: 'I{{OutputName}}Repository' Extension: .cs NamingConverter: Table: Tokenizer: Type: Default Paramters: IgnorePrefix: 'T_' Delimiter: '_' Converter: Type: Default View: Tokenizer: Type: Default Paramters: IgnorePrefix: 'V_' Delimiter: '_' Converter: Type: Default SqlMap: Type: Table Template: SqlMap-SqlServer.cshtml Output: Path: '{{Project.Module}}.API/Maps' Extension: .xml IgnoreTables: null NamingConverter: Table: Tokenizer: Type: Default Paramters: IgnorePrefix: 'T_' Delimiter: '_' Converter: Type: Default View: Tokenizer: Type: Default Paramters: IgnorePrefix: 'V_' Delimiter: '_' Converter: Type: Default Column: Tokenizer: Type: Default Paramters: IgnorePrefix: 'T_' Delimiter: '_' Converter: Type: Default
参数名 | 说明 |
---|---|
Module | 根模块名 |
Author | 作者 |
DataSource | 数据源 |
Language | 语言:CSharp/Java/.... |
TemplateEngine | 模板引擎:目前内置:Razor/Handlebars |
Output | 输出 |
Build | 任务构建s |
DataSource 数据源,Name:Db
属性 Name:Db,使用DbSource插件作为数据源
DbSource.Paramters 接受以下三个参数:
参数名 | 说明 |
---|---|
DbName | 数据库名称 |
DbProvider | 数据驱动提供者:MySql,MariaDB,PostgreSql,SqlServer,Oracle,SQLite |
ConnectionString | 连接字符串 |
Build 任务构建
参数名 | 说明 |
---|---|
Type | 构建类型,Clear:用于清理目录s/文件s,Project:用于构建单文件,如:解决方案文件/项目文件,Table: 用于构建以数据表为基础的文件,如:Entity,Repository文件 |
Module | 构建模块名 |
TemplateEngine | 模板引擎,可选,默认使用根模块引擎 |
Template | 模板文件 |
Output | 输出 |
IncludeTables | 包括表名s |
IgnoreTables | 忽略表名s |
NamingConverter | 命名转换器 |
Paramters | 自定义构建参数 |
NamingConverter 命名转换
属性 | 说明 |
---|---|
类型 | Table/View/Column |
Tokenizer | 分词器 |
Converter | 转换器:Camel/Pascal/None |
NamingConverter.Tokenizer 分词器
属性 | 说明 |
---|---|
Type | Default |
Paramters.IgnorePrefix | 忽略前缀字符 |
Paramters.Delimiter | 分隔符 |
Paramters.UppercaseSplit | 使用大写分隔,默认:true |
相关文章推荐
- 不只是阿里的操作系统,AliOS正式开源!
- 微博轻量级RPC框架Motan正式开源:支撑千亿调用
- 阿里巴巴正式开源自研动态非侵入AOP解决方案:JVM-Sandbox
- iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)
- 11月28日云栖精选夜读:阿里巴巴正式开源其自研容器技术Pouch
- Facebook平台正式开源
- 微软正式开源Blazor ,将.NET带回到浏览器
- 奇虎360正式开源深度学习调度平台XLearning
- F2etest v2.0.0 正式发布 ,阿里巴巴开源测试方案 - 开源中国社区
- 腾讯荣获OSCAR尖峰开源企业奖 TARS项目与信通院正式启动合作
- iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)
- Apache RocketMQ 正式开源分布式事务消息
- 【转】如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
- 正式从windows转向开源的CentOS ( version 5.5 )
- (博客园首发)开源框架knot.js正式发布了,为前端开发带来全新的开发方式--CBS
- 下面介绍一个开源的OCR引擎Tesseract2。值得庆幸的是虽然是开源的但是它的识别率较高,并不比其他引擎差劲。网上介绍Tessnet2也是当时时间排名第三的识别引擎,只是后来慢慢不维护了,目前是G
- EasyJFCMS项目正式启动,诚邀国内开源爱好者加入(附uml图)