SmartCode 常见问题
SmartCode 能干什么?
SmartCode = IDataSource -> IBuildTask -> IOutput => Build Everything
SmartCode的執行流是 數據源->構建任務->輸出,也就是說應用場景非常廣泛。
從DB讀取數據結構,最終生成整個解決方案=代碼生成器(SmartCode.Generator)
ETL,其實很顯然SmartCode執行流跟ETL很像,做一些相應的擴展便可支持ETL(SmartCode.ETL)
Mode First,從Model類結構解析出數據源,最終生成SQL腳本,執行生成DB結構,并生成整個解決方案
靜態文檔生成器
還有很多等待你去發掘
SmartCode 擴展性如何
SmartCode 插件機制擁有非常靈活的擴展能力,SmartCode 中一切都是插件。只要繼承IPlugin接口即可,然后配置到appsettings.json,然后通過IPluginManager獲取插件實例。
{ ?"Logging": { ? ?"IncludeScopes": false, ? ?"Console": { ? ? ?"LogLevel": { ? ? ? ?"Default": "Debug"}}}, ?"SmartCode": { ? ?"Version": "v1.16.0", ? ?"Plugins": [{ ? ? ? ?"Type": "SmartCode.IDataSource,SmartCode", ? ? ? ?"ImplType": "SmartCode.NoneDataSource,SmartCode"},{ ? ? ? ?"Type": "SmartCode.IBuildTask,SmartCode", ? ? ? ?"ImplType": "SmartCode.App.BuildTasks.ClearBuildTask,SmartCode.App"},{ ? ? ? ?"Type": "SmartCode.IBuildTask,SmartCode", ? ? ? ?"ImplType": "SmartCode.App.BuildTasks.ProjectBuildTask,SmartCode.App"},{ ? ? ? ?"Type": "SmartCode.IBuildTask,SmartCode", ? ? ? ?"ImplType": "SmartCode.App.BuildTasks.MultiTemplateBuildTask,SmartCode.App"},{ ? ? ? ?"Type": "SmartCode.IBuildTask,SmartCode", ? ? ? ?"ImplType": "SmartCode.App.BuildTasks.ProcessBuildTask,SmartCode.App"},{ ? ? ? ?"Type": "SmartCode.IOutput,SmartCode", ? ? ? ?"ImplType": "SmartCode.App.Outputs.FileOutput,SmartCode.App"},{ ? ? ? ?"Type": "SmartCode.IDataSource,SmartCode", ? ? ? ?"ImplType": "SmartCode.Generator.DbTableSource,SmartCode.Generator"},{ ? ? ? ?"Type": "SmartCode.IBuildTask,SmartCode", ? ? ? ?"ImplType": "SmartCode.Generator.BuildTasks.TableBuildTask,SmartCode.Generator"},{ ? ? ? ?"Type": "SmartCode.INamingConverter,SmartCode", ? ? ? ?"ImplType": "SmartCode.Generator.TableNamingConverter,SmartCode.Generator"},{ ? ? ? ?"Type": "SmartCode.TemplateEngine.ITemplateEngine,SmartCode.TemplateEngine", ? ? ? ?"ImplType": "SmartCode.TemplateEngine.Impl.HandlebarsTemplateEngine,SmartCode.TemplateEngine"},{ ? ? ? ?"Type": "SmartCode.TemplateEngine.ITemplateEngine,SmartCode.TemplateEngine", ? ? ? ?"ImplType": "SmartCode.TemplateEngine.Impl.OfficialRazorTemplateEngine,SmartCode.TemplateEngine"},{ ? ? ? ?"Type": "SmartCode.Generator.IDbTypeConverter,SmartCode.Generator", ? ? ? ?"ImplType": "SmartCode.Generator.DbTypeConverter.DefaultDbTypeConverter,SmartCode.Generator"},{ ? ? ? ?"Type": "SmartCode.IDataSource,SmartCode", ? ? ? ?"ImplType": "SmartCode.ETL.ExtractDataSource,SmartCode.ETL"},{ ? ? ? ?"Type": "SmartCode.IBuildTask,SmartCode", ? ? ? ?"ImplType": "SmartCode.ETL.BuildTasks.TransformBuildTask,SmartCode.ETL"},{ ? ? ? ?"Type": "SmartCode.ETL.ITransformEngine,SmartCode.ETL", ? ? ? ?"ImplType": "SmartCode.ETL.TransformEngine.RazorTransformEngine,SmartCode.ETL"},{ ? ? ? ?"Type": "SmartCode.IBuildTask,SmartCode", ? ? ? ?"ImplType": "SmartCode.ETL.BuildTasks.LoadBuildTask,SmartCode.ETL"},{ ? ? ? ?"Type": "SmartCode.ETL.IETLRepository,SmartCode.ETL", ? ? ? ?"ImplType": "SmartCode.ETL.NoneETLRepository,SmartCode.ETL"},{ ? ? ? ?"Type": "SmartCode.ETL.IETLRepository,SmartCode.ETL", ? ? ? ?"ImplType": "SmartCode.ETL.PostgreSql.PGETLRepository,SmartCode.ETL.PostgreSql", ? ? ? ?"Paramters": { ? ? ? ? ?"ConnectionString": "Server=localhost;Port=5432;User Id=postgres;Password=SmartSql; Database=smartcode_etl;"}}]} }如何自定義模板
目前SmartCode支持倆種模板引擎?Razor?&?Handlebars?。
Razor 模板引擎使用的是官方版本,這一點上.NETer同學可以很輕松的自定義SmartCode模板,需要注意的是Razor模板的Model為BuildContext,具體方法可以參考源代碼中的模板。編寫完成之后放到RazorTemplates,構建時指定好即可。
代碼生成器支持多少種數據庫
SmartCode獲取數據源結構使用的是SmartSql,所以SmartCode支持所有ADO.NET驅動相關的數據庫:MySql/PostgreSql/SqlServer/Oracle/SQLite 等
相關文章:
如何通過本地化事件正確實現微服務內部強一致性,事件總線跨微服務間最終一致性
SmartCode 正式開源,不只是代碼生成器!
SmartSql For Asp.Net Core 最佳實踐
SmartSql 動態代理倉儲
原文地址:https://www.cnblogs.com/Ahoo-Wang/p/SmartCode-common-problem.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的SmartCode 常见问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET Core2读写Influ
- 下一篇: 全面支持开源,微软加速 Visual S