运用CodeSmith Studio实现C#项目构架
http://www.cnblogs.com/iCaca/category/80950.html
http://www.cnblogs.com/BlueBreeze/archive/2011/07/17/2108615.html
- 建立好数据库。假如数据库名叫SkillExchange。
- 启动CodeSmith,连接数据库。在Schema Explorer(如果主界面没有显示,在菜单View中将其打开)中点击“+”
图标,在弹出的【Data Source Manager】中选择【Add】。在弹出【Data Source】对话框中,自己给该数据源取一个名称,【Provider Type】选择【SqlSchemaProvider】,点击【Connection String】右侧的按钮,可以帮助生成连接字符串。之后点几个OK,一个Close,数据库连接就大功告成了
点击 view>>Template Explorer在右侧可以看到 有一个 模板浏览窗口已经打开,选择WinformsLibrary 目录下的NetTiers.cst 双击打开 点击导航的 View>>properties windows 可以看到属性窗口被打开 开始配置 ChooseSourceDatabase 添加数据库链接 我用的是SqlServer数据库 所以链接为server=fanxinjian;database=exam;uid=sa;pwd=sa名称
- 注: 要双击才打开才可以配制
- CodeSmith Studio中,NetTiers模板中各个选项的一些解释
Get started --required ----》》》 ChooseSourceDatabase 选择数据库 (你之前配制好的数据库) MappingFileMapping文件位置 (会根据output目录自动更改,不需要设置) OutputDirectory文件输出目录 RootNameSpace根节点的命名空间 01b) Filter by Individual Objects - ptional
怎样用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中的解决方案中的各个空间也生成了许多的方法。
名称 解释 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 实体数据源
运用CodeSmith Studio实现C#项目构架的更多相关文章
- Android studio导入eclipse项目且不改变目录结构
Android studio的安装与配置论坛当中已经有很多在此就不在细说了,现在开始说下如何在Android studio当中导入eclipse的项目且不改变其目录结构和配置,让使用eclipse的同 ...
- Android Studio导入Eclipse项目和一些常见的问题
Android Studio版本 Eclipse项目工程:一个主工程,一个Emojicon依赖库. 有两种方式导入Eclipse工程: 1.兼容Eclipse 2.全新的Android Gradle ...
- Android Studio中新建项目时Your android sdk is out of date or is missing templates的解决办法
在Android Studio中新建项目时出现了以下问题:Your android sdk is out of date or is missing templates. Please ensure ...
- Android studio多个项目之间怎么实现快速切换?
Android studio多个项目之间怎么实现快速切换?Android studio中打开的项目太多了,想切换到一个项目很麻烦,怎么才能快速切换到另一个项目中呢?请看下文详细介绍 在对Android ...
- Android Studio创建库项目及引用
Android Studio创建库项目其实创建的是在主项目下创建Module模块,这个Module模块创建的时候选择库项目模式. 为什么要这样处理呢?因为在Android Studio中一个WorkS ...
- 1.1、Android Studio创建一个项目
Android Studio中的项目包含一个或多个模块.本节帮助你创建一个新的项目. 创建一个新的项目 如果你之前没有打开项目,Android Studio显示欢迎页面,通过点击Start a New ...
- FL studio里的项目设置介绍
FL studio作为具有众多音乐功能,能够制作多轨音频录制,排序和混音的一款专业软件,我们可以借助VST主机,灵活的调音台,高级MIDI和ReWire支持,来创建专业品质的各种音乐曲目. 而今天我们 ...
- android studio git 将项目分享到github,推送到其他平台 码云 等。
android studio git 将项目分享到github,推送到其他平台 码云 等. 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E- ...
- Android Studio导入Eclipse项目的两种方法
Android Studio导入Eclipse项目有两种方法,一种是直接把Eclipse项目导入Android Studio,另一种是在Eclipse项目里面进行转换,然后再导入Android Stu ...
随机推荐
- 剑指offer--面试题22
关键在于思路, 需要两个输入向量,而函数中需要一个辅助栈! 思路:以待判出栈序列为基础,逐个判断它与栈顶元素是否相等,相等则弹出且j++,这表明此元素可为出栈顺序元素,不相等则栈元素不断入栈,直至相 ...
- 8大排序算法图文讲解 分类: Brush Mode 2014-08-18 11:49 78人阅读 评论(0) 收藏
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 常见的内部排序算法有:插入排序.希尔排序. ...
- Hdu 1507 Uncle Tom's Inherited Land* 分类: Brush Mode 2014-07-30 09:28 112人阅读 评论(0) 收藏
Uncle Tom's Inherited Land* Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory 8 (转)
Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory 8http://www.crifan.com/android_emulator_ ...
- switch语句的使用,非常好
这是谭浩强课本上枚举类型的例子,但是我贴这个例子的代码不是因为枚举类型,是因为这个代码使用switch语句用得非常好,值得一贴. 题目是这样的:有红.黄.蓝.白.黑5中颜色的球若干,依次取出3个球,求 ...
- 九个衡量 Rails 应用性能的小方法
你有个绝佳的商业创意,日复一日地将它完善丰满起来.后来,你雇了一群天赋异禀的开发者.Web 设计师和用户体验专家,他们用一种非常棒的框架--Ruby on Rails 帮你实现长久以来的梦想. 你的网 ...
- codeforces 439C Devu and Partitioning of the Array(烦死人的多情况的模拟)
题目 //这是一道有n多情况的烦死人的让我错了n遍的模拟题 #include<iostream> #include<algorithm> #include<stdio.h ...
- 整数划分 Integer Partition(一)
话说今天百度面试,可能是由于我表现的不太好,面试官显得有点不耐烦,说话的语气也很具有嘲讽的意思,搞得我有点不爽.Whatever,面试中有问到整数划分问题,回答这个问题过程中被面试官搞的不胜其烦,最后 ...
- php curl 分离header和body信息
php中可以通过curl来模拟http请求,同时可以获取http response header和body,当然也设置参数可以只获取其中的某一个.当设置同时获取response header和body ...
- 快速排序 Quick Sort
自己写的代码,记录一下.分别记录了两种partition的方法. public class QuickSort { public static void quickSort(int[] nums, i ...