运用CodeSmith Studio实现C#项目构架

时间:2022-04-22 15:46:21

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中将其打开)中点击“+”运用CodeSmith Studio实现C#项目构架图标,在弹出的【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打开。

    运用CodeSmith Studio实现C#项目构架

    3,  打开后选择try(可上网搜注册机)

    运用CodeSmith Studio实现C#项目构架

    4,  然后选择CodeSmith 4,1Samples下的NetTiers文件夹

    运用CodeSmith Studio实现C#项目构架    运用CodeSmith Studio实现C#项目构架

    5,  打开文件夹后,右键单击NetTiers.cst文件,选择Execute

    运用CodeSmith Studio实现C#项目构架

    6,首先要选择你的数据源,选择Choosing Source Database

    运用CodeSmith Studio实现C#项目构架

    7选择右边带…的按钮

    运用CodeSmith Studio实现C#项目构架

    8,单击Add按钮

    运用CodeSmith Studio实现C#项目构架

    9,首先选择Provider Type,选择

    然后自己取一个名字,再点击右边带…的按钮

    找到自己的数据库

    运用CodeSmith Studio实现C#项目构架

    10,选择后Ok就可以了,再退回到这里并且选择你建立的数据库

    运用CodeSmith Studio实现C#项目构架

    11,修改你生产的网站的存储路径,在MappingFile中修改,注意下面的也要修改并且前面的都要一样,如图所示

    运用CodeSmith Studio实现C#项目构架

    12,将下面的ExecuteSql改为true,

    InculdComponentLayer改为ServiceLayer,

    ProcedurePrefix改为TK_

    运用CodeSmith Studio实现C#项目构架

    13,最后在点击下面的Generate就可以了

    运用CodeSmith Studio实现C#项目构架

    在VS中的操作

    找到对应的文件夹打开

    对与下面的文件

    运用CodeSmith Studio实现C#项目构架

    都要打开

    然后右击“引用”文件夹

    运用CodeSmith Studio实现C#项目构架

    选择添加引用

    最重要的引用:

    运用CodeSmith Studio实现C#项目构架

    再选择浏览

    运用CodeSmith Studio实现C#项目构架

    找到对应的文件夹,下面的reference

    运用CodeSmith Studio实现C#项目构架

    打开并且全选

    运用CodeSmith Studio实现C#项目构架

    确定后就可以了,其他的都一样的,应用完后就可以了

    这时候利用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 实体数据源