GeneXus 自称为业界第一款智能开发工具,由乌拉圭的ARTech公司出品,通过描述应用软件的知识库,可以自动生成数据库模型,自动生成.net或Java两大平台的代码。
最近试用了GeneXus,并计划用GeneXus来开发一个带Sales Management和Product Catalog的小型CRM系统。
报告分上中下三部分,第一部分为GeneXus简介,第二部分是Getting Started,第三部分是评价。
下面是GeneXus的brochure宣传册自述:
主要特性:
1.Slash time-to-market
大幅度减少面向市场的时间 以最少的时间将你的商业知识转化成IT解决方案
a.在设计阶段使用全功能的系统原型来验证需求
b.根据你选择的平台生成数据库和应用程序(.net/java等等)
c.需求改变时,GeneXus平台会自动深入分析,根据变化做出调整
2.Enjoy minimum total cost of ownership with maximum flexibility
高度伸缩性和最小的总体拥有成本 更有效的应用你的资源
a.根据当日需求设计和开发 每日构建
b.确保你能够根据未来的需求增加新的特性
3.Focus on your core competences
专注于你的核心能力 根据您对特定行业深入的理解来开发商业级应用
a.让你的IT团队来架构系统
b.不会把时间浪费在团队学习层出不穷的新技术上面
4.Generate and deploy your applications on the platforms of your choice
根据您选择的平台来生成和部署
a.在多种平台上生成应用系统
b.以最小的代价将系统转移到新的技术平台
5.Leverage you existing IT infrastructure
像杠杆作用那样改变您现有的IT系统
维持你现有系统的功能不变
a,无缝集成到现有系统
b.增加商业智能、报表和基于Web的解决方案
c.释放GeneXus的XML和Web Service的威力
关键特性:
1.基于知识库的设计
a.基于知识库的应用程序设计
b.100%自动数据模型设计
c.设计和原型与平台无关
2.自动开发
a.自动生成数据库和应用程序代码
b.自动生成和维护应用程序文档
3.自动维护
a.自动维护数据库和应用程序
b.自动数据迁移
4.多平台开发和部署
a..net
b.Java
c.C/S
d.iSeries (AS/400)
GeneXus的原理(或称方法论):
设计阶段:
1.基于知识库的设计
GeneXus提供一种简单的方式来设计应用程序,根据您对商业业务流程的理解,这些知识被加入到知识库中,知识库中还有其他的对象,比如事务对象、工作面板、报表等等。
2.系统原型
可以在设计阶段生成应用程序的系统原型,来确保最终系统能满足客户的需求,系统原型在功能上和最终的应用程序一致。
3.生成数据模型
GeneXus推断出最佳的数据模型并且自动生成对应的最佳关系型数据库(根据第三范式)
开发阶段:
自动生成应用程序
自动生成和维护数据库,根据您选择的技术平台生成整个应用程序100%的原生代码。
可以生成 .net Java Pocket PC C/S(VB,VF,C/SQL),RPG和COBOL代码
支持的关系型数据库:DB2,Informix,SQL Server,Oracle,PostgreSQL,MySQL
维护阶段:
更新你的知识库
当您的需求发生改变的时候,只需要修改您的知识库
100%自动维护数据库和应用程序
GeneXus可以根据新的数据库方案或应用程序新的需求而做出调整
深入分析:
当实体发生改变时,GeneXus可以根据你的数据库和应用程序生成深度的分析报告
背景知识:
数据库设计中的五个范式
第一范式:
对于表中的每一行,必须且仅仅有唯一的行值.在一行中的每一列仅有唯一的值并且具有原子性.
(第一范式是通过把重复的组放到每个独立的表中,把这些表通过一对多关联联系起来这种方式来消除重复组的。)
第二范式:
第二范式要求非主键列是主键的子集,非主键列活动必须完全依赖整个主键。主键必须有唯一性的元素,一个主键可以由一个或更多的组成唯一值的列组成。一旦创建,主键无法改变,外键关联一个表的主键。主外键关联意味着一对多的关系.
(第二范式处理冗余数据的删除问题。当某张表中的信息依赖于该表中其它的不是主键部分的列的时候,通常会违反第二范式。)
第三范式:
第三范式要求非主键列互不依赖.
(第三范式规则查找以消除没有直接依赖于第一范式和第二范式形成的表的主键的属性。我们为没有与表的主键关联的所有信息建立了一张新表。每张新表保存了来自源表的信息和它们所依赖的主键。)
第四范式:
第四范式禁止主键列和非主键列一对多关系不受约束
第五范式:
第五范式将表分割成尽可能小的块,为了排除在表中所有的冗余.
数据库设计中应当去追求实现第五范式,但这也是最难实现的。GeneXus自动生成数据库,采用第三范式。
自动编程:
Inventional Programming 意图编程
MDA Model Driven Architecture 模型驱动架构
Generative Programming 产生式编程
Language-oriented Programming 面向语言编程
除了GeneXus之外,还有德国的OliveNova也是一款自动编程工具。后者似乎主要通过UML来生成数据库应用程序。相比之下,GeneXus出道更早一些,并且提供了GxPortal,GxReport,GxFlow等开发包。