|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架?
前次说到MyAppfuse要有一个代码天生工具,codegeneration.net上搜集了各类平台各类言语的工具。
个中一些用到UML做元数据的,就酿成了上年最盛行的MDAtool。MDA实际上是超等炒冷饭了,偶N年前的卒业论文做的就是这个标题,如今再看前进也不年夜。
不外想下也一般。由于MDA是由模子、完成和转换程序三者组成的,假如模子界说飞速开展了,与底层完成之间一定会构成伟大落差,必要转换程序做大批工作来消弥。当落差充足年夜时,就会很少人乐意做这个转换事情。而为了削减落差,一是等底层完成的开展,但这是全部IT界的事变,不是MDA开辟者的团体成绩。别的就惟有减低模子界说的高度,好比AndroMDA,良多现成的模板都只依附于UML静态Class图,同时利用大批的TaggedValue,看上往和一个xml格局的自定义模子没甚么区分。
以是,一来受底层完成的制约,二来OMG的布局也不像个很高产的构造,MDA溘然发作,人人洗脚上田不必再Coding的时机不年夜。但跟着AOP,Meta-Data,O/RMapping,IOCContainer这些底层的开展,另有微软DSL对UML的打击,MDA仍是会持续渐渐开展,究竟这是我们的梦。
当下仍是挑些轻量级的代码天生计划对照实践。我挑的是XML格局的自界说模型+jsp/Freemarker模板。固然也能够像Appfuse那样用XDoclet,但我以为XDoclet的扩大性,办理性和合用局限都是最低的。也能够不必模板,用C#/Java程序完整把持代码的天生,这类体例如今又多了Python,Ruby这些静态言语可供选择。
但我仍是习气模板多一些。好比jsp,能够用Httpclient会见jsp,取得前往内容来天生文件。而xml格局的元数据,能够经由过程Filter放进到Request大概Session中。
不外,如今盛行Velocity和Freemarker。二者之间能够用三局两胜制决出。
一,Freemarker网站上有一篇文章,列出了Freemarker语法上比Velocity优胜的中央。
二,但如今的PM不克不及够这么局促的从纯手艺角度看成绩的了,Velocity有着比Freemarker多很多的用户群体,好比AndroMDA,IntelliJIDEA。
三,又可是,关于这类用XML格局界说的元数据,Freemarker有一个很少被提到,但无匹的上风--内置了XMLDOM的会见语法。好比以下的元数据:
<table>
<columnname="id"/>
<columnname="name"/>
</table>
Freemarker能够如许列出table下一切column的name:
<#listtable.*ascolumn>
${column.@name}
对照Velocity要利用JDom的API,复杂了不知几倍。就这点,让Freemarker胜出,由于CodeGenerate的过程当中,其实要会见太多的xml元数据。也是这点,让我在jsp和freemarker间不置可否。原本,由于天生的是代码,不是页面,freemarkermarkup-language化的上风其实不存在。而jsp的优点是大家都懂,而且有最好的IDE,扩大性还超强,能够做恣意的事变。
不外,说究竟,用甚么做模板,实在不是件很主要的事变,这里只是写一下groupmemoring,纪录低决意的历程。
唉!都是钱闹的1.Swing和.net网页编程开发比较------从市场份额看.net网页编程开发主要占据大部分的中小型和中型的的桌面开发,原因是它封装了很多工具 |
|