- 浏览: 58877 次
- 性别:
- 来自: 昆明
最新评论
-
iqpkeq:
您这篇文章还有后续么?
XText原创翻译连载 第一章:XText概述 -
salcabar:
我们是新组成的一个团队,很需要懂得extjs的大牛,有意的可以 ...
ExtJS htmlEditor终极扩展(插入图片[上传|链接]、插入表格、水平线等) -
crabboy:
这域名挂了?
G4系统集成与应用开发平台(G4Studio)相关资源下载永久有效中转页面 -
kouzigege:
貌似2.X下不能用,我想加一个表格功能,痛苦死了
ExtJS htmlEditor终极扩展(插入图片[上传|链接]、插入表格、水平线等) -
huangwuyi:
群主,求源码啊这个不能访问啊 http://code.goog ...
ExtJS htmlEditor终极扩展(插入图片[上传|链接]、插入表格、水平线等)
G4系统集成与应用开发平台(G4Studio)相关资源永久有效中转页面:
http://hi.baidu.com/eredlab/blog/item/12eb6eb5b87cbfdd37d3ca1e.html
项目主页地址:
http://code.google.com/p/g4-xiongchun
在线演示地址:
http://web230531.host89.chinajsp.net/
恩 2天的时间访问人数突破1W了,嘿嘿!非常感谢诸大侠们的宝贵意见和给予的肯定和鼓励!!
这个轮子的前世与今生
先说说这个轮子的大概情况。她是一个开放源代码的项目,是一个面向企业计算环境的基础开发平台,用于在企业计算环境下进行系统集成与行业应用快速开发。姑且称之为:eRedG4(易道系统集成与应用开发平台)吧。所谓G4一为等我发布V1.0的时候此轮子就造了快满4年了,二为此轮子已经是第四代了。(此前已经有3个夭折版本由于本人经验能力方面的问题导致技术选型不得当在我开发过程中被我先后不断推翻否定掉了。现在这个版本大的基线确切的说是2009年01月才定的型,当然以前版本的部分基础类库是沿用了的)。目前为止,已经完成了整个开发平台工作量70%左右。
为什么要发此文
偶06年毕业参加工作,当时Java水平比现在菜得多,记得实习时候经常有代码要带我的师傅白帮忙,挺感谢他的,算是我到公司的入门师傅吧。后来由于我对编程有着极大的兴趣,对技术的掌握有了突飞猛进的提高(其实是起点太低:)),慢慢的就不满足于在公司框架上天天重复着复制粘贴的操作了,凭着一股牛劲十足的偏执与激情终于在07年8月份下定决心开始着手eRedG4平台的研发工作。3年的捣腾之路让偶饱尝了各种辛酸与痛楚,当然也带来了无数次完美封装或排错后的高潮与冲动。就这样一路辛酸痛楚着、高潮冲动着坚持了3年。无论是得意时、落魄时、高兴时、伤心时都从不敢懈怠。。。本想一鼓作气的把她干完,但偶最近感觉
身心疲惫,精神恍惚,唯恐在爱机前壮志未酬一命呜呼掉岂不悲哉。加之入职以来都过度偏向技术了,业务知识的不足已经严重影响了我对公司产品和项目的整体把握和驾驭。刚好公司近来有个大集中大整合的项目,正好是我梳理业务提升对公司业务领域掌握层次的大好时机,所以决定把G4平台研发的工作放慢脚步推迟到
2011年9.21发布1.0全功能版本。故写此文算是对G4做个阶段性总结,也希望广大网友们尽管拍砖,使劲拍,拍到头破血流为止。。。
郑重声明
此项目不含任何商业气息也不会在任何时候对其进行商业化包装,纯粹是一个程序员凭借激情与耐力的一个作品。版本发布后回提供完整的代码和文档供同学们参考、修改、使用、或者进行二次开发后包装为你自己的产品!所以今天请诸好汉们在此聚室而谋,多拍砖头,好让偶在以后下一步的工作能够超着正确的方向推进。尽快发布版本,因为偶快扛不住了~~~~
~
继续对eRedG4平台做一个梗概性的介绍
这段就看一下我的《eRedG4开发指南》的目录截图就能有个大概了解了,打字好辛苦。
分别再介绍一下每一章里面的东东,
(1)、基础类库(eRedCCL)
eRed公共组件库(eRed Common Component Library)是eRedG4平台底层基础组件库。为eRedG4平台的其它组件提供了一系列的基础服务。她包括如下一些内容:
1)、常用数据结构、(已实现)
2)、XML处理器、(已实现)
3)、JSON处理器、(已实现)
4)、Properties处理器、(已实现)
5)、模板引擎、(已实现)
6)、eRedServer开发调试服务器(Based Jetty)(已实现)
7)、全能序列号发生器(已实现,参考升值照搬了开源项目E3的相关代码)
8)、辅助工具类等。(已实现)
eRedCCL不但可以作为eRedG4平台的基础组件,也可以独立打包作为一个独立组件发布给其它Java应用使用。
(2)、业务模型框架(eRedBMF)
eRedBMF(eRed Business Model
Frame)。eRed业务模型框架是面向企业计算环境基础开发平台(eRedG4)的核心组件之一。主要负责企业计算模型下一系列关键技术的实现。使得应用软件开发人员在基于
eRedG4平台构建应用系统的时候把更多的精力放在企业计算模型上。而不用关心技术细节。把所有的技术细节交给我们来做,让你去做你最擅长的事。
1)、基于Spring的业务处理对象托管模型(已实现)
2)、基于iBatis2.X的数据持久化方案(已实现)
3)、基于SpringJDBCTemplate的数据持久化方案(待开发)
4)、基于Spring的声明式事物和编程式事物机制实现(已实现)
5)、基于AOP模型的日志审计组件(已实现)
6)、基于AOP模型的业务异常组件(已实现)
7)、“企业服务总线”实现。基本想法为提供一个灵活可配置的服务路由控制器。可以将业务逻辑组件方便的以CXF、 Hessian、SprigHttpInvoker三种RPC方式发布为服务,并在三种服务发布方式之间灵活切换和路由。此组件的定位还在摸索中,希望大家拍砖!准备要用的ESB实现框架也在考察论证中,望大家发表建议!(论证中,待开发)
(3)、富浏览器端开发框架(eRedRIF)
时间晚了,写快点。只能简单说一下了。我的想法就是一个应用提供2套界面开发方案。一套基于web浏览器的,也就是这里 说的eRedRIF;一套基于SWT/JFace和EclipseRCP技术的富桌面客户端开发框架(eRedRCF)。偶的最高理想是设计一套统一这两套UI的标记描述语言,统一UI开发方法或过程然后在编译时可以根据引擎随便驱动出一套UI界面。当然了,这个似乎有点像共产主义,暂时不纳入日程。否则就重蹈大跃进覆辙了。目前的定位还是两套供选择的UI独立开发和部署,但为可能发生的UI方案更换提供便利性。
先说说eRedRIF
1)、引入Struts1.X。但仅仅是用于充当MVC模型中控制器的作用。其他作用大大弱化。(已实现)
2)、UI主要依赖ExtJS,+
部分自定义JSP标签。(已实现)
(本来想把EXTJS全面封装为JspTag,但经过反复论证后放弃了此念头)
3)、基于JasperReport封装客户端Applet打印功能和PDF导出功能。(已实现)
4)、基于FusionChartsFree封装动画图表功能。(已实现)
5)、基于JXL的Excel导入和Excel导出功能(导出支持自定义模板标记语言哦,很方便的)(正在开发,即将杀青)
补充:已经开发完毕(2010-08-20):详情点击
http://www.iteye.com/topic/733339?page=9#1646449
6)、可能还有一些Ext缺乏或不完善的UI组件会在后期继续封装成JspTag。
上一段JSP代码截图你就有个大概印象了。
(只是部分UI封装为JspTag,ExtJS使用原生,但后面提供了代码生成器)
其他效果统一放在最后面的插图了,省事点呵呵~~~~~~
(4)、富桌面客户端开发框架(eRedRCF)
富桌面客户端开发框架是基于IBM早期推出的
Swt/Jface图形库和现在的EclipseRCP技术构建的Java桌面应用。她的崛起必将刷新Java桌面的市场份额。对于这套技术我已经跟进很久了,很看好。国外已经有很多成功案例。据不可靠报道:国内电信、电力等高端行业也逐渐开始了尝试和探索。。。偶也不甘落后,准备在这块上做点文章。目前尚未设计开发,可能得放到明年去了。
可能还有很多同学对这套技术还不怎么熟悉,可以通过这个链接了解一下:
http://www.eclipse.org/community/rcpcp.php
下面上个图片,来个直观感受吧!图片是网上看到的一个做得还马虎点的RCP应用!上面的链接有很多老外的案例。可以去那看!
(5)、权限参考模型(eRedARM)
eRed权限参考模型参照了NIST (美国国家标准与技术研究院)提出的标准RBAC模型,并在此模型的基础上进行了一些删减和变异。使其更加符合中国特色。哎不多说了,最后我会放几个图大家一看便知。(已实现)
(6)、辅助开发插件(eRedG4.Builder)(未开发,但有很多前期预演工作,将很快实现)
辅助开发插件为基于eclipse并与其无缝结合的一个开发助手。可以生成一大堆符合eRedG4开发平台标准的一大堆文件。比如:
1)、根据库表结构生成一堆领域实体对象。
2)、根据库表结构生成一大堆iBatis的SQLMAP文件。
3)、根据UI界面生成向导生成各种常用的ExtJS代码。
4)、根据代码生成向导2分钟之内生成一个可运行的对单表操作CRUD功能模块。
还是上个图吧,大概样子就是这样的:
哎,累死偶了,终于写完了 最后来一组写真集就睡觉了!
评论
不应该关注这些无关紧要的细节,要关注楼主的精神或者其他重要的方面
呵呵,以后会有码的!准备整体发布,不想弄个半成品给大家!
偶继续跟进
在G4监控切面类SpringBeanAspect的基础上完成了【SpringBean切面监控】功能模块的开发。该模块可以方便的监控由Spring 容器托管的所有Bean的活动情况。包括方法调用和异常捕捉,并以友好的界面将展示这些监控数据。此监控开关可以在系统运行时热切换!如下有图有真相
以前我也参与了类似的业务平台开发,,7、8个人做了3年,,那个山寨货,,目前是内部运行,,
感觉做开发平台(或者叫业务平台),都有这样的感觉,开发平台的时候,感觉平台真的好处多多,什么都快速完成,要什么有什么,,,一个整体,,反正就是N多好处,,
但发现离开那个平台4、5个月,,又回到传统的手写代码、搭建框架的时候,却感觉,所谓的平台原来也有好多不好的地方,,
首先是eclipse为基础的rcp平台(我们的平台的开发工具),可能有些小bug,,不经意的时候,总会有点莫名其妙的错误,用的有点点不尽意,虽然这个rcp平台话了很多心思去做,但可能我们开发的东西太多(几个流程流拖拽设计器、还有改写的brit报表工具,当然还有N多向导、视图,等等),所以要让这个大开发工具稳定、正常的工作,真的心有余而力不足。
其次、我们自己写的框架和struts等这些开源的成熟框架还有一段距离,效率、稳定性等总有有点点让人不称心,最大的问题是,业务经验不足,有些特殊的业务,虽然框架是可实现,但却是兜了个圈来实现,看起来总是不爽。
最后,公司内部推广这个平台,没几个java程序员愿意去尝试使用,所谓的非正统,有几个人愿意去使用?
远离了那个3年投入开发的平台后发现心静了很多,原来兜兜转转,还是回到了手写代码的份上,只是有时会写些eclipse的插件自己用下,也会偶尔不使用ssh,而是自己山寨个没有配置的mvc。
首先感谢楼上分享了这么多给点,受教了!
下面偶持续跟进:
基于G4的RequestFilter过滤器完成了【操作员事件跟踪】功能模块的开发。此功能可以根据需要配置打开此跟踪器。可以监控Action层面的方法调用以及方法执行时间及耗时。在系统运行过程中可以实时的监控到所有操作员的活动轨迹并可以看到大致的性能情况。有图有真相。
以前我也参与了类似的业务平台开发,,7、8个人做了3年,,那个山寨货,,目前是内部运行,,
感觉做开发平台(或者叫业务平台),都有这样的感觉,开发平台的时候,感觉平台真的好处多多,什么都快速完成,要什么有什么,,,一个整体,,反正就是N多好处,,
但发现离开那个平台4、5个月,,又回到传统的手写代码、搭建框架的时候,却感觉,所谓的平台原来也有好多不好的地方,,
首先是eclipse为基础的rcp平台(我们的平台的开发工具),可能有些小bug,,不经意的时候,总会有点莫名其妙的错误,用的有点点不尽意,虽然这个rcp平台话了很多心思去做,但可能我们开发的东西太多(几个流程流拖拽设计器、还有改写的brit报表工具,当然还有N多向导、视图,等等),所以要让这个大开发工具稳定、正常的工作,真的心有余而力不足。
其次、我们自己写的框架和struts等这些开源的成熟框架还有一段距离,效率、稳定性等总有有点点让人不称心,最大的问题是,业务经验不足,有些特殊的业务,虽然框架是可实现,但却是兜了个圈来实现,看起来总是不爽。
最后,公司内部推广这个平台,没几个java程序员愿意去尝试使用,所谓的非正统,有几个人愿意去使用?
远离了那个3年投入开发的平台后发现心静了很多,原来兜兜转转,还是回到了手写代码的份上,只是有时会写些eclipse的插件自己用下,也会偶尔不使用ssh,而是自己山寨个没有配置的mvc。
<p> </p>
楼主是有心人,必能成大事。
我从去年产品线成立开始,也在封装类似楼主的框架。我们的产品比较特殊,面向于电信行业,10几个省公司用一套程序代码。
我们主要从业务和IT实现上对架构进行的封装:
1:加入了元模型能力,Ext的列表和维护组件基本上只需要针对核心模型(业务特性)开发一套,用户扩展业务模型由本地维护。
业务模型:
抽象的核心模型
--本地扩展模型
关系
--关联
--动态关系
--继承
2:加入了业务数据功能项能力,不论在表格、树图、报表、Flex只要有业务数据的地方,那么这个数据相关的功能点都可以通过右键或Item展现出来;解耦了技术组件,不论是Ext、JSP、Flex都可以互相集成和调用,各自做各自擅长的事情,而避免了很多重复的功能开发及创造!例如Ext开发了一个表格组件,而有的同学用Flex开发了一个拓扑,是不是拓扑中就一定需要开发一个表格来展现页数数据呢?从架构来说就是控制好边界接口及开发规范。从整体上把控到各个技术组件的统一复用!
3:封装了很多细节组件:
自定义Sql的树图组件
自定义Sql的表格组件
自定义Sql的枚举组件
4:统一了一个界面继承框架,规范了各子功能组件开发的约束!
从楼主的原型中,样式配置是我们还需要借鉴学习的。
不过产品开发快2年了,其实用户的认可并不好。研发也觉得很累,为什么?
技术组件做的再炫,功能再花哨,不能让用户粘住你的系统,让他每天必须用你的系统,必须给他的生产带来价值。最终系统只能是玩具!
回首一看,发现技术组件都有了,可是却没有人再深一步,进行业务场景封装。
我也很累了,也是对技术很感兴趣,可是却太简单了!
不过,楼主肯定花了很多心思去写,,,祝福下楼主,早日成功
不过我也想挑点刺,对与不对都无所谓,我还是打心底佩服你
1.平台要经受住考验,这个可能需要你考虑一下,毕竟没有检验过,如何让它能够被检验是个问题。你这个是面向应用的平台,得跟业务结合,不能玩技术,如果真的喜欢玩技术,研究编译原理,linux内核会更有挑战性。
2.其实你没有发明轮子,大部分工作是把市面上的东西“搭积木”成了平台,感觉你一个人的目标太多了,没有专一性。呵呵。
俺以前也搞过类似的,但是实施的时候问题还是比较多
lz这个有过项目应用了吗?
以后会作为平台当中的一个Excel组件整体发布,但也可以很方便的独立剥离出去。其实G4当中的组件耦合度都很低,基本上都可以插拔,以后大家可以像庖丁解牛一样游刃有余的随意拆分。
<p>刚完成了Excel导入和基于模板方式的Excel导出操作。</p>
<p>简单介绍一下:</p>
<p><strong>Excel导入操作:</strong>这个没啥好说的。也没什么特别。用3行代码解决了80%的导入需求。对于格式复杂的导入操作还是需要直接操作底层API的。但值得一体的是,导入时候做了点点考虑采用了Map封装后的数据类型Dto来接受。(当然直接使用Map也是可以的)这主要是在我使用过的框架的痛苦经历上做的改进,曾经使用的框架封装的是使用一个写好的javabean来接受导入的行数据,我的那个妈呀,那个数据类型转换异常搞死人。</p>
<pre name="code" class="java">String metaData = "xmid,xmmc,xmrj,gg,dw,jx,zfbl,cd,ggsj";
ExcelReader excelReader = new ExcelReader(metaData, theFile.getInputStream());
List list = excelReader.read(3, 1);</pre>
<p><strong>Excel导出操作:</strong>这个值得一提,在JasperReport模板的启发下,excel的导出操作我也一样采用模板机制来实现。先定义三种模板标记语言:$P{}标记$F{}和$V{}标价。其中$P{}将被Map类型中的属性字段填充,$F{}将被List对象中的对象字段迭代式的填充,$V{}是一些数学函数比如求和、平均数等。这样把这些描述性语言写在一个Excel表格上,并将此表格预定义一些样式和显示位置等组成一个预定义的模板。然后我先读取并解析这个模板,然后根据描述语言以及模板样式重新生成一个Excel文件并导出。这就是大致流程。代码如下:</p>
<pre name="code" class="java">ExcelExporter excelExporter = new ExcelExporter();
excelExporter.setTemplatePath("/report/excel/demo/hisCatalogReport.xls");
excelExporter.setData(parametersDto, fieldsList);
excelExporter.setFilename("北京市第一人民医院收费项目表.xls");
excelExporter.export(request, response);</pre>
<p> 下面上一个模板给大家看看:</p>
<p><br><img src="http://dl.iteye.com/upload/attachment/299851/1a9e2069-1e96-327e-af2f-308cb854936c.jpg" alt=""><br> <br>最后来两张效果写真<br><br><br><img src="http://dl.iteye.com/upload/attachment/299879/22b787f5-ec6a-3334-a150-73d5308258bf.gif" alt=""><br> <br><img src="http://dl.iteye.com/upload/attachment/299883/93eba7ee-f14b-3bf9-b18c-bf93caecddde.gif" alt=""><br> <br><img src="http://dl.iteye.com/upload/attachment/299880/1be7176b-9db8-347e-a9d2-c60b013d2ba0.gif" alt=""><br> <br> <br></p>
发表评论
-
服务器信息监控Based G4Studio,我比较喜欢的一个功能模块弄好了
2011-06-28 01:06 1714最近事比较多,这个功能拖了好几天才弄好。在JVM监控方面原Be ... -
ExtJS htmlEditor终极扩展(插入图片[上传|链接]、插入表格、水平线等)
2011-05-18 00:41 8537众所周知,ExtJS的HtmlEditor功能极其简陋 ... -
[G4Studio开源平台]如何搭建G4开发环境
2011-03-10 13:21 802[视频教程]如何搭建G4开发环境演示了如何进行数据初始化以及创 ... -
新鲜出炉的G4Studio开源平台简介
2011-02-27 21:59 2930G4③号群(500人):48359988RedG4相关 ... -
XText原创翻译连载 第一章:XText概述
2011-02-09 09:47 3339写在最前面 原创翻译:转载可不说明出处。但至少带上 ... -
开源平台G4Studio_V1.03.1发布了
2011-01-22 13:08 2126做最厚道的开源项目-将开源进行到底! 简介: ... -
开源项目G4Studio远景战略抉择!请大家指路
2011-01-01 15:21 2436关于开源项目eRedG4的相关信息请大家浏览这个新闻贴,我这里 ... -
G4系统集成与应用开发平台(G4Studio)相关资源下载永久有效中转页面
2010-12-22 22:37 5028项目主页地址:http://www.g4studio.org/ ... -
风云再起之开源项目G4Studio_V1.01发布了(全面支持Mysql)
2010-12-13 14:42 15892010-12-08发布V1.0后,4天时间GoogleCod ... -
开源项目G4Studio V1.0发布了【有在线Demo、有源码->有真相】
2010-12-08 12:02 2371G4Studio是一个开放源代码的、面向企业计算环境下异构系统 ...
相关推荐
《G4Studio开发指南》是一本详尽介绍G4Studio平台开发技术的参考资料,共包含296页的内容。G4Studio是由xiongchun开发的,它为用户提供了强大的工具集,用于构建和管理复杂的模拟系统,尤其是在物理学、工程学以及...
- **前世与今生**:G4Studio经历了一个从无到有、逐步完善的过程,从最初的基础类库体系发展成为一个全面的集成开发平台。 - **家族成员**:G4Studio包括多个组成部分,覆盖了从服务器端到客户端的全方位开发需求。 ...
**G4Studio开发指南_V3.1完整版详解** G4Studio是一款强大的图形化编程工具,主要用于游戏开发、模拟器构建以及其他交互式应用程序的设计。它以其直观易用的界面和全面的功能,吸引了众多开发者和爱好者。V3.1版本...
《G4Studio行业应用二次快速开发平台:基于JavaEE技术体系的中小企业解决方案》 G4Studio行业应用二次快速开发平台,作为一个高效、便捷的软件开发工具,尤其针对中小型企业,旨在简化开发流程,提高开发效率。它...
G4Studio开源框架是一款专为中小软件企业提供二次开发服务的平台,它基于强大的JavaEE技术体系,旨在提高软件开发效率并降低开发成本。这个框架的核心理念是实现标准功能的复用,通用模块的灵活配置,以及针对特定...
《G4Studio开发指南_V3.1》是针对G4Studio这一软件的详细开发手册,旨在帮助开发者深入了解和熟练运用G4Studio进行项目开发。G4Studio作为一个专业的开发平台,可能包含了丰富的功能和复杂的API接口,该指南的出现...
G4Studio行业应用二次快速Java开发平台最新版(5.2正式发行版)是一个专为开发者设计的高效能、易使用的开发工具,旨在简化企业级应用的构建过程。该平台基于Java技术,提供了丰富的功能和组件,使得开发人员能够快速...
《G4Studio开发指南》专用电子阅读器注册机
G4Studio是一套基于JavaEE、面向中小软件企业的免费开源产品套件,集需求分析、软件设计、编码实现、运行测试、运营维护、软件项目管理于一体,力求覆盖整个软件生命周期,被誉为“程序员私活神器”。目前最新版本为...
G4Studio知识以及开发步骤。让你初步了解G4Studio的一些相关知识点。它配备MyEclipse8.5的步骤
【G4Studio_V3.1】是一款开源的软件开发工具,专为学习和使用而设计。这个版本的发布标志着G4Studio项目在功能完善和用户体验上又迈出了重要的一步。作为一个专业的IT知识分享者,我将详细介绍这款工具的特性、用途...
【G4studio开发指南注册机】是一个针对G4studio软件的辅助工具,主要目的是帮助用户完成软件的激活过程。在IT行业中,注册机通常是指能够生成有效序列号或激活码的程序,允许用户绕过软件的正版验证机制,从而免费...
G4Studio是一套基于JavaEE面向中小软件企业的集需求分析、软件设计、编码实现、运行测试、运营维护、软件项目管理等于一体,力求覆盖整个软件生命周期的免费开源产品套件。以“标准功能可复用、通用模块可配置、行业...
这个东东可以破解开发文档,共享一个,打开运行复制粘贴就好,希望能对你有所帮助
提示:为了降低维护支持成本,在开发过程中我们只对视频中提供的基于内置G4Server的开发调试环境提供技术支持和咨询。
### G4studio教程知识点解析 #### 一、G4studio简介 G4studio是一款用于快速开发Web应用的集成开发环境(IDE),它基于Java技术栈,特别适合于使用Struts框架进行开发。...这对于熟悉G4studio开发流程非常有帮助。
《G4Studio_V3.0:ExtJS技术的百科全书》 在Web应用程序开发领域,ExtJS是一个广泛使用的JavaScript库,它提供了丰富的组件和强大的数据管理功能,为构建交互式用户界面提供了强大的支持。G4Studio_V3.0是一个包含...
G4Studio 第二部分