[转载]ERP产品框架设计之路(二)

[转载]ERP产品框架设计之路(二) – 贤达 – 博客园.

要应对灵活的需求,对于产品需求多数来说与自身,而且这个ERP产品,要求功能上达到用友和金蝶的ERP那个层次,而且老板总是吹牛 说自己以前的写的ERP比用友U8企业应用套件好要好,

一千多个表,Hibernate框架使用第一个被否定,在页面显示的字段用户可以自定义设置(主要设置是否显示,还有显示的位置),这样Struts不能用,

经过一个星期走火入魔的思考之后,我终于设计出一条比较满意的方案,记得在这一个星期当中,

有一次我因为思考框架设计的问题时站在公交站发呆,从六点多站到八点多,晚上准备睡觉的时候发现自己好像没有吃饭。

还有一次晚上和一个女的去吃饭的时候,我把点菜单的上面写着table- window,而且我的写的字还比较丑,后来被一个女生狠狠地批评了一顿,而我当时还在傻笑,我给她留下的印象是程序员都很傻,很莫名奇妙!这就话是她另个人朋友跟我说的。

要满足目前的需要,数据库设计必须要做一下设计

数据库表,必须要有视图管理表,视图字段管理表,系统表管理表,系统表字段管理表,

要满足用户个性化用户,必须设计用户配置视图表,和用户配置视图字段表,用户配置系统表,用户字段管理表

要满足多数据库和业务逻辑层可以拓展和升级,必须使用接口对个层进行抽象,在这里Spring就可以发挥它的作用了,

 

要做上千给表的管理(添加、修改、删除、设置) 必须采用模板管理代码生成用户动态配置,并且是可视化配置!

 

模板必须满足,一个一个的表管理,一对多的表管理,多对多的管理,以及单表的分组生成管理,还有自定义生成规则

 

要满足页面显示层和业务对接之间最好的办法就是采用xml, 而模式设计业基本采用的静态的html

逻辑成生成xml

页面采用全静态的html 、ajax 

对应数据浏览窗体我采用的dhtmlx控件

因为extjs/dojo/性能太差了,而且dhtmlx性能是主流的grid控件中最好的一个,而且功能强大开源,

不过在实际应用中dhtmlx有一些小的bug,本人已经将它进行了修改,而且现在的功能不专业版的还要强,

现在是grid测试的结果:地址 http://www.dhtmlx.com/blog/?p=1525

Results in IE8:

Dojo jqGrid Ext JS dhtmlxGrid
100 rows 915 ms 236 ms 310 ms 68 ms
500 rows 964 ms 270 ms 380 ms 71 ms
1,000 rows 1,124 ms 301 ms 511 ms 79 ms
5,000 rows 1,396 ms 642 ms failed 100 ms
10,000 rows 1,805 ms 1,049 ms failed 135 ms

 

Results in FireFox 11:

Dojo jqGrid Ext JS dhtmlxGrid
100 rows 500 ms 146 ms 319 ms 70 ms
500 rows 529 ms 148 ms 343 ms 74 ms
1,000 rows 540 ms 154 ms 384 ms 75 ms
5,000 rows 610 ms 258 ms 696 ms 78 ms
10,000 rows 694 ms 369 ms 1,082 ms 80 ms

 

Results in all browsers for grid with 10,000 rows and 10 columns:

Dojo jqGrid Ext JS dhtmlxGrid
IE9 418 ms 148 ms 702 ms 67 ms
Chrome 226 ms 143 ms 654 ms 32 ms
IE8 1,805 ms 1,049 ms failed 135
FireFox 11 694 ms 369 ms 1,082 ms 80 ms
Speed Test Results - Grid with 10,000 RowsSpeed Test Results – Grid with 10,000 Rows

According to the tests, dhtmlxGrid has the shortest loading time and loads on the page faster than

 

我的框架主要用到的第三方东西主要有DHTMXGrid ,DHTMLXWindow,Apache common, Spring, fastReport

 

下面我将继续我的框架系列,希望大家多多关注

 


数据库详细设计、和系统架构详细设计

C++和Delphi程序员的惯病,面向对象设计的而无意中采用的面向过程实现!

如何带领让只懂html和基础的JavaScript的做开发

如果避免成为一个失败的项目负责人

无需写代码生成简单关联关系的页面的添加、修改、删除、验证

无需写代码生成复杂多表关系的页面的添加、修改、删除、验证

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏