Database2Sharp代码生成工具使用心得

Database2Sharp是一款主要用于C#代码以及数据库文档生成的工具,软件支持Oracle、SqlServer、MySql、Access、Sqlite等数据库的代码生成,可以生成各种架构代码、生成Winform界面代码、Web界面代码、导出数据库文档、浏览数据库架构、查询数据、生成Sql脚本等,还整合自定义模板和数据库信息的引擎,方便编写自定义模板调试和开发。

1、EnterpriseLibrary架构代码生成

1.1 代码生成总体概述

EnterpriseLibrary代码生成时一个整体性项目代码的生成操作,他能根据设计好数据库信息以及模板文件,生成一个完整性非常高的项目。一般结合我的Winform开发框架进行增量式的项目开发,效率更高,而且更多组件模块的集成,完美的整合,以及模块化的封装,能带给你无穷的开发乐趣同时,使得项目无论从代码风格、用户界面、设计理念,都能保持很好的统一,快速优雅的完成碰到的项目。

使用Database2Sharp来生成框架代码,虽然直接生成的代码,就是一个整体方案的代码,基本上可以直接运行。而Winform开发框架和代码生成工具生成的项目组织上有所不同。下面提供几个注意的地方。

1)代码生成工具生成的代码是基于Project的,而Winform开发框架为了项目数量,方便管理,是把业务层、数据访问层、数据接口层、实体层放到一个工程项目中了(WCF项目会把实体层独立作为一个项目处理),因此生成的代码我们复制到对应的目录位置就可以了,默认命名空间不需要改动。

2)为了代码生成方便,代码生成工具需要把数据库字段的中文说明作为代码注释或者说明的一部分,因此,设计数据库(SqlServer、Oracle等)的时候,我们强烈要求把注释添加到字段说明里面去。

3)数据库表一般需要提供一个主键关键字(建议取名为ID),主键字段可以为自增长的整形类型,也可以是任意字符型。建议SqlServer一般采用自增长整形、Oracle采用Number类型,并为每个表指定一个部分同名的序列名称,如Seq_ABC,其中ABC代表对应的表名。

1.2 数据库表设计

由于我们一般的开发过程是,先设计好数据库,然后生成项目代码框架,再进行调整完善。因此在开发前,我们非常关键的第一步就是要设计好数据库。

数据库设计可以采用多种方式进行,但为了提高设计效率以及方便修改等操作,一般我们最好基于数据库建模软件进行数据库的设计过程,如PowerDeigner就是一个很好的数据库设计平台。如下图所示:

当然数据库设计的时候,也可以指定它们之间的逻辑引用关系,这样对于数据的完整性校验比较有保证,如下图所示。

无论是上面那种设计关系,我们都需要在设计过程中,注意到表字段备注信息,由于在代码生成工具生成代码的时候,很多时候需要使用中文的字段名称来描述,如实体类字段的备注信息、界面的查询字段说明、列表的表头提示等等,这些都是从你设计的数据库表字段备注里面来,因此要特别注意。在PowerDesigner设计软件里面,只需要指定Comment,然后生成SQL的时候,就会有相关的备注信息了。

1.3 代码生成参数配置

基于前面设计好了数据库,生成相关的SQL,然后在数据库管理系统(Oracle/SqlServer/MySql等)上执行脚本,创建数据库成功后。就可以利用代码生成工具进行代码生成了,但生成代码前,需要配置几项参数,以求能够更完美生成项目工程,实现快速使用。
(一)基础参数

在上图我们可以看到,代码生成工具只需要很少的几个属性,就能较好的生成所需的代码。
主命名空间,就是我们的项目代码的命名空间的前面基本不变的部分。如实体类的命名空间一般为WHC.TestProject.Entity,那么主命名一般为WHC.TestProject即可,相应界面层生成后的命名空间为WHC.TestProject.UI,业务逻辑层的命名空间为WHC.TestProject.BLL,数据访问层根据不同的数据库生成不同的命名空间,如Oracle数据访问层命名空间为WHC.TestProject.DALOracle,SqlServer数据访问层命名空间为WHC.TestProject.DALSQL, 而Access数据访问层命名空间为WHC.TestProject.DALAccess等如此类推。
输出目录,顾名思义就是我们代码最终的生成目录了。
过滤表名前缀,是减少代码出现多余的表名前缀。一般在大一些项目上,或者仅仅保持良好的命名习惯上,我们都应该给不同应用范畴的表,通过前缀来进行区分,如我对于基础类可能用“TB_”前缀来区分,对于权限范畴的可能用“T_ACL_”来区分,其他的可能用“T_”来区分等等。这样我们在生成代码的时候,就应该去掉这些多余的前缀,使得我们的业务类更加易读。如字典大类表名称为“TB_DictType”,那么对应的业务类生成应该就是“DictType”了。
(二)别名修改
除了以上的几项设置外,有时候,为了较好调整表名或者字段属性的名称,也增加了一项修改别名的功能,如“ABC”的表名我们不知道是什么意思,如果把它的别名修改为“Company”这样的单词,一般人可能就知道这个类库代表的意义了,别名修改就是为了这样需求而出现的。
别名修改,有表名的别名,和表字段的别名修改两种,如下所示

1.4 代码生成

1.4.1 框架介绍

无论是在项目开始阶段的全新代码生成或者在框架搭建起来后(如基于Winform开发框架、WCF开发框架),虽然起点有所不同,但是都是一个框架模式搭建完善相关的业务模块的。
无论是基于Winform、Webform的开发应用,甚至是基于分布式程序开发的WCF开发模式,利用Database2Sharp都能使你感到事半功倍的成就感,由于它们三者都是在基于EnterpriseLibrary的框架代码生成基础上完成的,这个框架模式是通用于上述几种不同的应用开发框架,它们大致的框架布局如下所示。

 

Winform开发框架以及Web开发框架,它们就是在BLL业务逻辑层之上搭建一层界面展示层而已,而WCF开发框架则还需要在BLL业务逻辑层之上搭建一层WCF服务层,然后在界面层和WCF服务层之间,通过服务应用的方式,增加一层WCF服务层的代理层,如下所示。

 

Winform开发框架适用于开发用户体验好、功能强大的业务管理系统,可以基于单机版数据库(如Access、Sqlite等数据库)或者基于局域网的数据库,如Oracle、SqlServer、MySql、Mongodb、DB2等网络型的数据库应用,也就是我们传统所说的C/S架构模式。

Web开发,一般也可以开发功能强大的业务管理系统,不过较Winform来讲,它的用户体验会差一些,而且需要部署在IIS上,部署会比较麻烦一些,但特点是能够部署分布式的应用,而且不用安装软件,直接在IE、Chrome浏览器上打开URL连接即可使用,是传统所说的B/S应用模式。

而WCF开发框架,是利用了C/S应用模式里面的程序良好的界面体验性、响应快速性等特点,也充分利用了B/S应用模式里面的分布式架构特点,是一种融合前两种框架特点应用模式,对于要求分布式,有要较好的用户体验性,这种框架是很好的选择。

1.4.2 数据库连接配置

了解了不同的框架用途,我们就可以利用代码生成工具来搭建我们所需的业务管理系统了。
第一步,配置对应数据库连接信息。数据库SqlServer的配置信息如下所示。

Oracle数据库配置信息如下所示:

Oracle数据库除了配置以上信息外,还要注意的是,需要利用NetManager来配置好对应Oracle数据库名称的侦听配置,如下所示。也就是Oracle需要安装好对应版本的Oracle客户端,配置好数据库侦听信息才能使用代码生成工具Database2Sharp访问Oracle数据库表信息,这样是一般常规Oracle工具需要做的操作,包括PLSQL Developer。

MySql数据库配置信息如下所示,注意的是,MySql数据库一般有一些编码的设置,为了有效获取对应数据库表、字段的备注等中文信息,需要设置正确的字符编码才能获取到:

Access数据库配置信息如下所示,一般情况下,只需要指定Access数据库路径即可,如果有密码,填上数据库密码信息。

Sqlite数据库配置信息如下所示,一般情况下,只需要指定Sqlite数据库路径即可。

1.4.3 代码生成

代码生成工具,是结合数据库信息进行代码生成的过程,因此需要先获取对应数据库信息。
第一步,在Database2Sharp左边的树形数据库列表中,单击展开对应数据库的详细表,由于Database2Sharp是一次性加载方式,加载数据库表的信息同时,也会加载相关的视图、存储过程(Oracle、SqlServer)、以及表字段和表之间的关系等等信息。
单击其中一个表,我们可以看到对应该表的字段信息,以及创建表的SQL语句,也就是我们常说的DDL脚本。

第二步,在数据库节点上,单击鼠标右键,选择【代码生成】- 【EnterpriseLibrary代码生成】菜单,开始生成代码如下所示。

第三步,选择相应的数据库以及数据库表,用于代码的生成。

第四步,设置相关的代码生成配置信息,包括项目主命名空间,输出目录,以及过滤表名前缀等。

第五步,确认代码生成操作,一般确认,就会对选定的表进行项目代码的生成操作,生成一体化的整体性解决方案。

如果项目是要生成基于WCF开发框架的,那么勾选“同时生成WCF服务项目”选项即可(工具注册用户可用)。

勾选后,可以修改WCF服务的项目名称,方便创建不同的WCF业务项目。WCF项目是基于VS2010开发环境、.NET4.0框架的项目,这是目前最优的配置信息了。

如果勾选生成后打开解决方案,那么代码生成完成后,就会自动打开项目工程,你可以尝试编译,一般情况下,可以完全编译通过的。

以上就是我对于代码生成工具Database2Sharp的一些总结,希望对大家使用Database2Sharp快速开发项目有所帮助。

本文转自博客园伍华聪的博客,原文链接:Database2Sharp代码生成工具使用心得,如需转载请自行联系原博主。

时间: 2024-09-12 18:20:40

Database2Sharp代码生成工具使用心得的相关文章

代码生成工具之Winform查询列表界面生成

在上面一篇随笔<代码生成工具之界面快速生成>介绍了代码生成工具Database2Sharp的界面生成操作,其中介绍了Web界面(包括列表界面.内容显示.内容编辑界面的生成,另外还介绍了Winform界面的内容编辑界面的生成,本篇主要继续介绍Winform界面生成中的查询列表界面的操作展示等信息. 基于Winform的界面生成,配合我的Winform开发框架,提供了三种不同的界面生成,包括传统界面样式.DotNetBar界面样式和DevExpress界面样式的代码生成,这几种界面是目前Winfo

基于Metronic的Bootstrap开发框架经验总结(18)-- 在代码生成工具Database2Sharp中集成对Bootstrap-table插件的分页及排序支持

在我们开发系统界面,包括Web和Winform的都一样,主要的界面就是列表展示主界面,编辑查看界面,以及一些辅助性的如导入界面,选择界面等,其中列表展示主界面是综合性的数据展示界面,一般往往需要对记录进行合理的分页,集成各种增删改查的按钮等功能.随着开发项目的需求变化,对数据记录分页展示.排序等功能都是常态的要求,因此在代码生成工具中调整了主列表界面的列表展示插件为Bootstrap-table插件,本篇随笔主要介绍在代码生成工具Database2Sharp中集成对Bootstrap-table

调整代码生成工具Database2Sharp的Winform界面生成,使其易于列表工具栏的使用

在Winform界面开发的时候,有时候我们客户喜欢把功能放在列表界面的顶部,这样界面和功能整齐放置,也是一种比较美观的方式,基于这种方式的考虑,改造了代码生成工具的Winform界面生成规则,把增删改查的常规处理功能抽取简化的函数,易于在实际项目中使用工具栏的方式处理. 1.常规的Winform界面 我们在之前的界面中,通常都是使用一些按钮,以及右键菜单的方式进行功能的展示,如下界面所示. 这种方式是我们常规的界面生成和布局方式,对于功能相对较少的业务模块来说,是比较简洁的,多数操作都放在了右键

代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能

在代码生成工具的各种功能规划中,我们一向以客户的需求作为驱动,因此也会根据需要增加一些特殊的功能或者处理.在实际的开发中,虽然我们一般以具体的表进行具体业务开发,但是有些客户提出有时候视图开发也是很常见的,为了提高代码生成和界面生成的效率,基于视图开发的过程也应该支持.还有主从表的界面生成操作,在很多实际的业务领域也是很常见的.基于上面的需求,本次代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能,为客户的高效率开发快马加鞭.保驾护航. 1.基于视图的代码生成和界

代码生成工具Database2Sharp功能功能完善及更新

好久没有更新代码生成工具了,因为很多功能基本上能够应付日常的开发工作了,如C#代码生成.数据库文档导出.Sql脚本生成,但用户在使用过程中也发现了一些需要完善的地方,因此继续完善,以求更加实用方便.现更新了下面几个问题,希望给大家做软件开发的时候有一个启示.1. 所有的模板支持C#2.0的架构,方便转换为高版本的VS格式.    虽然现在很多时候用VS2008来做开发了,但是我们一般来说还是基于C#2.0来进行开发:本次更新考虑有些用户可能还是使用VS2005的开发工具,因此只做了基于VS200

代码生成工具之数据库表及字段名称转义

在上篇随笔<代码生成工具之界面快速生成>中介绍过了代码生成工具Database2Sharp是如何快速生成所需的Web界面以及各种Winform界面,其中包括生成即可运行的Web界面效果,Winform布局信息的生成.这些看似很简单的界面元素生成,其实是需要丰富的数据库元数据信息作为基础的,而且对不同的数据库处理要有所不同.本文介绍不同数据库之间元数据的处理差别,以及如何代码生成工具Database2Sharp如何兼容处理这些问题的. 1.常规的数据库表.字段名称的转义 例如,我们需要获取表的别

代码生成工具之界面快速生成

界面开发,无论对于Web开发,还是Winform开发,都需要耗费一定的时间,特别对于一个数据库字段比较多的界面,一般就需要在编辑界面上摆的更多的控件来做数据显示,每次碰到这个,都有点头痛,反复的机械操作让人挺累,也很烦,但是又必须这样做. 由于数据库字段和界面的排版都有一定的关联关系,因此可以通过代码生成工具Database2Sharp的数据库元数据,包含表名称.备注信息.字段列表,以及每个字段的名称.备注.类型等信息,构造一个基础的界面,把重复机械的部分给快速完成,这就是我所说的界面快速生成.

WCF开发框架形成之旅---结合代码生成工具实现快速开发

我的WCF开发框架推出很久了,一直有不少的朋友支持及提供良好的完善意见,随着利用这种基于Winform界面的WCF开发框架开发了不同类型的项目,各种WCF对象的调用及处理逐渐稳定及统一化,因此是时候让我的开发伴侣(代码生成工具Database2Sharp)来做更多更有技术性的工作了---提供基于我的WCF开发框架模式创建的项目工程及调用WCF的Winform界面处理代码.这样在WCF快速开发框架中,有了更强更高效率的支持,整个项目的开发,就更加是水到渠成,闲庭散步了. 因此,代码生成工具生成框架

Database2Sharp2009 代码生成工具

NHibernate.Castle-ActiveRecord和PetShop架构的C#代码生成工具 Database2Sharp       文件大小:  5655KB   更新时间:  2009-5-7 下载地址:   http://www.iqidi.com/Download/Database2SharpSetup.rar 在线帮助:   2009-5-7修改:增加企业级别的界面自动生成,集成在Enterprise Library架构中,并更新EditControl.SearchContro