技术茶话会主题:CodeSmith&NetTiers Step by Step
2007-11-27 12:58
309 查看
本期茶话会主题:CodeSmith&NetTiers Step by Step
主讲&文档撰写:Jacob.Huang
文档最后统筹:Jimmy.Ke
时间:2007-11-07
参与人员:Diapers Team & Enterprise Product Team
一 技术背景
在Suryani.China的项目中,GenClaims、Warehouse等项目以Microsoft Enterprise Library作为基础的技术架构,包括其中的DataAccess Block、Logger、Exception、Encryption、Cache等等,搭配使用Open Source的MyGeneration作为代码生成器。整体技术架构遵循三层模型,包括Entity包(实体包,与Database一一映射)、Data包(Access to Database,与数据库交互)、Core包(业务逻辑包,对Data包的简单代理以及扩展、事务实现)、Web表现层,其中Entity、Data包、Core包的大部分代码由MyGeneration自动生成,并通过partial class的方式支持自定义扩展。
与这种存储过程和数据驱动的架构类似的解决方案是:CodeSmith + NetTiers组合。CodeSmith作为一个著名的代码生成工具,同样提供了基于模板生成C#、VB.NET、TSQL等语言代码的功能,并且支持ASP.NET语法的自定义模板;NetTiers则提供了一套成熟的基于CodeSmith的模板,在Microsoft Enterprise Library的基础上对其进行了封装和再组织,帮助开发者快速开发遵循三层架构的代码,以期在一定基础上统一并简化对EL的操作,避免重复的工作,减轻开发者的负担。本文是对本次茶话会的总结和扩展,对CodeSmith和NetTiers做一个简单的介绍。Jacol.Huang也在茶话会上分享了他的开发经验。
二 环境安装和配置
首先从www.codesmithtools.com 下载最新版本的Code Smith安装文件(Professional版本,有30天的试用期)。Code Smith有两个版本,Standard 和 Profession版,我们使用Profession 版本,可以编辑模板。
其次从www.nettiers.com 下载最新的Net Tiers包,NetTiers是免费的。
三 Code Smith Step by Step
下载netTiers2.2后,解压到目录,右击选择Excute,打开CodeSmith配置窗口。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/1CodeSmithFolder.jpg)
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/2Excute.jpg)
在CodeSmith配置窗口中编辑配置属性,比如数据源、代码输出目录、数据源表和视图等等。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/3Setting.jpg)
配置完毕后点击Generate生成工程包和代码,如下图所示,包括一份生成报告report.html。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/4Generated.jpg)
CodeSmith的自定义模板支持ASP.NET语法,包括命名空间的引入和属性的读取。可以在模板中定义需要引入的命名空间和CodeSmith配置界面将呈现的属性,如下图所示。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/5ImportSpace.jpg)
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/6Template.jpg)
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/7Script.jpg)
四 NetTiers Step by Step
下图是一个利用NetTiers和CodeSmith生成的解决方案的截图,其中包括Web视图(自动生成的针对单表的维护界面)、Entities实体包、Services业务逻辑包等等。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/8Framework.jpg)
利用NetTiers,还可以生成自定义的存储过程、视图,可以在CodeSmith配置界面中配置生成的存储过程的前缀等属性。如下图所示。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/9Prefix.jpg)
如果要扩展NetTiers框架生成的代码,则可以修改Processor,添加相应的扩展代码。如下图所示。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/10Processor.jpg)
五 与现有技术架构的比较
与现有的MyGeneration自定义模板相比,利用CodeSmith + NetTiers,架构基本上遵循NetTiers所定制的结构,每次修改数据库表结构后都需要重新生成代码,并将其拷贝到解决方案的相应位置。利用CodeSmith生成的自定义存储过程也是一样。
另外,NetTiers是一个相对完善的框架,其生成的文件较多,对硬件的要求也相对较高,特别是大型系统。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/11Compare.jpg)
六 技术参考
参考网站:http://www.cnblogs.com/iCaca/category/80950.html
博客园网友的Net Tiers系列学习笔记
关于EL的可以查看MSDN的相关WebCast
http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/consyscourse/EntLib.aspx
CodeSmith官网:http://www.codesmithtools.com
NetTiers官网:http://www.nettiers.com
15分钟快速构建数据访问层:http://onlytiancai.cnblogs.com/archive/2006/02/16/331700.html
主讲&文档撰写:Jacob.Huang
文档最后统筹:Jimmy.Ke
时间:2007-11-07
参与人员:Diapers Team & Enterprise Product Team
一 技术背景
在Suryani.China的项目中,GenClaims、Warehouse等项目以Microsoft Enterprise Library作为基础的技术架构,包括其中的DataAccess Block、Logger、Exception、Encryption、Cache等等,搭配使用Open Source的MyGeneration作为代码生成器。整体技术架构遵循三层模型,包括Entity包(实体包,与Database一一映射)、Data包(Access to Database,与数据库交互)、Core包(业务逻辑包,对Data包的简单代理以及扩展、事务实现)、Web表现层,其中Entity、Data包、Core包的大部分代码由MyGeneration自动生成,并通过partial class的方式支持自定义扩展。
与这种存储过程和数据驱动的架构类似的解决方案是:CodeSmith + NetTiers组合。CodeSmith作为一个著名的代码生成工具,同样提供了基于模板生成C#、VB.NET、TSQL等语言代码的功能,并且支持ASP.NET语法的自定义模板;NetTiers则提供了一套成熟的基于CodeSmith的模板,在Microsoft Enterprise Library的基础上对其进行了封装和再组织,帮助开发者快速开发遵循三层架构的代码,以期在一定基础上统一并简化对EL的操作,避免重复的工作,减轻开发者的负担。本文是对本次茶话会的总结和扩展,对CodeSmith和NetTiers做一个简单的介绍。Jacol.Huang也在茶话会上分享了他的开发经验。
二 环境安装和配置
首先从www.codesmithtools.com 下载最新版本的Code Smith安装文件(Professional版本,有30天的试用期)。Code Smith有两个版本,Standard 和 Profession版,我们使用Profession 版本,可以编辑模板。
其次从www.nettiers.com 下载最新的Net Tiers包,NetTiers是免费的。
三 Code Smith Step by Step
下载netTiers2.2后,解压到目录,右击选择Excute,打开CodeSmith配置窗口。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/1CodeSmithFolder.jpg)
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/2Excute.jpg)
在CodeSmith配置窗口中编辑配置属性,比如数据源、代码输出目录、数据源表和视图等等。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/3Setting.jpg)
配置完毕后点击Generate生成工程包和代码,如下图所示,包括一份生成报告report.html。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/4Generated.jpg)
CodeSmith的自定义模板支持ASP.NET语法,包括命名空间的引入和属性的读取。可以在模板中定义需要引入的命名空间和CodeSmith配置界面将呈现的属性,如下图所示。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/5ImportSpace.jpg)
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/6Template.jpg)
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/7Script.jpg)
四 NetTiers Step by Step
下图是一个利用NetTiers和CodeSmith生成的解决方案的截图,其中包括Web视图(自动生成的针对单表的维护界面)、Entities实体包、Services业务逻辑包等等。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/8Framework.jpg)
利用NetTiers,还可以生成自定义的存储过程、视图,可以在CodeSmith配置界面中配置生成的存储过程的前缀等属性。如下图所示。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/9Prefix.jpg)
如果要扩展NetTiers框架生成的代码,则可以修改Processor,添加相应的扩展代码。如下图所示。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/10Processor.jpg)
五 与现有技术架构的比较
与现有的MyGeneration自定义模板相比,利用CodeSmith + NetTiers,架构基本上遵循NetTiers所定制的结构,每次修改数据库表结构后都需要重新生成代码,并将其拷贝到解决方案的相应位置。利用CodeSmith生成的自定义存储过程也是一样。
另外,NetTiers是一个相对完善的框架,其生成的文件较多,对硬件的要求也相对较高,特别是大型系统。
![](http://images.cnblogs.com/cnblogs_com/suryani/CodeSmith/11Compare.jpg)
六 技术参考
参考网站:http://www.cnblogs.com/iCaca/category/80950.html
博客园网友的Net Tiers系列学习笔记
关于EL的可以查看MSDN的相关WebCast
http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/consyscourse/EntLib.aspx
CodeSmith官网:http://www.codesmithtools.com
NetTiers官网:http://www.nettiers.com
15分钟快速构建数据访问层:http://onlytiancai.cnblogs.com/archive/2006/02/16/331700.html
相关文章推荐
- 技术茶话会主题:CodeSmith&NetTiers Step by Step
- CodeSmith&NetTiers Step by Step [转]
- CodeSmith&NetTiers Step by Step[转]
- CodeSmith&NetTiers Step by Step [转]
- CodeSmith&NetTiers Step by Step[转]
- [博客园.NET技术Beginner Training Step by Step] 意见讨论和征集
- Part4:Citrix 3D 技术Step by Step配置指导手册
- 一起谈.NET技术,LINQ to SQL快速上手 step by step
- 技术茶话会主题:ASP.NET应用程序性能调优
- 看nettiers整理出来的开发codesmith模板技术要点
- Part4:Citrix 3D 技术Step by Step配置指导手册
- ASP.NET组件设计Step by Step(7)
- Quartz.NET开源作业调度框架系列(一):快速入门step by step-转
- enode框架step by step之框架要实现的目标的分析思路剖析1
- ASP.net 网站项目:Fckeditor使用Step-By-Step
- Step by step—4
- Step by step Install SharePoint Workflow Manager
- ASP.NET组件设计Step by Step
- 黑马程序员 - 技术blog03 by 八戒
- SQL Server AlwaysOn Setup Step-By-Step Guide