|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
语法弄明白@interface@property这些工具总要知道是干嘛的怎么用基础库择要:CodeSmith是良多.NET开辟职员至爱的开辟帮助工具,它可以使开辟职员从大批单调有趣的反复编码中摆脱,会合精神办理实践营业成绩和手艺成绩。本文将先容怎样将CodeSmith用于WindowsMobile项目,以SQLServerCompactEdition数据库作为代码天生的根据天生项目代码。
甚么是代码天生器?
代码发生器是发生式编程(GenerativeProgramming)在实践使用中的一种产品。它以体系建模为基本,经由过程笼统各类体系间的个性与特征,使用代码模板和组件重用手艺,主动发生满意客户需求的软件产物。从而下降本钱,削减软件推向市场的工夫,而且包管更好的产物质量。终极获得范围经济和局限经济的长处。2004年我还在年夜学念书的时分曾开辟过一个基于模板引擎的代码天生器——RapidTier,事先这个作品还取得了广东省高校杯软件计划年夜赛的二等奖。在.NET的天下里,今朝最着名的代码天生器当属CodeSmith和MyGeneration。这两款代码天生器都是基于模板引擎的,利用起来便利天真,并且模板资本十分丰厚。
CodeSmith简介
<br>CodeSmith是一个基于模板的代码天生器,你能够使用它来天生任何文本言语的代码。CodeSmith天生的代码能够经由过程模板的属性来定制。CodeSmith模板的语法跟ASP.NET十分类似,你能够在模板中利用C#或VB.NET把持代码的天生。一般,开辟职员使用CodeSmith依据SQLServer或Oracle等年夜型数据库天生各类项目代码(如:存储历程、数据会见层、营业逻辑层、体现层等)。明天将向列位先容怎样使用CodeSmith为挪动数据库SQLServerCompactEdition天生WindowsMobile项目标代码。
设置SchemaProvider
CodeSmith经由过程SchemaProvider来撑持各类数据库。在CodeSmithProfessional4.1.2安装后,默许只撑持SQLServer、Oracle、Access、MySQL等数据库范例。假如必要撑持其他范例的数据库,能够到网上搜刮相干数据库的SchemaProvider完成,大概本人手动编写代码完成ISchemaProvider接口。
比来,我从网上找到了SQLServerCompactEdition(3.1)的SchemaProvider完成,经由代码调剂和调试,如今跟人人分享一下。能够从这里下载到这个SchemaProvider相干的DLL,下载后将其解压,并将SchemaExplorer.SqlCeSchemaProvider.dll和System.Data.SqlServerCe.dll文件复制到CodeSmith的SchemaProvider目次下(C:ProgramFilesCodeSmithv4.1SchemaProviders)。
<br>
设置数据源
启动CodeSmith,点击右边停靠的SchemaExplorer窗口上方点击“ManageDataSources”工具栏按钮,翻开DataSourceManager窗口。
<br>
DataSourceManager窗口翻开后,点击Add按钮增加新的数据源。在DataSource窗口中,数据源称号(Name)输出“Northwindsqlce”,供应程序范例(ProviderType)选择SqlCeSchemaProvider,毗连语句输出“datasource=c:Northwind.sdf”,假定你已将SQLServerCompactEdition自带的Northwind.sdf数据库复制到C盘根目次了。
<br>
你能够经由过程点击Test按钮测试一下是不是一般毗连,然后点击OK保留数据源,回到DataSourceManager窗口,如今看到多了一个叫“Northwindsqlce”的数据源了。
<br>
“Northwindsqlce”数据源已增加乐成,点击Close按钮封闭DataSourceManager窗口。回到SchemaExplorer窗口,睁开“Northwindsqlce”数据源,扫瞄各个表的字段和属性。
<br>
天生代码
在CodeSmith右侧停靠的TemplateExplorer窗口翻开自带的模板“CodeSmith4.1SamplesActiveSnippetsCSharpTableProperties.cst”。这个模板能够从一个数据库的表的一切字段天生对应的实体类的一切属性(Property)界说代码。
<br>
<br>TableProperties.cst
<%--
Name:DatabaseTableProperties
Author:PaulWelter
Description:Createalistofpropertiesfromadatabasetable
--%>
<%@CodeTemplateLanguage="C#"TargetLanguage="C#"Debug="False"Description="Createalistofpropertiesfromdatabasetable."%>
<%@PropertyName="SourceTable"Type="SchemaExplorer.TableSchema"Category="Context"Description="Tablethattheobjectisbasedon."%>
<%@MapName="CSharpAlias"Src="System-CSharpAlias"Description="SystemtoC#TypeMap"%>
<%@AssemblyName="SchemaExplorer"%>
<%@ImportNamespace="SchemaExplorer"%>
<%foreach(ColumnSchemacolumninthis.SourceTable.Columns){%>
private<%=CSharpAlias[column.SystemType.FullName]%>_<%=StringUtil.ToCamelCase(column.Name)%>;
public<%=CSharpAlias[column.SystemType.FullName]%><%=StringUtil.ToPascalCase(column.Name)%>
{
get{return_<%=StringUtil.ToCamelCase(column.Name)%>;}
set{_<%=StringUtil.ToCamelCase(column.Name)%>=value;}
}
<%}%>模板被翻开后,在CodeSmith右侧停靠的Properties窗口选择SourceTable属性,点击中间的“...”按钮扫瞄并选择一个Northwind.sdf数据库的表。这里我们选择Categories表,并点击Select按钮断定。
<br>
如今能够按F5天生代码了,天生的了局以下所示:
天生的代码
privateint_categoryID;
publicintCategoryID
{
get{return_categoryID;}
set{_categoryID=value;}
}
privatestring_categoryName;
publicstringCategoryName
{
get{return_categoryName;}
set{_categoryName=value;}
}
privatestring_description;
publicstringDescription
{
get{return_description;}
set{_description=value;}
}
privateSystem.Byte[]_picture;
publicSystem.Byte[]Picture
{
get{return_picture;}
set{_picture=value;}
}你还能够选择其他的表或其他模板天生代码试一试,体验一下CodeSmith的壮大的地方。
总结
经由过程下面的先容和示例演示,信任人人都认同CodeSmith的确很好很壮大。固然,这里只是演示了一个很复杂的例子,你能够依据项目标实践必要本人编写模板,按本人的体例往天生项目代码。编写模板最快速的办法就是基于现有对照相似的模板举行修正。CodeSmith之以是可以用于SQLServerCompactEdition数据库的代码天生,除后面提到的它经由过程SchemaProvider撑持各类范例的数据库,另有一点很主要的就是SQLServerCompactEdition撑持桌面平台,假如是SQLServerMobile就没有举措做到这一点了。
相干下载:SqlCeSchemaProvider.rar
黎波
博客:http://upto.cnblogs.com/
日期:2008年3月29日
来自:http://www.ckuyun.com/upto/archive/2008/03/29/codesmith-for-sqlce.html
由于封闭文档写的相当好在遇到新框架的时候弄明白框架的功能去文档里搜搜框架的ProgrammingGuide很有用要弄明白框架类的继承结构写iOS的程序不一定都是用OBJC |
|