在
Rational Architect
中,
MDA
过程是:
通过工具本身建立设计
Model
,中间可以用
pattern
来优化设计。
然后,根据自己的架构,开发符合
Rational Architect
要求的转换插件,把模型转换为代码模型;也可以把模型转换为代码。
可以反向。
而在
open source
里:
通过
ArgoUml
设计模型。
通过
Argo2Ecore
转换为
xmi
。
基于
Merlin
开发自己的代码模板或插件。
把模型转换为符合自己框架的代码。
如果自定义
@Generator
可能可以反向,但比较麻烦。
之前,一般通过
xDoclet
之类来生成代码;但是很难反向。也不能从模型生成。
现在,也用
Java 1.5
的
Annoation
。一样不好反向。
最好的方式,应该是根据模型,按照代码模板,生成代码;并且可以反向。
Rational Architect
和
Eclipse
是同源的,基础结构一样。
Rational Architect
多一些插件。
其
MDA
部分,极其接近。核心的是
EMF
、
uml2
、
JDT
、
plug-in
;共同的是
xmi
。不同的是具体代码生成,
Architect
有
xtool
的
api
;而
eclipse
中,可以用
open souce
的插件,如
Merlin
,
Argo2Ecore
。
所以,基本的
MDA
理论必须的。
Eclpise
开发平台的
Framework
和
plug-in
是必须掌握的。
Emf,uml2
等也必定要。然后,分开在
Rational Architect
中和
Melrin
等实现转换(
m2m,m2c
)。只是一难一易。
所以,
Eclpise
和
Jbuilder
;
IBM
和
Sun
,比的不是别的,是工具和语言。
Eclipse
的野心,是基础性开发平台,然后可以开发丰富的插件。是一个
open
的世界,人人可参与。
而
sun
的
java
是语言,是一个标准。本身也是因为开放性,所以集全世界的自由开发人员的意志发展。
而微软,则是自成体系。虽然强大,但人们少了自由,就有了抱怨。虽然操作系统是成功垄断,但应用系统,人们会选择
java
来平衡。
现在,
java
的世界,多了
Eclpise
,从工具的角度,又多了
open
和人们的自由和创造。
相比,
Jbuilder
就像微软,我很全也很好,但是没有更多的自由,激发不了更多的创意。
Java
世界和微软比,是:独裁和民主;约束和自由;遵守和创造;的区别。
就象一个世界,一个社会,民主和自由,导致更多追随着进步。