SmartCode 正式開源,不只是程式碼生成器!
阿新 • • 發佈:2018-12-13
SmartCode = IDataSource -> IBuildTask -> IOutput => Build Everything
Introduction
SmartCode.Db (程式碼生成器)
Demo
Getting Started
- 下載
- 解壓
- 設定環境變數
- 編輯構建配置檔案(預設:SmartCode.yml)
- 命令列執行SmartCode命令
- SmartCdoe
- 等待提示輸入配置檔案路徑(可選:預設程式根目錄下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 | 分隔符 |