1. 程式人生 > >CodeSmith圖形介面操作

CodeSmith圖形介面操作

參考:

https://www.cnblogs.com/kissdodog/archive/2013/04/16/3023387.html

 

       先從用法開始:以NHibernate模板生成為例:

  1、啟動CodeSmith,介面如下:

  

  2、匯入模板,點選左上角的資料夾一樣的按鈕,開啟檔案選擇框,選擇模板檔案所在資料夾:

  

3、回到主介面就可以看到,模板檔案已經被新增進來了。

  

  4、展開資料夾,看到有個.cst字尾的檔案,雙擊它,就會展開如下所示介面:

  

  解釋一下個選項的意思:

  OutputDirectory:生成的程式碼檔案輸出到的資料夾。

  SourceDataBase:資料庫名稱

  Assembly:就是生成程式碼檔案的程式集。

  ForceId:是否生成主鍵,如果選中,當表中沒有主鍵時會報錯。

  NameSpace:生成程式碼檔案的名稱空間。

  RemoveTablePrifix:要去除的表名字首。

  5、選擇資料庫

  在上面的幾個選項中,經常要用到選擇資料庫,點選SourceDataBase選項後面的三個點。彈出選擇資料庫對話方塊:

  

  如果你在下拉選單中,沒有看到自己的資料庫,那麼就可以再次點選後面的兩個點,進行配置。點選後看到如下介面:

  

如果在這裡沒有你自己想要選擇的資料庫,你可以點選Add按鈕進行新增。

  

  其中Name是你要連線的資料庫名,然後有個Provider Type的下拉列表框,在這個框裡面可以選擇需要操作的資料庫,如下圖:

  

  對於SqlServer應該選擇SqlSchemaProvider。

  ConnectionString:資料庫連線字串,你可以點選後面的三個點的按鈕來進行生成,點選後介面如下:

  

  是不是很有親切感,很熟悉啊。

  選擇好路徑,點選Test Connection測試連線,如果沒有問題就連線上資料庫了。然後就一路選擇OK返回。

  回到主介面後,點選Generate(生成),稍等一會,待進度條全部變成綠色,程式碼檔案就會生成到你設定的目錄裡面了。

  程式碼生成之後,CodeSmith會顯示如下介面:

  

最後到剛剛設定的輸出目錄去看看生成的程式碼檔案。

  

  

  沒有問題已經出來了,開啟檔案看看:

複製程式碼

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
    <class name="MyNamespace.Data.Person, MyApp.MyAssembly" table="Person">
        <id name="Id" type="Int32" unsaved-value="null">
            <column name="Id" length="4" sql-type="int" not-null="true" unique="true"/>
            <generator class="native" />
        </id>
        <property name="Name" type="String">
            <column name="Name" length="50" sql-type="varchar" not-null="true"/>
        </property>
        <property name="Age" type="Int32">
            <column name="Age" length="4" sql-type="int" not-null="true"/>
        </property>
    </class>
</hibernate-mapping>

複製程式碼

  程式碼檔案:

複製程式碼

using System;
using System.Collections;
namespace MyNamespace.Data
{
    #region Person
    /// <summary>
    /// Person object for NHibernate mapped table 'Person'.
    ///程式碼生成器生成
    /// </summary>
    [Serializable]
    public class Person
    {
        #region 私有成員
        protected int _id;
        protected string _name;
        protected int _age;
        #endregion
        #region 初始化
        public Person() { }
        public Person( string name, int age )
        {
            this._name = name;
            this._age = age;
        }
        #endregion
        #region 公共屬性
        public virtual int Id
        {
            get {return _id;}
            set {_id = value;}
        }
        public virtual string Name
        {
            get { return _name; }
            set
            {
                if ( value != null && value.Length > 50)
                    throw new ArgumentOutOfRangeException("Invalid value for Name", value, value.ToString());
                _name = value;
            }
        }
        public virtual int Age
        {
            get { return _age; }
            set { _age = value; }
        }
        #endregion
    }
    #endregion
}

複製程式碼

  雖然程式碼檔案是出來了,但是毋庸置疑的是,你依然要對NHibernate的配置十分了解。下一步還是打算來學習下CodeSmith的語法。

第一個CodeSmith模板

  CodeSmith強大的地方就在於它能夠完全按照你的要求生成特定的模板,也就是說你可以完全掌控生成的程式碼。

  首先,開啟CodeSmith,點選左上角的“資料夾圖示”,隨便選擇一個本地空資料夾。

  此時,在主窗體內就會增加了一個資料夾,右鍵該資料夾,選擇NEW->CodeSmith Generator Template(CSharp)。

  

  這樣窗體內就出出現一個.cst字尾的檔案。這個檔案就是模板檔案了。當然現在是空的。現在我們就在這個檔案上面編寫程式碼。

  右鍵點選該.cst檔案,選擇Edit,這時CodeSmith模板編輯器就啟動了。

  

  非常親切,因為這個東西模板是仿照VS2010來做的。

  

我們在上面鍵入以下程式碼:

<%--Language:當前模板使用的語言 ResponseEncoding:輸出檔案的編碼格式 Description:當前模板的描述--%>
<%@ CodeTempLate Language="C#" ResponseEncoding="UTF-8" Description="第一個模板程式" %>
Hello Wlord
<%= DateTime.Now.ToString() %>

  點選生成按鈕

  

  我們就可以看到輸出的內容如下了:

  

  圖形介面方面的操作,就到這裡。以後主要學習的是模板程式碼的編寫。