NetTiers模板属性说明 2.3.0

这是NetTiers 2.3.0.b2版的属性说明,比照以前的版本多了一些属性。做了一个Excel表,但无法在这里放下全部的信息。有空间可以上传就好了。

 

属性名称 默认值 名称
01.GettingStarted - Required   必填项
ChooseSourceDatabase 选择数据库
MappingFile c:\NetTiers\Output\Mapping.config 影射文件
OutputDirectory c:\NetTiers\Output 输出目录
RootNameSpace 根节点命名空间
01b.FilterbyIndividualObject - Optional   可选项
EnumTable 选择枚举表
SourceTable 选择需要生成的表
SourceViews 选择需要生成的视图
02.FrameworkGeneration - Optional   可选项
AutoIncrementBuildVersion True 自动包含编译的版本
CustomCodeFolderName App_Code 自定义代码文件夹名称
DotNetVersion v3_5 DotNet版本
EntLibVersion v4_1 微软企业库的版本
EqualitySemantics Value
ExecuteSql False 执行SQL
IncludeComponentLayer None 生成组件层
IncludeDatabaseFeatures None 包含数据库特性
IncludeGenerateDate False 包含生成的日期
IncludeUnitTest None 包含单元测试
IncludeWCFDataAttributes False 包含WCF属性
IncludeXMLAttributes False 包含XML属性
LaunchVisualStudio False 运行
NameConversion None 名称转换
SerializeEntityState False 序列化实体状态
SQLFolderName SQL SQL文件夹名称
TimeStandard Local 标准时间
ValidationType Nettiers 验证类型
ViewReport True 生成完成后显示报表
VisualStudioVersion v2008 VisualStudio版本
03.Namespace - Required 命名空间 必填项
BusinessLogicLayerNameSpace Entities 业务逻辑层命名空间
ComponenLayerNameSpace 组件层命名空间
DataAccessLayerNameSpace Data 数据访问层的命名空间
UnitTestNameSpace UnitTests 单元测试命名空间
04.General - Advanced   高级选项
CompanyName 公司名称
CompanyURL 公司网址
SignAssembly False SNK公钥
05.WebLibrary - Advanced   高级选项
DataSourceEnableTransactionDefault True
GenerateWebLibrary True 生成WebLibrary
IncludeDesingTimeSupport True 包含设计时支持
06.Web - Advanced   高级选项
AttemptCreateLocalVirtualDirectory False 尝试创建本地虚拟目录
GenerateWebService False 包含WebService
WebServiceOutputPath c:\NetTiers\Output\WebServices WebService的输出路径
WebServiceUrl http://localhost/Services WebService的URL
06b.WebSite - Advanced   高级选项
DateFormat MM/dd/yyyy 日期格式
GenerateWebSite True 创建Web站点
GenerateWebSiteAdmin True 创建Web站点管理员
IncludeAtlasLibrary False 包含微软的Ajax库
IncludeAtlasToolkit False 包含Ajax扩展工具
OverwriteWebConfig False 覆盖web.config文件
UseWebAppProject False 使用web项目
WebAdminSiteName 管理员站点名称
07.CRUD - Advanced   高级选项
AllowCustomProcMultipleResults False
CSPUseDefaultValForNonNullableType False 自定义存储过程为nullable类型使用默认值
CustomNonMatchingReturnType DataSet
CustomProcedureStartsWith _{0}_ 自定义存储过程的前缀
DropStyle Entity 选择Entity的话生成後Drop删除已经生成的存储过程,选择All的话,会删除满足存储过程前缀,不满足自定义存储过程前缀的存储过程
IncludeCustoms True 包含自定义存储过程
IncludeDelete True 包含delete存储过程
IncludeDrop True 是否生成drop语句,如果是则根据DropStyle生成
IncludeFind True 生成Find存储过程
IncludeGet True 包含Get存储过程
IncludeGetList True 包含GetList存储过程
IncludeGetListFK True 生成根据外键查询的存储过程
IncludeGetListIX True 生成根据唯一键查询的存储过程
IncludeInsert True 生成Insert存储过程
IncludeManyToMany True 生成多对多关系
IncludeRelations True 生成关联
IncludeSave True 生成保存
IncludeUpdate True 生成更新
IsolationLevel None 事务隔离级别
LibraryPath References
ParseDbColDefaultVal False 使用数据库字段默认值初始化实体属性
RetryEnabled False 允许重试,当执行出错时允许重试
RetryMaxAttempts 5 重试次数
RetrySleepStyle Constant 重试等待类型
RetrySleepTime 1000 重试间隔时间
08.StoredProcedure - Advanced   高级选项
DeleteSuffix _Delete 存储过程delete语句的前缀
FindSuffix _Find 存储过程find语句的前缀
GrantReadUser
GrantUser 存储过程grant语句的前缀
InsertSuffix _Insert 存储过程insert语句的前缀
ProcedurePrefix 存储过程的前缀
SelectAllSuffix _List 存储过程selectall语句的前缀
SelectSuffix _Get 存储过程select语句的前缀
UpdateSuffix _Update 存储过程update语句的前缀
09.Code Style - Advanced   高级选项
AliasFilePath 别名路径
BaseClassFormat {0}Base 基类{0}Base
ChangeUnderscoreToPascalCase True 将_转换为Pascal
CollectionFormat {0}Collection 子集{0}Collection一对多时,会包含子表(数据)的集合
ColumnClassNameFormat {0}Column
ComparerClassNameFormat {0}Comparer
EntityFormat {0} 实体格式默认{0}
EntityKeyFormat {0}Key EntityKey格式{0}Key
EnmuFormat {0}List 枚举格式{0}List
EventArgesClassNameFormat {0}EventArgs
EventHandlerClassNameFormat {0}EventHandler
GenericListFormat TList<{0}> Nettiers自带的泛型集合之一TList<{0}>表使用
GenericViewFormat VList<{0}> 泛型集合之一VList<{0}>视图使用
InterfaceFormat I{0} 接口格式I{0}
ManyToManyFormat {0}From{1} 多对多格式{0}From{1}
MethodNames 方法名称
MethodNames BulkInsert BulkInsert 批量插入方法的名称
MethodNames DeepLoad DeepLoad 主从表查询方法的名称
MethodNames DeepSave DeepSave 主从表保存方法的名称
MethodNames Delete Delete 删除方法的名称
MethodNames Find Find 查询方法的名称
MethodNames Get Get Get方法的名称
MethodNames GetAll GetAll 查询全部方法的名称
MethodNames GetPaged GetPaged 分页查询方法的名称
MethodNames GetTotalItems GetTotalItems 查询行数方法的名称
MethodNames Insert Insert 插入方法的名称
MethodNames Save Save 保存方法的名称
MethodNames Update Update 更新方法的名称
ProviderFormat {0}Provider 提供者命名格式
SafeNamePrefix SafeName_
ServiceClassNameFormat {0}Service Service类名称前缀
StrippedTablePrefixes tbl;tbl_ 剥离表的前缀
StrippedTableSuffixes _t 剥离表的后缀
UsePascalCasing Style2 使用PascalCasing
09.WinFormLibrary - Advanced   高级选项
GenerateWinLibrary False 生成WinLibrary
10.WebLibrary.Security - Optional   安全选项
EntityMembershipUserPKCol
GenerateWebSecurity False
MembershipUserMapFile
UseMD5Hash False 使用MD5Hash加密

可以在资源管理器中,直接执行.

Tag标签: NetTiers
GettingStarted - Required
ChooseSourceDatabase 选择数据库
MappingFile Mapping文件位置(会根据output目录自动更改,不需要设置)
OutputDirectory 文件输出目录
RootNameSpace 根节点的命名空间
Filter by Individual Objects - Optional
EnumTables 枚举表,表中的所有数据都会被用作枚举类型,要求:第一列为主键,第二列为唯一键,第三列为描述,必须添加到SourceTables
SourceTables 需要生成的表
SourceViews 需要生成的视图
FrameworkGeneration - Optional
AutoIncrementBuildVersion 自动提升版本
EntLibVersion 微软企业库的版本V2或V3
ExecuteSql 生成后自动执行SQL
IncludeComponentLayer 生成组建层(service或domain)
IncludeDatabaseFeatures 是否包含数据库特性(sql2005特有)
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 &nbsp;
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 &nbsp;
DeleteSuffix 存储过程 delete 语句的前缀
FindSuffix 存储过程 find 语句的前缀
GrantUser 存储过程 grant 语句的前缀
InsertSuffix 存储过程 insert 语句的前缀
ProcedurePrefix 存储过程的前缀
SelectAllSuffix 存储过程 select all 语句的前缀
SelectSuffix 存储过程 select 语句的前缀
UpdateSuffix 存储过程 update 语句的前缀
Code style. - Advanced &nbsp;
AliasFilePath 别名路径
BaseClassFormat 基类 {0}Base
ChangeUnderscoreToPascalCase 将 _ 转换为 Pascal
CollectionFormat 子集 {0}Collection 一对多时,会包含子表(数据)的集合
EntityFormat 实体 默认{0}
EntityKeyFormat EntityKey {0}Key
EnumFormat 枚举 {0}List
GenericListFormat Nettiers自带的泛型集合之一 TList&lt;{0}&gt; 表使用
GenericViewFormat 泛型集合之一 VList&lt;{0}&gt; 视图使用
InterfaceFormat 接口 I{0}
ManyToMayFormat 多对多 {0}From{1}
MethodNames &nbsp;
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 &nbsp;
GenerateWinLibrary 生成winform的控件库
&nbsp; &nbsp;
{FKField.name}Source 建立有外键的列可以查询到关联表的数据
{table.name}DataSource EntityDatasource 实体数据源

 

 

15分钟内快速构建数据访问层

下载链接

 

介绍

通过本文你可以学习到如何利用微软企业库、CodeSmith、.NetTiers模板在少于15分钟内快速构建数据访问层。

从现在起我们把数据访问层(Data Access Layer)简称为DAL,它是程序中和数据库进行交互的层。手写DAL层代码是非常枯燥无味,浪费时间的重复活动,还有可能在编译程序的时候出现好多漏洞。

我们需要确保已经安装了SQL Server的Northwind数据库,但是这个例子也可以运行在其它任何数据库上。当然了,看完文章后你将不会再单调无味的浪费时间去为你的应用程序写DAL层代码了,而是更快、更简单。

如果你看完这篇文章你将会在1分钟内使用最佳实践来创建一个数据访问层(其它14分钟是用来第一次下载所需的软件)。

代码生成概述

代码生成,或者使用工具软件生成代码,不是一个新的概念。实际上,代码生成已经很普遍了。本篇文章我们用CodeSmith来生成DAL层的代码以及T-SQL脚本。

CodeSmith是一个开发者常用工具,它可以使用模板来输出你想要的格式代码。你可以使用模板来生成任何你想要的代码,功能特别强大,本文就是用了一个.NetTiers模板。

 

第一步 安装软件

首先我们就是下载CodeSmith和.NetTiers,其中前者是30天试用版(当然网上也有破解工具,当前最新版是3.2,是for .net 2.0的,我们下载3.1或者3.0版就行)

下载并安装CodeSmith

http://www.codesmithtools.com/

CodeSmith已经内置了好多模板,并且我们一会儿会让它包含进我们需要的.NetTiers模板,安装好CodeSmith,我们下载.NetTiers模板库。

为CodeSmith下载.NetTiers模板库

http://cstemplates.sourceforge.net/

在上面的地址里下载最新的.NetTiers模板库安装文件。

最后一步就是确保你安装了SQL Server数据库并且准备好连接到数据库的连接字符串。

第二步– CodeSmith

打开CodeSmith,我们先快速熟悉一下它的用法。

前文介绍过CodeSmith是一个模板驱动的工具。在CodeSmith的右边有一个模板浏览器窗口,它可以让你快速使用你已经安装的模板,见下图。

 

 

我们先来学习一下使用模板,双击Hashtable.cst模板。

Hashtable.cst是用来生成强类型集合的hashtable类型的模板。我们再来快速看一下CodeSmith的另一个窗口,属性窗口。

 

 

属性窗口可以让你来设置模板的属性,如果使用Hashtable.cst模板,我们需要设置ClassName,ItemTypeKeyType属性。举个例子,我们要创建一个Person对象的集合,并且使用integer类型键来访问的PersonCollection集合。你需要把在属性窗口里把ClassName设置成PersonCollection,ItemType设置成PersonKeyType设置成int。点击工具栏里的run按钮,就可以生成你需要的强类型集合的源码了。

你看一下Hashtable.cst你就会发现它有点儿像ASP.NET的语法,其实CodeSmith模板就是使用类似ASP.NET的形式来生成你想要的代码,只不过是ASP.NET是用来生成HTML代码的,而CodeSmith是用来生成你需要的源代码的。

你要记住的一点是CodeSmith不会自动生成你需要的代码,但你可以自己定义模板来生成所有你想要的代码。

第三步 –生成数据访问层

我们已经基本理解了CodeSmith的用法,现在来演示如何使用.NetTiers模板。

记住,CodeSmith允许你快速的生成代码,并且很少会有手写代码造成的错误。.NetTiers模板生成的代码也是微软推荐的数据访问的最佳实践。

First we need to add the .NetTiers templates to the CodeSmith Template Explorer:

首先我们需要把.Nettiers模板添加到模板浏览器窗口。

  1. 在模板浏览器点击打开目录图标并浏览包含模板的目录
  2. 选择.NetTiers的安装目录,我的安装目录是是C:\Program Files\SerialCoder\NetTiers 0.9.2 - Caribert\Templates\
  3. 选择后就会在模板浏览器窗口里添加一个文件夹,展开它并选中NetTiers.cst模板
  4. 现在我们来配置数据连接字符串,打开NetTiers.cst模板,在属性窗口里点击SourceDataBase属性后面的对话框。
  5. 在这个窗口里你可以新创建一个自己的数据源,如下图。
  6. 测试一下连接是否成功,点击OK按钮关闭此窗口,然后选择你刚才创建的数据源名字。
  7. 最后,这是EntireDatabase属性为True,NameSpace属性为Demo,OutputDirectory属性为你想输出的目录,当然你需要提前创建好要生成代码的目录。

至此,你已经完成了NetTiers.cst模板的所有属性设置,它看起来应该如下图。

 

 

当然我们没有告诉你所有的关于.NetTiers的属性设置,但是对于生成扑通的DAL层代码已经足够了,点击工具栏里Run按钮(小箭头)就可以生成代码了。

注意:你建立的数据表一定要设置主建哦,如果没有主建,这个表就不会生成响应的代码,你点了Run按钮后会弹出一个报表,你可以看到都生成了哪些表的相关代码。

第四步 – 查看生成的代码

用Visual Studio .NET打开你刚才设置的代码输出目录里(我设置的是c:\NetTiers\Northwind_Demo\ directory)的Demo.sln解决方案。

我们来快速看一下解决方案包含的项目和文件。

 

 

You should find 3 projects within the solution:

你会看到有解决方案里包含3个项目

  • Demo –此项目包含了你要和数据库交互的主要的类。
  • Demo.DataAccessLayer –  此类库包含了实际的数据库操作执行代码
  • Demo.DataAccessLayer.SqlClient –此类库包含了微软推荐的访问数据库的设计模式和最佳实践(Microsoft Patterns & Practices classes)的代码。

第五步–编译、完成

接下来,我们用Visual Studio来编译项目。

祝贺你,你现在已经有了一个使用微软推荐的访问数据库的最佳实践的数据库访问层

现在你就可以在其它项目里使用你的DAL层了,举个例子,你需要获取,更新和删除一条员工的记录。

using Demo.DataAccessLayer.SqlClient;
 
// Select by primary key
Employee employee = SqlDataRepository.EmployeeProvider.GetByEmployeeID(13);
employee.FirstName = "John";
employee.LastName = "Doe";
 
// Save changes
SqlDataRepository.EmployeeProvider.Save(employee);
 
// Delete record
SqlDataRepository.EmployeeProvider.Delete(employee);
    

关于更多生成DAL层的信息,参考下面的.NetTiers的链接。

http://cstemplates.sourceforge.net/nettiers-manual-v1.html

记住,你的数据访问层的代码都是通过模板生成的。如果你修改了数据库的结构,你只需要简单的通过模板重新生成一下DAL层代码就行了。(当然了,如果你在重新生成代码前修改了一下生成的代码,再重新生成就给你覆盖了,这个怎么办呢,比较麻烦,你可以写一个继承自自动生成类的子类,在那里重写相关的方法,或者在.NET 2.0里使用多文件类)另外你可以根据你的想法扩展你的模板,包括注释,命名约定,模式等等。

小节

 

CodeSmith可以根据你的模板生成任何你想要的代码,本文向你演示了如何在短短几分钟内使用.NetTiers模板来在你应用程序中创建使用访问数据库最佳实践的数据库访问层。

你可以在这里查看视频演示:

http://community.codesmithtools.com/r.ashx?id=1

CodeSmith 3.1的一个新特征就是可以计算代码行。它可以保守的计算CodeSmith生成的代码。

 

 

 

这里可以看到.NetTiers生成了91,559行代码。假设一个很厉害的程序员一小时可以写60行代码,写完这些代码需要1,800小时。加入一个厉害的程序员你每小时要付给它接近60美元,CodeSmith和.NetTiers帮你公司节省了1,800小时的时间和109,000美元。(好像夸张了点儿哦。)

现在获取一个CodeSmith并发挥它的威力吧。

CodeSmith和.NetTiers 相关资源

如果你对CodeSmith有一些问题,可以访问它的社区来获取解决: http://community.codesmithtools.com/. CodeSmith社区里有好多人写的模板并共享给每个人下载,你可以去看看有没有自己需要的。

如果你想想购买CodeSmith,可以访问它的网站http://www.codesmithtools.com/. 你可以获取一个授权来免除30天试用的限制。如果你还有问题,可以给它们的售后支持邮箱发email sales@codesmithtools.com.

如果你对.NetTiers模板有问题,可以访问下面的论坛:

http://community.codesmithtools.com/forums/16/ShowForum.aspx

英文链接:

Build a Data Access Layer in less than 15 minutes

http://community.codesmithtools.com/blogs/tutorials/archive/2006/02/13/nettiers.aspx

另外借此贴调查一下各位的持久层用的都是什么呀,NHibernate, ibatis.net,DAAB,SPL,SQLHelper,CMP还是其它的,我想以后在项目中主要用一下企业库里的DAAB,不知道适合适合企业开发,它有那些缺点呀。

posted @ 2010-09-16 10:08  庙子  阅读(524)  评论(0编辑  收藏  举报