CodeSmith 圖形界面基本操作(一)


CodeSmith圖形界面操作

  先從用法開始:以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() %>

  點擊生成按鈕

  

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

  

  圖形界面方面的操作,就到這里。以后主要學習的是模板代碼的編寫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM