利用CodeSmith为SQL Server CE生成项目代码

摘要:CodeSmith是很多.NET开发人员至爱的开发辅助工具,它能够使开发人员从大量枯燥无味的重复编码中解脱,集中精力解决实际业务问题和技术问题。本文将介绍如何将CodeSmith用于Windows Mobile项目,以SQL Server Compact Edition数据库作为代码生成的依据生成项目代码。

什么是代码生成器?

代码产生器是产生式编程(Generative Programming)在实际应用中的一种产物。它以系统建模为基础,通过抽象各种系统间的共性与特性,利用代码模板和组件重用技术,自动产生满足客户需求的软件产品。从而降低成本,减少软件推向市场的时间,并且保证更好的产品质量。最终取得规模经济和范围经济的优点。2004年我还在大学读书的时候曾开发过一个基于模板引擎的代码生成器——RapidTier,当时这个作品还获得了广东省高校杯软件设计大赛的二等奖。在.NET的世界里,目前最有名的代码生成器当属CodeSmith和MyGeneration。这两款代码生成器都是基于模板引擎的,使用起来方便灵活,而且模板资源非常丰富。

CodeSmith 简介

CodeSmith 是一个基于模板的代码生成器,你可以利用它来生成任何文本语言的代码。CodeSmith 生成的代码可以通过模板的属性来定制。CodeSmith 模板的语法跟 ASP.NET 非常相似,你可以在模板中使用 C# 或 VB.NET 控制代码的生成。通常,开发人员利用CodeSmith根据SQL Server或Oracle等大型数据库生成各种项目代码(如:存储过程、数据访问层、业务逻辑层、表现层等)。今天将向各位介绍如何利用CodeSmith为移动数据库SQL Server Compact Edition生成Windows Mobile项目的代码。

配置SchemaProvider

CodeSmith通过SchemaProvider来支持各种数据库。在CodeSmith Professional 4.1.2安装后,默认只支持SQL Server、Oracle、Access、MySQL等数据库类型。如果需要支持其他类型的数据库,可以到网上搜索相关数据库的SchemaProvider实现,或者自己手动编写代码实现ISchemaProvider接口。

最近,我从网上找到了SQL Server Compact Edition(3.1)的SchemaProvider实现,经过代码调整和调试,现在跟大家分享一下。可以从这里下载到这个SchemaProvider相关的DLL,下载后将其解压,并将SchemaExplorer.SqlCeSchemaProvider.dll和System.Data.SqlServerCe.dll文件复制到CodeSmith的SchemaProvider目录下(C:/Program Files/CodeSmith/v4.1/SchemaProviders)。



配置数据源

启动CodeSmith,点击左边停靠的Schema Explorer窗口上方点击“Manage Data Sources”工具栏按钮,打开Data Source Manager窗口。

Data Source Manager窗口打开后,点击Add按钮添加新的数据源。在Data Source窗口中,数据源名称(Name)输入“Northwind sqlce”,提供程序类型(Provider Type)选择SqlCeSchemaProvider,连接语句输入“data source=c:/Northwind.sdf”,假设你已经将SQL Server Compact Edition自带的Northwind.sdf数据库复制到C盘根目录了。



你可以通过点击Test按钮测试一下是否正常连接,然后点击OK保存数据源,回到Data Source Manager窗口,现在看到多了一个叫“Northwind sqlce”的数据源了。



“Northwind sqlce”数据源已经添加成功,点击Close按钮关闭Data Source Manager窗口。回到Schema Explorer窗口,展开“Northwind sqlce”数据源,浏览各个表的字段和属性。


生成代码

在CodeSmith右边停靠的Template Explorer窗口打开自带的模板“CodeSmith 4.1 Samples/ActiveSnippets/CSharp/TableProperties.cst”。这个模板可以从一个数据库的表的所有字段生成对应的实体类的所有属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值