運用CodeSmith Studio實現C#項目構架


http://www.cnblogs.com/iCaca/category/80950.html

 

http://www.cnblogs.com/BlueBreeze/archive/2011/07/17/2108615.html

    1. 建立好數據庫。假如數據庫名叫SkillExchange。
    2. 啟動CodeSmith,連接數據庫。在Schema Explorer(如果主界面沒有顯示,在菜單View中將其打開)中點擊“+”圖標,在彈出的【Data Source Manager】中選擇【Add】。在彈出【Data Source】對話框中,自己給該數據源取一個名稱,【Provider Type】選擇【SqlSchemaProvider】,點擊【Connection String】右側的按鈕,可以幫助生成連接字符串。之后點幾個OK,一個Close,數據庫連接就大功告成了
    3.  點擊 view>>Template Explorer在右側可以看到 有一個 模板瀏覽窗口已經打開,選擇WinformsLibrary 目錄下的NetTiers.cst 雙擊打開  點擊導航的 View>>properties windows 可以看到屬性窗口被打開  開始配置 ChooseSourceDatabase   添加數據庫鏈接 我用的是SqlServer數據庫 所以鏈接為server=fanxinjian;database=exam;uid=sa;pwd=sa名稱

    4. 注: 要雙擊才打開才可以配制
    5. CodeSmith Studio中,NetTiers模板中各個選項的一些解釋
    6. Get started --required ----》》》 ChooseSourceDatabase  選擇數據庫 (你之前配制好的數據庫) MappingFileMapping文件位置 (會根據output目錄自動更改,不需要設置) OutputDirectory文件輸出目錄 RootNameSpace根節點的命名空間 01b) Filter by Individual Objects - ptional 

  1.   怎樣用CodeSmith和建好的數據庫生成一個有很多存儲過程的網站。

    1,  構建數據庫,注意數據庫的表名必須以tbl開頭,視圖必須以vw開頭,例如tblUserInfo,tblAdminInfo,vwUserInfo

    2,  建好數據庫后就可以用CodeSmith了,首先選擇CodeSmit

    下的CodeSmith Stdio打開。

    3,  打開后選擇try(可上網搜注冊機)

     

    4,  然后選擇CodeSmith 4,1Samples下的NetTiers文件夾

        

     

    5,  打開文件夾后,右鍵單擊NetTiers.cst文件,選擇Execute

     

    6,首先要選擇你的數據源,選擇Choosing Source Database

     

    7選擇右邊帶…的按鈕

    8,單擊Add按鈕

     

    9,首先選擇Provider Type,選擇

    然后自己取一個名字,再點擊右邊帶…的按鈕

    找到自己的數據庫

    10,選擇后Ok就可以了,再退回到這里並且選擇你建立的數據庫

     

     

    11,修改你生產的網站的存儲路徑,在MappingFile中修改,注意下面的也要修改並且前面的都要一樣,如圖所示

     

    12,將下面的ExecuteSql改為true,

    InculdComponentLayer改為ServiceLayer,

    ProcedurePrefix改為TK_

     

    13,最后在點擊下面的Generate就可以了

     

    在VS中的操作

    找到對應的文件夾打開

    對與下面的文件

     

    都要打開

    然后右擊“引用”文件夾

     

    選擇添加引用

    最重要的引用:

    再選擇瀏覽

     

    找到對應的文件夾,下面的reference

     

    打開並且全選

    確定后就可以了,其他的都一樣的,應用完后就可以了

    這時候利用CodeSmith就好了,你可以查看生成的文件以及自己的數據庫,它已經在數據庫中生成了許多常用的存儲過程了,若還要添加就的在自己的前面加“/”.。在Vs中的解決方案中的各個空間也生成了許多的方法。

    1. NetTiers模板中各個選項的一些解釋

    2. 名稱 解釋
      NetTiers
      模板中的一些屬性的解釋
      ChooseSourceDatabase 選擇數據庫
      MappingFile Mapping文件位置(會根據output目錄自動更改,不需要設置)
      OutputDirectory 文件輸出目錄
      RootNameSpace 根節點的命名空間
      Filter by Individual Objects - Optional
      EnumTables 枚舉表,表中的所有數據都會被用作枚舉類型,要求:第一列為主鍵,第二列為唯一鍵,第三列為描述,必須添加到SourceTables
      SourceTables 需要生成的表
      SourceViews 需要生成的視圖
      FrameworkGeneration - Optional
      AutoIncrementBuildVersion 自動提升版本
      EntLibVersion 微軟企業庫的版本V2或V3
      ExecuteSql 生成后自動執行SQL       ----   這個必為true
      IncludeComponentLayer 生成組建層(service或domain)
      IncludeDatabaseFeatures 是否包含數據庫特性(sql2005特有)----這個必選2005
      IncludeGenerateddate 包含生成的日期(會在生成的文件中包含生成文件時的日期)
      IncludeUnitTest 保函單元測試(可以選微軟的VSTS或NUnit)
      IncludeWCFDataAttributes 保函WCF屬性(需要.net3.0)
      IncludeXmlAttributes 保函XML屬性
      LaunchVisualStudio 生成結束后是否運行解決方案
      SerializeEntityState 序列時包含化EntityState,在使用WebServices時非常有用
      SQLFolderName SQL腳本輸出的目錄
      ViewReport 生成完畢後顯示報表
      Namespaces - Required
      BusinessLogicLayerNameSpace 業務邏輯層命名空間(應該是實體層)
      ComponentLayerNameSpace 組建層命名空間
      DataAccessLayerNameSpace 數據訪問層的命名空間
      UnitTestsNameSpace 單元測試命名空間
      General - Advanced
      CompanyName 公司名稱,會被包含在AssemblyInfo.cs中
      CompanyURL 公司網址
      SignAssembly SNK公鑰
      WebLibrary - Advanced
      GenerateWebLibrary 生成web控件
      IncludeDesignTimeSupport 包含設計時支持
      Web - Advanced
      AttemptCreateLocalVirtualDirectory 為webservice創建虛擬目錄
      WebServiceOutputPath webservice的本地路徑
      WebServiceUrl webservice的URL
      Website - Advanced
      GenerateWebsite 創建web站點
      GenerateWebsiteAdmin 創建簡單的管理員界面
      IncludeAtlasLibrary 包含微軟的Ajax庫
      IncludeAtlasToolkit 包含Ajax擴展工具
      OverwriteWebConfig 覆蓋web.config文件
      UseWebAppProject 使用web項目,需要安裝AppProject補丁, 中文版不支持
      WebAdminSiteName 管理員站點名稱
      CRUD - Advanced
      CSPUseDefaultValForNonNullableTypes 自定義存儲過程為nullable類型使用默認值
      CustomProcedureStartsWith 自定義存儲過程的前綴
      DropStyle 選擇Entity的話生成後Drop刪除已經生成的存儲過程,選擇All的話,會刪除滿足存儲過程前綴,不滿足自定義存儲過程前綴的存儲過程
      IncludeCustoms 生成自定義存儲過程
      IncludeDelete 生成delete存儲過程
      IncludeDrop 是否生成drop語句,如果是則根據DropStyle生成
      IncludeFind 生成Find存儲過程
      IncludeGet 生成get存儲過程
      IncludeGetList 生成GetList存儲過程
      IncludeGetLisByFK 生成根據外鍵查詢的存儲過程
      InclludeGetListByIX 生成根據唯一鍵查詢的存儲過程
      IncludeInsert 生成Insert存儲過程
      IncludeManyToMany 生成多對多關系
      IncludeRelations 生成關聯
      IncludeSave 生成保存
      IncludeUpade 生成更新
      IsolationLevel 事務隔離級別
      ParseDbColDefaultVal 使用數據庫字段默認值初始化實體屬性
      RetryEnabled 允許重試,當執行出錯時允許重試
      RetryMaxAttempts 重試次數
      RetrySleepStyle 重試等待類型
      RetrySleepTime 重試間隔時間
      Storedprocedures - Advanced
      DeleteSuffix 存儲過程 delete 語句的前綴
      FindSuffix 存儲過程 find 語句的前綴
      GrantUser 存儲過程 grant 語句的前綴
      InsertSuffix 存儲過程 insert 語句的前綴
      ProcedurePrefix 存儲過程的前綴
      SelectAllSuffix 存儲過程 select all 語句的前綴
      SelectSuffix 存儲過程 select 語句的前綴
      UpdateSuffix 存儲過程 update 語句的前綴
      Code style - Advanced
      AliasFilePath 別名路徑
      BaseClassFormat 基類 {0}Base
      ChangeUnderscoreToPascalCase 將 _ 轉換為 Pascal
      CollectionFormat 子集 {0}Collection 一對多時,會包含子表(數據)的集合
      EntityFormat 實體 默認{0}
      EntityKeyFormat EntityKey {0}Key
      EnumFormat 枚舉 {0}List
      GenericListFormat Nettiers自帶的泛型集合之一 TList<{0}> 表使用
      GenericViewFormat 泛型集合之一 VList<{0}> 視圖使用
      InterfaceFormat 接口 I{0}
      ManyToMayFormat 多對多 {0}From{1}
      MethodNames
      BulkInsert 批量插入方法的名稱
      Deepload 主從表查詢方法的名稱
      DeepSave 主從表保存方法的名稱
      Delete 刪除方法的名稱
      Find 查詢方法的名稱
      Get Get方法的名稱
      GetAll 查詢全部方法的名稱
      GetPaged 分頁查詢方法的名稱
      GetTotalItems 查詢行數方法的名稱
      Insert 插入方法的名稱
      Save 保存方法的名稱
      Update 更新方法的名稱
      ProviderFormat {0}Provider
      ServiceClassNameFormat {0}Service
      StrippedTablePrefixed 忽略前綴,填寫的前綴講不會被生成到實體中 入tbl;tbl_
      Winforms Library - Advanced
      GenerateWinLibrary 生成winform的控件庫
      {FKField.name}Source 建立有外鍵的列可以查詢到關聯表的數據
      {table.name}DataSource EntityDatasource 實體數據源


免責聲明!

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



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