程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> Smith Builder ERP代碼生成器(開源,提供源碼下載)

Smith Builder ERP代碼生成器(開源,提供源碼下載)

日期:2017/1/13 16:34:44      編輯:關於C#
 

ERP代碼生成器

這個代碼生成器的作用是彌補Code Smith在批量表生成方面的不足。

代碼生成器運行效果

clip_image002

基本的使用方法是,選擇數據庫,左邊的樹會列出數據庫中的所有表,在參數區域,Template會列出當前目錄下的CodeSmith模板,選擇一個模板,Parameter會列出選中的模板的參數信息,選擇生成的代碼的存放路徑為Target Folder

解決方案視圖

clip_image003

下載源代碼到本地後,請先添加程序集引用,包括Code Smith和SMO

clip_image004

SMO是操作SQL Server元數據的一套非常有效率的API,以用於獲取SQL Server表信息

程序代碼只有2個窗體,主窗體和連接數據庫的窗體,在啟動主程序後,自動會打開數據庫連接窗體

clip_image005

之後,會在主窗體中顯示打開的數據庫,及它的所有表。

點擊樹節點前的CheckBox,會將該表添加到要生成模板代碼的表中,中間一列是文本框,可以編輯。

Template會列出當前目錄中所有cst結尾的文件,這裡沒有驗證該文件是否是CodeSmith模板文件

lstTemplate.Items.Clear();

string[] files=Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.cst");

lstTemplate.Items.AddRange(files);

在參數填寫區域,請用=將參數名和參數值配對填寫

clip_image006

對於Target Folder,窗體啟動時會給當前路徑默認值

txtTargetFolder.Text = AppDomain.CurrentDomain.BaseDirectory;

真正實現調用Code Smith模板,生成代碼的方法

CodeTemplateCompiler compiler = new CodeTemplateCompiler(templateFile);

compiler.Compile();

if (compiler.Errors.Count == 0){

CodeTemplate template = compiler.CreateInstance();

DatabaseSchema database = new DatabaseSchema(new SqlSchemaProvider(), connectionString);

TableSchema tableSchema = database.Tables[tableName];

template.Render(writer);

}

 

這就是這個代碼生成器的全部了,關鍵的內容還是在Code Smith模板的編寫

這裡還有一個小問題,請看圖

clip_image007

Table Node和它的CheckBox之前的距離太小,有些不美觀,一直找不到是如何設置參數,能讓CheckBox與Node之間的距離增大一點,以保持美觀。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved