SmartCode 正式开源,不只是代码生成器!

Ahoo 2018-10-09 10:06:42
加精



SmartCode = IDataSource -> IBuildTask -> IOutput => Build Everything!!!


Introduction



SmartCode.Db (代码生成器)



Getting Started

1. Install from .NET Core Global Tool
dotnet tool install --global SmartCode.CLI

2.编辑构建配置文件(默认:SmartCode.yml)
3. 命令行执行SmartCode命令
3.1 SmartCode
3.2 等待提示输入配置文件路径(可选:默认程序根目录下SmartCode.yml文件)
3.3 回车执行命令
4. 查看输出目录结果

构建配置文件

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

...全文
5818 57 打赏 收藏 转发到动态 举报
写回复
用AI写文章
57 条回复
切换为时间正序
请发表友善的回复…
发表回复
Frank_Meta 2021-06-12
  • 打赏
  • 举报
回复
Mark感谢分享
早见丶 2019-02-03
  • 打赏
  • 举报
回复
ch
新人报道多多关照
weixin_42927334 2019-01-29
  • 打赏
  • 举报
回复
好,[██▓▒░]2019好运加载中。
realmagicSEO 2018-11-17
  • 打赏
  • 举报
回复
看看学习一下下下
Ahoo 2018-11-04
  • 打赏
  • 举报
回复
目前SmartCode已经扩展的插件有 SmartCode.Generator & SmartCode.ETL,Generator 有了一篇README.md 简单介绍入门门槛很低。 SmartCode.ETL 是上周末俩天完成扩展,目前还没来得机写介绍文档,近期争取抽点时间写一下。这里先简单介绍使用方式: 1. 使用SmartCode.Generator 生成 同步Sql表结构脚本,以及SmartCode.ETL 构建配置 2. 执行Sql同步脚本初始化表结构。 3. 使用任务调度(crontab) + SmartCode.ETL 同步分析数据。 4. 通过持久化 etl_task 监控 etl执行情况(目前支持PostgreSql,之后会有计划支持SQLite免去安装DB的痛苦) ->>>>> 简单来说就是SmartCode生成SmartCode,任务调度执行SmartCode命令行。(这不是先有鸡还是蛋的问题.....) ------ 目前 SmartCode.ETL 已经落地到我们的生产环境了(11-01上线截至目前执行了15361次同步任务,暂无error日志抛出) 我们的使用场景是 1. 从多个微服务DB 同步业务聚合查询数据到 all_biz DB (解决:微服务架构一定会遇到的业务方需要跨微服务DB查询的问题) 2. 从 all_biz DB 同步聚合分析数据到 report DB (解决:领导层查看的报表数据聚合问题) ------- PS: 虽然 SmartCode.ETL 只花了周末俩天时间完成扩展,但已经可以满足我们至少90%的应用场景。这足以见得 SmartCode 扩展能力是多么令人意外了。当然SmartCode的其他能力还得后续等各位一起发掘!!!
penngo 2018-11-02
  • 打赏
  • 举报
回复
开源代码生成器工具全集:https://www.21doc.net/java/awesomejava#code-generators
hwyqy 2018-10-28
  • 打赏
  • 举报
回复
厉害,这个工具蛮好的
不过现在有EF了
jhone99 2018-10-27
  • 打赏
  • 举报
回复
感谢分享,
denger_123 2018-10-26
  • 打赏
  • 举报
回复
感谢楼主分享!
FeelTouch Labs 2018-10-24
  • 打赏
  • 举报
回复
熟练了,可以提高开发效率吧
Ahoo 2018-10-22
  • 打赏
  • 举报
回复
为了让更多人参与到SmartCode模板建设中来,故有以下模板规范: 1. 模板作者在 src/SmartCode.CLI/RazorTemplates 中新建目录,并以作者英文名为目录名称 2. 把模板放置到作者目录 3. 作者目录下必须包括 README.md 文件,以说明模板的用途场景以及使用方式
hwyqy 2018-10-20
  • 打赏
  • 举报
回复
好东东,代码生成器一直都在用
Ahoo 2018-10-20
  • 打赏
  • 举报
回复
allen_1986 2018-10-19
  • 打赏
  • 举报
回复
厉害咯。。。
司码君 2018-10-18
  • 打赏
  • 举报
回复
先标记,吃了饭就来看看,十个字!
Magnum君 2018-10-15
  • 打赏
  • 举报
回复
有点厉害啊!
fank_love 2018-10-14
  • 打赏
  • 举报
回复
厉害厉害,顶一些
weixin_43404599 2018-10-13
  • 打赏
  • 举报
回复
厉害厉害,顶一些
StEnchanter 2018-10-12
  • 打赏
  • 举报
回复
好厉害!支持一下!
Warmwinter12 2018-10-12
  • 打赏
  • 举报
回复
厉害了
加载更多回复(37)

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧