Closed beginor closed 5 years ago
还没有,还是在typescript的模板里使用吧!感谢贡献。最好能使用ng-zorro+asp.net core的项目,就是官方的dotnet new angular模板
@ElderJames 不是写好Razor模板然后运行SmartCode就好了么,是不是我对问题的理解有问题?
@ElderJames @Ahoo-Wang 这个贡献一个 pr 倒是不难, 问题是我已经 fork 一个 库 了,模板中引用了私有的类库, 不能提交 pr 。 貌似 github 只能 fork 一个库, 这个该怎么解决呢?
@Ahoo-Wang 我觉得用razor做模板还是不太好,能不能参考dotnet模板,模板项目自身可以运行,在配置文件里配置需要替换的符号。
官方搜集的模板 https://github.com/dotnet/templating/wiki/Available-templates-for-dotnet-new
@ElderJames ok,我抽空看一下这种实现方式。对于 @beginor 的问题你有什么建议。 我本来计划想设计一个 SmartCode 模板市场类的东西,类似于 hub.docker.com ,大佬们 有什么建议。 比如 @beginor 提到的私有模板,如何提交,公共化的模板应该如何提交,以及官方模板提交的规范于标准 这些都需要讨论制定。
@ElderJames 那个只是一个初始化项目的模板吧, 和 smartcode 要做的从数据库生成代码的模板区别比较大的。
@Ahoo-Wang @beginor 我觉得不能提交pr了,只能用链接来关联模板项目的地址
我本来计划想设计一个 SmartCode 模板市场类的东西,类似于 hub.docker.com ,大佬们 有什么建议。
用dotnet gobal tools下载模板,命令行生成吧?
创建模板项目:
smart new template -type dbfirst -name angular
上传模板:
smart publish -key xxx
安装:
smart new -i "Angular"
生成:
smart new angular -db "server=localhost;database=MyDb;"
@ElderJames 那个只是一个初始化项目的模板吧, 和 smartcode 要做的从数据库生成代码的模板区别比较大的。
@beginor 数据源的问题,dotnet new 的数据源在cli参数,我们做成从数据库获取数据源的就行
不错,这个想法好。希望早日实现 👍不过貌似已经偏离话题了。
模板库的问题, 用 git submodule 的方式是否可行呢?
fork的库改个名吧,一般fork的都是提pr用的。 模板库应该独立存在,不在项目中维护了~
改名是不行的, 还是提示已经 fork 过了。
我找到的方法是从历史记录中新建一个分支, 然后再合并 smartcode 的更新进来, 这样就在我的库中得到一个只包含 smartcode 的分支, 不包括我的修改, 用这个分支来提交 pr 是可以的。 以后我再慢慢整理, 把我的模板库移动到一个独立的分支或者库。
@Ahoo-Wang 遇到了一点儿小问题, 请教一下。 我们的数据表名称遵循蛇形下划线规范, 比如 app_attachments
, app_users
。 对应生成的 TypeScript 接口类型如下:
// Create By Beginor
// Date 2019-06-05 06:51
// Code Generated By SmartCode
// Code Generater Github : https://github.com/dotnetcore/SmartCode
/** interface for 附件表 */
export interface AppAttachment {
/** 附件ID */
id: number;
/** 内容类型(HTTP Content Type) */
contentType: string;
/** 附件内容 */
content: number[];
/** 创建时间 */
createdAt: string;
/** 创建附件的用户ID */
creatorId: string;
/** 文件名 */
fileName: string;
/** 附件大小 */
length: number;
/** 附件所属的业务ID,可以是任意表的ID,如果业务表有附件, 则需要根据业务表记录的ID,删除对应的附件。 */
businessId: number;
}
根据前端 Angular 的命名规范, 应该保存为 app-attachment.ts
。 这样表名称、接口(类)名与文件名各不相同, 这里和 C# 的规范不一致了, 因为 C# 的类名和文件名使用的相同的名称。
请问这种情况该怎么配置呢? 能否为文件名再单独配置一个转换器或者转换函数呢?
Angular里不是attachment.model.ts
这样的文件命名吗?
组合词会用-
连接,如home-header.model.ts
。
是的,我只是举例说明而已,请问有办法解决么? 建议参考下 angular 的 pipe 机制, 将转换器配置成管道,可以多个串联在一起
扩展IWordsConverter
接口应该可以满足你的需求
@beginor 该问题下个小版本迭代开始支持,有什么好的建议也可以提交给我。下次有问题另外开个issue吧,这个issue已经偏离了主题好远了。😂
OK,我先写 converter 吧实现吧,也就是几行代码的事儿
请问现在 SmartCode 支持 TypeScript 的类型系统么? 打算 SmartCode 做一套基于 Angular 的增删查改的模板, 如果有的话就可以直接使用了。