1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/AhooWang-SmartCode

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README-EN.md

SmartCode(Chinese Document)

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

Введение

SmartCode

Nuget Packages

Пакет NuGet Stable Загрузки
SmartCode.CLI SmartCode.CLI SmartCode.CLI

SmartCode.Generator (Code generator)

Demo

SmartCode

Начало работы

  1. Установите из .NET Core Global Tool:
     dotnet tool install --global SmartCode.CLI

2. Отредактируйте файл конфигурации сборки (по умолчанию: SmartCode.yml).
3. Выполните команду в командной строке:
  - SmartCode
  - дождитесь запроса на ввод пути к файлу конфигурации (опционально: файл SmartCode.yml в корневом каталоге программы по умолчанию).
  - нажмите Enter для выполнения команды.
4. Дождитесь завершения выполнения задачи.
5. Просмотрите результаты в выходном каталоге.
6. Запустите проект API и отладьте с помощью Swagger.

### Файлы конфигурации сборки

``` yml
Module: SmartSql.Starter
Author: Ahoo Wang
DataSource:
Name: DbTable
Parameters:
  DbName: SmartSqlTestDB
  DbProvider: SqlServer
  ConnectionString: Data Source=.;Initial Catalog=SmartSqlTestDB;Integrated Security=True
Language: CSharp
TemplateEngine: 
 Name: Razor
 Root: CSharp
Output: 
Type: File
Path: 'E:\SmartSql-Starter'
Parameters:
SmartSqlVersion: '4.0.46'
SmartSqlSchemaVersion: '4.0.42'
BuildDir: 'E:\SmartSql-Starter\build'
DockerImage: 'smartsql.starter'

NamingConverter:
Table:
  Tokenizer:
    Type: Default
    Parameters:
      IgnorePrefix: 'T_'
      Delimiter: '_'
  Converter:
    Type: Pascal
    Parameters: { }
View:
  Tokenizer:
    Type: Default
    Parameters:
      IgnorePrefix: 'V_'
      Delimiter: '_'
  Converter:
    Type: Pascal
Column:
  Tokenizer:
    Type: Default
    Parameters:
      Delimiter: '_'
  Converter:
    Type: Pascal

# 构建任务
Build:

#  ClearDir:
#    Type: Clear
#    Parameters:
#      Dirs: '.'

MakeBuildDir:
  Type: Process
  Parameters:
    FileName: powershell
    Args: mkdir '{{Project.Parameters.BuildDir}}'
Copy:
  Type: Process
  Parameters:
    FileName: powershell
    Args:  cp '{{Project.ConfigPath}}' '{{Project.Parameters.BuildDir}}'

Scaffolding:
  Type: MultiTemplate
  Output: 
    Path: '.'
  Parameters:
    Templates: [{Key: 'Sln.cshtml',Output: {Name: '{{Project.Module}}',Extension: '.sln'}},
      {Key: 'Sln-Directory.Build.cshtml',Output: {Name: 'Directory.Build',Extension: '.props'}},
      {Key: 'Sln-Version.cshtml',Output: {Path: 'build',Name: 'version',Extension: '.props'}},
      {Key: 'Sln-Dockerfile.cshtml',Output: {Name: 'Dockerfile',Extension: ''}},
      {Key: 'Sln-DockerIgnore.cshtml',Output: {Name: '.dockerignore',Extension: ''}},
      {Key: 'Sln-GitIgnore.cshtml',Output: {Name: '.gitignore',Extension: ''}},
      {Key: "Proj-Entity.cshtml",Output: {Path: 'src/{{Project.Module}}.Entity',Name: '{{Project.Module}}.Entity',Extension: '.csproj'}},
      {Key: "Proj-Repository.cshtml",Output: {Path: 'src/{{Project.Module}}.Repository',Name: '{{Project.Module}}.Repository',Extension: '.csproj'}},
      {Key: "Proj-Service.cshtml",Output: {Path: 'src/{{Project.Module}}.Service',Name: '{{Project.Module}}.Service',Extension: '.csproj'}},
      {Key: "Proj-API.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: '{{Project.Module}}.API',Extension: '.csproj'}},
      {Key: "API/LaunchSettings.cshtml",Output: {Path: 'src/{{Project.Module}}.API/Properties',Name: 'launchSettings',Extension: '.json'}},
      {Key: "API/AppSettings.cshtml",Output: {Path: 'src/{{Project.Module}}.API',Name: 'appsettings',Extension: '.json'}}] ### Файл параметров сборки

| Параметр | Описание |
| :--- | :---:|
| Module | Имя корневого модуля |
| Author | Автор |
| DataSource | Источник данных |
| Language | Язык: CSharp/Java и т. д. |
| TemplateEngine | Механизм шаблонов: в настоящее время используется Razor/Handlebars |
| Output | Вывод |
| Build | Задача сборки |

#### Источник данных Data Source, имя: DbTable

> Свойство Name: DbTable, использует плагин DbTableSource в качестве источника данных.

DbTableSource.Parameters принимает следующие три параметра:

| Параметр | Описание |
| :--- | :---:|
| DbName | Имя базы данных |
| DbProvider | Драйверы данных: MySql, MariaDB, PostgreSql, SqlServer, Oracle, SQLite |
| ConnectionString | Строка подключения |

#### Задача сборки Build

| Параметр | Описание |
| :--- | :---:|
| Type | Тип сборки, Clear: используется для очистки каталогов и файлов, Project: используется для создания одного файла, такого как файл решения/проекта, Table: используется для построения файла на основе таблицы данных, например Entity, файл репозитория |
| Module | Название модуля сборки |
| TemplateEngine | Механизм шаблонов, необязательный, по умолчанию используется механизм шаблонов корневого модуля |
| Template | Шаблонный файл |
| Output | Выход |
| IgnoreNoPKTable | Игнорировать таблицу без первичного ключа |
| IgnoreView | Игнорировать представление |
| IncludeTables | Включить имена таблиц |
| IgnoreTables | Игнорировать имена таблиц |
| NamingConverter | Преобразователь имён |
| Parameters | Пользовательские параметры сборки |

#### Преобразователь имён NamingConverter

| Атрибут | Описание |
| :--- | :---:|
| Type | Таблица/представление/столбец |
| Tokenizer | Сегментатор слов |
| Converter | Конвертер: Camel/Pascal/None |

##### Сегментатор слов NamingConverter.Tokenizer

| Атрибут | Описание |
| :--- | :---:|
| Type | По умолчанию |
| Параметры.IgnorePrefix | Игнорируемые префиксные символы |
| Параметры.Delimiter | Разделитель |
| Параметры.UppercaseSplit | Использование разделения заглавными буквами, по умолчанию: true |

### Как внести вклад в шаблон

> Чтобы позволить большему количеству людей участвовать в создании шаблонов SmartCode, существуют следующие спецификации шаблонов:

1. Автор шаблона создаёт новый каталог в src/SmartCode.Generator/RazorTemplates и называет его своим английским именем.
2. Помещает шаблон в каталог автора.
3. В каталоге автора должен быть включён файл README.md, чтобы проиллюстрировать назначение шаблона и способ его использования.
4. Отправляет PR.

## SmartCode.ETL (извлечение-преобразование-загрузка)

### Конфигурационные файлы построения ETL

```yml
Автор: Ahoo Wang
Источник данных:
Имя: Извлечь
Параметры:
  DbProvider: SqlServer
  ConnectionString: Источник данных=.;Начальный каталог=SmartSqlDB;Встроенная безопасность=True
  Запрос: SELECT [Id],[UserName],[Pwd],[Status],[LastLoginTime],[CreationTime],[Deleted] FROM [T_User] Where Id>@LastMaxId And CreationTime>@LastQueryTime
  PKColumn: Id

Параметры:
ETLCode: SmartCode.ETL.Test
ETLRepository: PG

Сборка:

Преобразование:
  Тип: Преобразование
  Параметры:
    Скрипт: Load2PostgreSql.cshtml

Load2PostgreSql: 
  Тип: Загрузка
  Параметры:
    DbProvider: PostgreSql
    ConnectionString: Сервер=localhost;Порт=5432;Идентификатор пользователя=postgres;Пароль=SmartSql; База данных=smartsql_db;
    Таблица: t_user
    Сопоставление столбцов: [{Столбец: Имя пользователя, Сопоставление:
``` ```
{user_name}
    ,{Column: Pwd,Mapping: pwd}
    ,{Column: Status,Mapping: status}
    ,{Column: LastLoginTime,Mapping: lastlogintime}
    ,{Column: CreationTime,Mapping: creationtime}
    ,{Column: Deleted,Mapping: deleted}]
    PreCommand: 
    PostCommand:

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

SmartCode = IDataSource -> IBuildTask -> IOutput => Build Everything!!! Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/AhooWang-SmartCode.git
git@api.gitlife.ru:oschina-mirror/AhooWang-SmartCode.git
oschina-mirror
AhooWang-SmartCode
AhooWang-SmartCode
master