Entity Model Studio系列教程主要向开发者介绍如何使用Entity Model Studio开发工具以及EMLib框架来提高开发软件的效率和生产力。本教程由广联科技开发团队编写。本文是系列教程的第一篇。
一.Entity Model Studio是什么
Entity Model Studio是由广联科技独立研发的辅助软件开发工具。该工具集实体建模,数据库设计,代码及文档生成于一体,从而使得开发者通常需要几个软件才能完成的工作,用Entity Model Studio一个软件就可以完成了。Entity Model Studio还自带了一个ORM框架,叫做EMLib。该ORM框架可以直接使用Entity Model Studio生成的代码,这样开发者使用Entity Model Studio就可以从设计到编码开发一步完成。值得关注的是,EMLib是一个功能非常强大的ORM框架,它给开发者提供了一个完备的面向对象的数据库开发平台。所以说Entity Model Studio及其ORM框架是为软件开发者度身订造的开发利器。
二.为什么选择Entity Model Studio
选择Entity Model Studio绝不是因为这款开发工具是一个大而全的工具,相反这是一款很有针对性的工具,从而才可以显著提高开发效率。
1.设计方法扬弃恰当,易于使用
Entity Model Studio的静态建模设计方法是基于UML标准的,从而使得开发者从设计的最初开始,正确性就有一个很好的保证。但是,Entity Model Studio并没有简单而盲目的实现UML标准,而是有选择有针对性的裁剪了UML标准,从而既保留了UML的强大设计能力和权威性,同时又避免开发者陷入UML繁琐晦涩的概念之中。实际上,开发者在使用Entity Model Studio做建模设计时,甚至感觉不到UML标准的存在,但是UML带给开发者的好处却可以得到。这是Entity Model Studio带给开发者的第一个益处。
2.定位明确,功能实用而到位
UML标准本身是适用于任何类型软件建模设计的,但是Entity Model Studio却不是。Entity Model Studio的定位是提升那些基于数据库的中小型项目的开发效率,实践表明这种提升是非常显著的。这种明确的有针对性的定位,使得Entity Model Studio中的建模标准所面对的概念外延大为较少,从而就可以对更明确,更细致的概念内涵提供更有力的支持,进而显著提升开发效率。由于只面对数据库应用的开发设计,所以在Entity Model Studio中类和实体的概念是一致的,成员和字段的概念是一致,在设计关系时提供了更为详细的属性来帮助开发者完成设计。明确定位以后的这些改进之处,使得Entity Model Studio具备的功能可以对开发者体贴到心坎里。
3.在开发者一定会使用到的地方提升开发效率
Entity Model Studio的功能主要体现在三个方面:静态建模,数据库设计,代码及文档生成。这三个方面的功能都是软件开发过程中实实在在需要完成的事情。同时,Entity Model Studio自带的ORM框架除了提供强大的ORM功能以外,还提供了一个基于宿主语言的Sql语句对象构造接口:实体查询语言(Entity Query Language),简称Eql。Eql可以在源代码编写中显著提升开发者的编码效率。
三.Entity Model Studio如何帮助开发者
Entity Model Studio的功能主要体现在三个方面,所以对开发者的帮助也是从这三个方面实现的。
1.静态模型设计
Entity Model Studio提供了一个图形化的设计界面,用过其它建模设计工具的开发者可以直接上手使用。这种图形化的方式,可以直观清晰的呈现模型的结构,便于开发者表达自己的设计意图。当然很多开发者认为在中小型项目,尤其是小型项目中是没有必要设计静态模型的。因为模型比较简单用大脑直接记忆就可以了。但是抱有这种想法的开发者有一件事情是必须要做的,那就是建数据表。要么使用某一种工具设计数据表然后生成数据库(实际上这些工作在Entity Model Studio中等效于静态建模的工作了);要么直接写Sql语句自己创建每一个数据表(而这又是不太妥当和低效的作法)。所以在Entity Model Studio中静态建模是完全值得去做的事情,开发者不但可以得到一个清晰的模型结构,同时也完成了数据库的设计,可谓付出一份劳动获得两份收获。而且,一旦需求发生变化那么模型及数据库的修改也非常容易。图形化的界面和相关文档还可以帮助开发团队进行有效的沟通。
静态模型设计的另一个优势在于,Entity Model Studio简化了实体通过继承关系而出现的多态性给模型带来的复杂性。比如,一个实体间的关系,关系双方的实体都是多态的,那么外键如何处理?如果全部手工设计这样的数据表的外键是很低效而繁琐的,而常用的数据库设计工具又不具备这样的能力。事实上这种多态性引起的复杂性还体现在其它地方。比如,实体类型成员是多态的,多态实体间多对多关系的处理等等。所以Entity Model Studio提供了图形化的设计界面,让开发者只关注自己的模型设计,而不用关心这些细节,Entity Model Studio自行会为开发者处理。
另外,Entity Model Studio还增加了新的符号来完善静态模型设计的能力。比如:同构关系,关系实体,组合实体等等。这些新的符号使得Entity Model Studio在静态模型的设计能力上是完备的。从而保证Entity Model Studio有能力表达开发者的任何设计意图。
2.数据库设计
Entity Model Studio为开发者提供了所有常用的设计库所需要的功能,比如:字段(也就是实体的成员),索引,触发器,视图,函数和存储过程。而且更为方便的是数据表的设计和静态模型中的实体设计完善而平滑的结合在一起。完成数据表设计,就完成了实体设计;完成了实体设计就完成了数据表设计。
Entity Model Studio对数据库设计的强大支持还体现在实体多态性的处理上。任何父类的字段,触发器,索引以及关系,都会被子类所继承,并且在建立或者同步数据库时得到体现。所以开发者可以使用完完全全的面向对象的设计方法来设计非面向对象的数据库。
Entity Model Studio还提供了数据库同步功能和从数据库生成实体模型的功能。数据库同步功能是为中小型项目中静态模型频繁改动而设计的。考虑这样一种情况,静态模型改了,那么普通的设计工具支持重新生成数据库。但是这么一来数据库中的数据就会全部丢失。如果这时开发已经进行了一段时间,那么程序的运行,调试和测试都会依赖这些数据,所以这样会给开发工作带来麻烦。Entity Model Studio提供的数据库同步功能就可以解决这个问题。数据库同步功能只会更新变化的部分,没有变化的部分不会修改,而不是重新建立数据库。同时在执行数据库同步时,EMStudiu还会自动尽最大可能保留或转换已有数据,将产生的麻烦降低到最小。
从数据库生成模型可以让开发者从已有的数据库得到静态模型,从而可以非常方便的使用Entity Model Studio设计静态模型。
3.代码生成
Entity Model Studio中的代码生成有一个特色,那就是为静态模型而生成代码,不是为了数据表或者简单的数据表的增删改查操作(CRUD操作)生成代码。所以开发者设计什么样的模型就会得到什么样的代码,达到了所设计即所得的效果。
Entity Model Studio生成的代码是开发者可以直接使用的,也可以被EMLib直接使用。事实上,Entity Model Studio帮助开发者最大的部分就是将生成的代码与EMLib一起使用,通过EMLib提供的ORM功能大幅度提升开发效率。
EMLib是广联科技独立自主研发的ORM框架。是一个以Eql为基础的功能十分强大的ORM框架。事实上,EMLib不仅仅是可完备完成数据表到对象和关系的映射,就像其他ORM框架(比如Hibernate)做的那样,而且更为妥当的说法应该是说EMLib映射的是静态模型。有关EMLIb中的Eql和ORM功能会在后续的文章中再做详细的介绍。
四.如何获得Entity Model Studio
请访问我们的官方网站:www.WideUnion.com,在产品页面下载EntityModelStudio。
五.安装,执行
下载完成以后请解压并执行安装程序,然后根据提示完成安装,整个过程是非常简单的。安装完成以后,会在桌面创建一个快捷方式,请双击改快捷方式执行主程序。主程序的加载会比一般的程序慢一些,其原因是需要一个解密过程。
对于第一次安装并执行主程序的情况,Entity Model Studio会提示错误信息,然后显示许可证管理界面,如下图所示:
这里以完成试用许可证的注册为例,介绍如何完成Entity Model Studio的注册。Entity Model Studio的试用许可证是免费的,注册一次可以使用两周。值得说明的是试用许可证到期以后是可以反复重新注册的,所以等同于无限制使用。在Entity Model Studio的使用功能上,试用许可证和付费的正式许可证是一样的。试用许可证在Entity Model Studio主程序每次启动时,要求在线验证是否过期,所以在主程序启动时请保持在在线状态。
首先选中“Apply for and activate a trial license”单选框,然后点击Next按钮进入下一个界面,如下图所示:
上图显示的是注册成功的信息,如果注册失败会显示相关的错误信息。然后点击Next按钮关闭许可证管理界面,再重新执行Entity Model Studio主程序就可以了。如果在注册过程中有任何问题,可以访问我们的官方网站www.WideUnion.com提出您的问题,或者直接发邮件到我们的邮箱:Contact@WideUnion.com,我们的开发团队会尽快给予答复。
六.环境要求
Entity Model Studio主程序运行的环境要求是:.Net Framework 3.5,这是基本的要求。如果需要生成文档,那么请安装Word 2003或更高版本。如果静态建模中使用的数据库是Access,那么请安装Access 2010 Runtime。该安装包可以从微软的网站上下载,是免费的。如果设计的静态模型是针对Oracle数据库的,那么EMLib使用的是Oracle的数据驱动,而不是微软.Net类库中的数据驱动。所以如果使用微软数据驱动,那么在某些场合将无法正常使用EMLib。Oracle的数据驱动可以在Oracle官方网站下载,版本请使用针对Oracle 10g数据库的驱动。
Entity Model Studio主程序和EMLib采用Any Cpu方式编译,所以可以同时适应32位和64位的运行环境。在32位系统上运行,就是32位的程序;在64位环境运行就是64位的程序。所以用户在安装相关的驱动或者软件配置环境时,需要注意和Entity Model Studio和EMLib相适应。
如果用户在配置环境是遇到问题可以访问我们的官方网站www.WideUnion.com提出您的问题,或者直接发邮件到我们的邮箱:Contact@WideUnion.com,我们的开发团队会尽快给予答复。