Слияние кода завершено, страница обновится автоматически
SmartCode = IDataSource -> IBuildTask -> IOutput => Build Everything
Пакет | NuGet Stable | Загрузки |
---|---|---|
SmartCode.CLI |
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 )