Skip to content

TypeScript 类型系统 #31

Description

@beginor

请问现在 SmartCode 支持 TypeScript 的类型系统么? 打算 SmartCode 做一套基于 Angular 的增删查改的模板, 如果有的话就可以直接使用了。

Activity

  1. ElderJames commented on Jun 4, 2019

    @ElderJames
    Member

    还没有,还是在typescript的模板里使用吧!感谢贡献。最好能使用ng-zorro+asp.net core的项目,就是官方的dotnet new angular模板

  2. Ahoo-Wang commented on Jun 4, 2019

    @Ahoo-Wang
    Member

    @ElderJames 不是写好Razor模板然后运行SmartCode就好了么,是不是我对问题的理解有问题?

  3. beginor commented on Jun 4, 2019

    @beginor
    CollaboratorAuthor

    @ElderJames @Ahoo-Wang 这个贡献一个 pr 倒是不难, 问题是我已经 fork 一个 库 了,模板中引用了私有的类库, 不能提交 pr 。 貌似 github 只能 fork 一个库, 这个该怎么解决呢?

  4. ElderJames commented on Jun 4, 2019

    @ElderJames
    Member

    @Ahoo-Wang 我觉得用razor做模板还是不太好,能不能参考dotnet模板,模板项目自身可以运行,在配置文件里配置需要替换的符号。

    官方搜集的模板
    https://github.com/dotnet/templating/wiki/Available-templates-for-dotnet-new

  5. Ahoo-Wang commented on Jun 4, 2019

    @Ahoo-Wang
    Member

    @ElderJames ok,我抽空看一下这种实现方式。对于 @beginor 的问题你有什么建议。
    我本来计划想设计一个 SmartCode 模板市场类的东西,类似于 hub.docker.com ,大佬们 有什么建议。
    比如 @beginor 提到的私有模板,如何提交,公共化的模板应该如何提交,以及官方模板提交的规范于标准 这些都需要讨论制定。

  6. beginor commented on Jun 4, 2019

    @beginor
    CollaboratorAuthor

    @ElderJames 那个只是一个初始化项目的模板吧, 和 smartcode 要做的从数据库生成代码的模板区别比较大的。

  7. ElderJames commented on Jun 4, 2019

    @ElderJames
    Member

    @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;"

  8. ElderJames commented on Jun 4, 2019

    @ElderJames
    Member

    @ElderJames 那个只是一个初始化项目的模板吧, 和 smartcode 要做的从数据库生成代码的模板区别比较大的。

    @beginor 数据源的问题,dotnet new 的数据源在cli参数,我们做成从数据库获取数据源的就行

  9. beginor commented on Jun 4, 2019

    @beginor
    CollaboratorAuthor

    不错,这个想法好。希望早日实现 👍不过貌似已经偏离话题了。

    模板库的问题, 用 git submodule 的方式是否可行呢?

  10. ElderJames commented on Jun 4, 2019

    @ElderJames
    Member

    fork的库改个名吧,一般fork的都是提pr用的。
    模板库应该独立存在,不在项目中维护了~

  11. beginor commented on Jun 4, 2019

    @beginor
    CollaboratorAuthor

    改名是不行的, 还是提示已经 fork 过了。

    我找到的方法是从历史记录中新建一个分支, 然后再合并 smartcode 的更新进来, 这样就在我的库中得到一个只包含 smartcode 的分支, 不包括我的修改, 用这个分支来提交 pr 是可以的。 以后我再慢慢整理, 把我的模板库移动到一个独立的分支或者库。

  12. beginor commented on Jun 5, 2019

    @beginor
    CollaboratorAuthor

    @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# 的类名和文件名使用的相同的名称。

    请问这种情况该怎么配置呢? 能否为文件名再单独配置一个转换器或者转换函数呢?

  13. ElderJames commented on Jun 5, 2019

    @ElderJames
    Member

    Angular里不是attachment.model.ts这样的文件命名吗?
    组合词会用-连接,如home-header.model.ts。

  14. beginor commented on Jun 5, 2019

    @beginor
    CollaboratorAuthor

    是的,我只是举例说明而已,请问有办法解决么? 建议参考下 angular 的 pipe 机制, 将转换器配置成管道,可以多个串联在一起

  15. ElderJames commented on Jun 6, 2019

    @ElderJames
    Member

    扩展IWordsConverter接口应该可以满足你的需求

  16. Ahoo-Wang commented on Jun 6, 2019

    @Ahoo-Wang
    Member

    @beginor 该问题下个小版本迭代开始支持,有什么好的建议也可以提交给我。下次有问题另外开个issue吧,这个issue已经偏离了主题好远了。😂

  17. beginor commented on Jun 6, 2019

    @beginor
    CollaboratorAuthor

    OK,我先写 converter 吧实现吧,也就是几行代码的事儿

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions