代码改变世界

.net企业级架构实战之3——业务对象建模及codesmith模板

2008-09-14 18:17  莫耶  阅读(2116)  评论(1编辑  收藏  举报

  在软件开发的需求调研完成时,应着手设计业务对象模型。
模型应恰到好处地容纳业务对系统的需求——不冗余致拖累系统,不残缺致无法满足业务,因此,建模忠实地反映了调研工作的成效。
建模的工具软件有很多,如Rational、Visual Case、UModel,不过本人基本上习惯了PowerDesigner:功能适用,各种模型能自由转化,具有不错的正反向数据库工程能力,还能良好地支持C#。OK,来建一个数据模型(用于ORM):

  1、PowerDesigner数据库建模
  PowerDesigner版本为12.0,“新建”一个“Physical Data Model”(物理数据模型),在其中构建一张“Table”(表)。此处的TB_ARTIST代表的是容纳艺人对象的表;

  需要将它在数据库中生成,可以在PowerDesigner中完成这步操作。点选“DataBase”下的“Connect”(Ctrl+Shit+N),将开始连接数据库:

  如果(Machine data source)数据源中不存在需要的数据库连接,可点击“Add“按钮,添加一个ODBC连接,操作很简单,此处不累述;连接上数据库后,选中要生成的表对象,选取“Database”菜单下的“Genernate Database”项,生成描述表结构的sql脚本文件:

 此处可以选择“Generation type”(生成类型),是只生成脚本,还是通过ODBC连接直接生成表。流程大同小异,选择“ODBC Generation“,一步到位:

  在生成操作前,会弹出“Excute SQL Query”对话框,提示确认即将运行的脚本内容,点击“Run”按钮,表就会生成好在数据库中。
基本上,PowerDesigner提供了完备的数据库工程功能,以辅助软件工程师专心设计。

  2、CodeSmith模板生成nHibernate实体:
利用模板工具,生成实体类这种事情几乎不用写一行代码,效率提升,精力省下来干点值得投入的事。
这类工具软件也不少,CodeSmith就是其中的佼佼者之一。由于贯穿此系列中的实例用到nHibernate,所以就来看看模板生成nHibernate实体类(C#)和配置文件(hbm.xml)吧:
CodeSmith版本为4.1.2,选择右侧的"nHibernate.cst”模板,按右键选"Excute"项:

  在弹出的对话框中,需要配置 生成文件的存放路径、ODBC数据源、生成的实体类程序集名称、生成的实体类引用空间名称、需要剔除的表名前缀(生成的实体类文件名称):

  点击“Generate”,数据库中的表,就变成了一个个pono类文件和.hbm.xml配置文件,躺在文件夹里了。

  借用工具,我们可以四两拨千金,专注于业务开发。在随后的实例中,将利用这些生成的实体模型,集成到系统的数据访问体系(Spring.net+nHibernate)中去。当然,那也是件很轻松的事~