SmartCode.CLI
                             
                            
                                2.1.3
                            
                        
                    
        
        
                                There is a newer version of this package available.
                                
See the version list below for details.
                    See the version list below for details.
dotnet tool install --global SmartCode.CLI --version 2.1.3
        
        
This package contains a .NET tool you can call from the shell/command line.
                    
    
    dotnet new tool-manifest
dotnet tool install --local SmartCode.CLI --version 2.1.3
        
        
This package contains a .NET tool you can call from the shell/command line.
                    
    
    #tool dotnet:?package=SmartCode.CLI&version=2.1.3
        
        
 The NuGet Team does not provide support for this client. Please contact its maintainers for support.
                    
    
    nuke :add-package SmartCode.CLI --version 2.1.3
        
        
 The NuGet Team does not provide support for this client. Please contact its maintainers for support.
                    
    
    SmartCode
SmartCode = IDataSource → IBuildTask → IOutput ⇒ Build Everything
Introduction

SmartCode.Db (Code generator)
Demo

Getting Started
- Install from .NET Core Global Tool
dotnet tool install --global SmartCode.CLI
- edit build configuration file (default: SmartCode.yml)
- the command line executes the SmartCode command.
- SmartCode
- wait for prompt to enter the configuration file path (optional: SmartCode.yml file in the default program root directory)
- carriage return execution command
 
- wait for the end of the task execution.
- View output directory results
Building configuration files
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
| Parameter Name | Description | 
|---|---|
| Module | Root Module Name | 
| Author | Author | 
| DataSource | Data Source | 
| Language | Language: CSharp/Java/.... | 
| TemplateEngine | Template Engine: Currently Built: Razor/Handlebars | 
| Output | Output | 
| Build | Task Build | 
DataSource Data Source, Name: Db
Property Name: Db, using the DbSource plugin as a data source
DbSource.Paramters accepts the following three parameters:
| Parameter Name | Description | 
|---|---|
| DbName | Database Name | 
| DbProvider | Data Drivers: MySql, MariaDB, PostgreSql, SqlServer, Oracle, SQLite | 
| ConnectionString | Connection String | 
Build Task Build
| Parameter Name | Description | 
|---|---|
| Type | Build type, Clear: used to clean up the directory s / file s, Project: used to build a single file, such as: solution file / project file, Table: used to build a data table-based file, such as: Entity , Repository file | 
| Module | Building Module Name | 
| TemplateEngine | Template Engine, optional, default to root module engine | 
| Template | Template File | 
| Output | Output | 
| IncludeTables | Include table name s | 
| IgnoreTables | Ignore table name s | 
| NamingConverter | Named Converter | 
| Paramters | Custom Build Parameters | 
NamingConverter Name Conversion
| Attribute | Description | 
|---|---|
| Type | Table/View/Column | 
| Tokenizer | Word Segmenter | 
| Converter | Converter: Camel/Pascal/None | 
NamingConverter.Tokenizer Word Segmenter
| Attribute | Description | 
|---|---|
| Type | Default | 
| Paramters.IgnorePrefix | Ignore prefix characters | 
| Paramters.Delimiter | Separator | 
How to contribute a template
In order to allow more people to participate in the construction of SmartCode templates, there are the following template specifications:
- The template author creates a new directory in src/SmartCode.Generator/RazorTemplates and names it in the author's English name.
- Place the template in the author directory
- The README.md file must be included in the author directory to illustrate the purpose of the template and how it is used.
- Submit PR
SmartCode.ETL(Extract-Transform-Load)
ETL Building configuration files
Author: Ahoo Wang
DataSource:
  Name: Extract
  Paramters:
    DbProvider: SqlServer
    ConnectionString: Data Source=.;Initial Catalog=SmartSqlDB;Integrated Security=True
    Query: SELECT [Id],[UserName],[Pwd],[Status],[LastLoginTime],[CreationTime],[Deleted] FROM [T_User] Where Id>@LastMaxId And CreationTime>@LastQueryTime
    PKColumn: Id
Paramters:
  ETLCode: SmartCode.ETL.Test
  ETLRepository: PG
  
Build:
  Transform:
    Type: Transform
    Paramters:
      Script: Load2PostgreSql.cshtml
  Load2PostgreSql: 
    Type: Load
    Paramters:
      DbProvider: PostgreSql
      ConnectionString: Server=localhost;Port=5432;User Id=postgres;Password=SmartSql; Database=smartsql_db;
      Table: t_user
      ColumnMapping: [{Column: UserName,Mapping: user_name}
      ,{Column: Pwd,Mapping: pwd}
      ,{Column: Status,Mapping: status}
      ,{Column: LastLoginTime,Mapping: lastlogintime}
      ,{Column: CreationTime,Mapping: creationtime}
      ,{Column: Deleted,Mapping: deleted}]
      PreCommand: 
      PostCommand: 
| Product | Versions Compatible and additional computed target framework versions. | 
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. | 
| .NET Core | netcoreapp2.2 is compatible. netcoreapp3.0 was computed. netcoreapp3.1 was computed. | 
        
        Compatible target framework(s)
    
    
        
        Included target framework(s) (in package)
    
    Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
| Version | Downloads | Last Updated | 
|---|---|---|
| 3.0.1 | 2,737 | 6/16/2022 | 
| 3.0.0 | 2,064 | 3/3/2022 | 
| 2.4.0-preview.1 | 238 | 6/15/2022 | 
| 2.4.0-preview.0 | 281 | 5/7/2022 | 
| 2.3.7 | 2,043 | 3/3/2022 | 
| 2.3.6 | 2,809 | 6/10/2020 | 
| 2.3.5 | 2,177 | 4/29/2020 | 
| 2.3.4 | 2,110 | 3/27/2020 | 
| 2.3.3 | 1,836 | 3/27/2020 | 
| 2.3.2 | 2,040 | 3/11/2020 | 
| 2.3.1 | 2,214 | 3/11/2020 | 
| 2.3.0 | 2,097 | 3/11/2020 | 
| 2.2.95 | 2,001 | 2/17/2020 | 
| 2.2.94 | 1,989 | 2/14/2020 | 
| 2.2.93 | 2,110 | 2/14/2020 | 
| 2.2.92 | 2,050 | 11/18/2019 | 
| 2.2.90 | 2,177 | 11/12/2019 | 
| 2.2.88 | 2,191 | 10/30/2019 | 
| 2.2.86 | 2,056 | 10/23/2019 | 
| 2.2.85 | 2,136 | 10/22/2019 | 
| 2.2.84 | 1,944 | 10/22/2019 | 
| 2.2.83 | 2,235 | 10/22/2019 | 
| 2.2.82 | 2,045 | 10/21/2019 | 
| 2.2.81 | 1,958 | 10/21/2019 | 
| 2.2.80 | 1,825 | 10/21/2019 | 
| 2.2.70 | 2,139 | 8/21/2019 | 
| 2.2.68 | 2,138 | 8/5/2019 | 
| 2.2.66 | 2,000 | 7/29/2019 | 
| 2.2.65 | 2,025 | 7/22/2019 | 
| 2.2.62 | 1,908 | 7/19/2019 | 
| 2.2.60 | 2,285 | 7/19/2019 | 
| 2.2.58 | 2,162 | 7/10/2019 | 
| 2.2.57 | 2,212 | 7/8/2019 | 
| 2.2.56 | 2,005 | 6/28/2019 | 
| 2.2.55 | 2,168 | 6/11/2019 | 
| 2.2.53 | 2,178 | 6/10/2019 | 
| 2.2.52 | 2,295 | 6/4/2019 | 
| 2.2.50 | 2,157 | 6/3/2019 | 
| 2.2.48 | 2,073 | 5/23/2019 | 
| 2.2.46 | 1,952 | 5/23/2019 | 
| 2.2.45 | 3,065 | 5/7/2019 | 
| 2.2.44 | 2,178 | 5/6/2019 | 
| 2.2.42 | 2,305 | 4/30/2019 | 
| 2.2.40 | 2,202 | 4/30/2019 | 
| 2.2.38 | 2,389 | 4/30/2019 | 
| 2.2.36 | 1,869 | 4/29/2019 | 
| 2.2.30 | 2,161 | 4/26/2019 | 
| 2.2.25 | 2,263 | 4/26/2019 | 
| 2.2.22 | 2,050 | 4/25/2019 | 
| 2.2.20 | 2,120 | 4/24/2019 | 
| 2.2.10 | 2,160 | 4/23/2019 | 
| 2.2.8 | 2,132 | 4/23/2019 | 
| 2.2.2 | 2,221 | 4/18/2019 | 
| 2.2.0 | 1,874 | 4/16/2019 | 
| 2.1.10 | 1,857 | 4/16/2019 | 
| 2.1.9 | 2,218 | 4/11/2019 | 
| 2.1.8 | 1,995 | 4/10/2019 | 
| 2.1.6 | 1,955 | 4/10/2019 | 
| 2.1.5 | 2,348 | 4/1/2019 | 
| 2.1.3 | 2,045 | 3/29/2019 | 
| 2.1.2 | 1,901 | 3/25/2019 | 
| 2.1.1 | 2,165 | 3/22/2019 | 
| 2.1.0 | 2,035 | 3/22/2019 | 
| 2.0.5 | 2,253 | 2/27/2019 | 
| 2.0.4 | 2,511 | 12/17/2018 | 
| 2.0.2 | 2,312 | 12/14/2018 | 
| 2.0.0 | 102,925 | 12/14/2018 | 
| 1.18.2 | 115,287 | 11/22/2018 | 
| 1.18.1 | 15,640 | 11/16/2018 | 
| 1.16.20 | 12,887 | 11/16/2018 | 
| 1.16.19 | 12,424 | 11/16/2018 | 
| 1.16.18 | 6,937 | 11/14/2018 | 
| 1.16.16 | 3,773 | 11/7/2018 | 
| 1.16.15 | 2,311 | 11/4/2018 | 
| 1.16.13 | 9,171 | 11/4/2018 | 
| 1.16.12 | 4,392 | 11/1/2018 | 
| 1.16.6 | 10,576 | 10/31/2018 | 
| 1.16.2 | 11,188 | 10/31/2018 | 
| 1.16.1 | 46,832 | 10/31/2018 | 
| 1.16.0 | 2,423 | 10/30/2018 | 
| 1.12.0 | 2,238 | 10/30/2018 | 
| 1.9.0 | 2,427 | 10/27/2018 | 
| 1.8.1 | 2,876 | 10/26/2018 | 
| 1.8.0 | 3,097 | 10/25/2018 | 
| 1.7.6 | 3,376 | 10/24/2018 | 
| 1.7.5 | 3,251 | 10/24/2018 | 
| 1.7.2 | 3,623 | 10/22/2018 | 
| 1.7.1 | 2,981 | 10/21/2018 | 
| 1.6.9 | 2,547 | 10/20/2018 | 
| 1.6.8.1 | 2,972 | 10/20/2018 | 
| 1.6.8 | 3,499 | 10/20/2018 | 
| 1.6.2 | 2,435 | 10/19/2018 | 
| 1.5.0 | 2,478 | 10/18/2018 | 
| 1.4.6 | 2,551 | 10/18/2018 | 
| 1.3.9 | 2,487 | 10/17/2018 | 
| 1.3.8 | 2,550 | 10/17/2018 | 
| 1.3.6 | 2,310 | 10/15/2018 | 
| 1.3.4 | 2,680 | 10/11/2018 | 
| 1.3.0 | 2,385 | 10/9/2018 | 
| 1.2.0 | 2,263 | 10/8/2018 | 
| 1.1.0 | 2,676 | 10/7/2018 | 
| 1.0.0 | 2,577 | 10/7/2018 | 
1. add support SmartSql-V4
      2. add Set.Tag Attribute.Required=true
      3. add ScriptBuilder to SqlMapConfig.cshtml
      4. add SnowflakeId-Config to SqlMapConfig.cshtml