这么多人讨论,很热闹。

对于B/S是不是更新C/S,我想答案是肯定,国外已经没有人在讨论这种基本问题,所谓一江春水向东流,软件的生命在于发展,因此我们搞软件的人首要的素质就是 对新事物的热爱以及对自己的否定。

很多人理解B/S以为单纯的是WEB结构,其实我认为有误,B/S的真正含义本质是多层分布式结构,这将替代C/S中那种主机集中式的模式。说到这点,我们已经看到为什么我们要用B/S,不用我从软件的重用性 快速开发性 健壮的维护性, 灵活的拓展性等软件指标来比较这两种系统吧?

J2EE成熟应用已经大概有8年,这其中有相当多成熟的大中型系统,这些真的不容质疑,否则,成了井底之蛙了。

J2EE是不是只适合大型系统?
其实很多时候,我们实现的项目很难预计他的发展性,它目前可能是小项目,但是在客户的要求以及客户自身的发展中,小项目就变成中项目,如果你的软件很好的支持了客户的发展,客户变成了企业集团,那你的项目就成了大项目,企业集团发展是迅速的,每天有多少亿资金流转,而他所赖以流转的信息通道必须2年后才能达到现在的要求,因为这个信息系统已经无法扩展,全国或世界高手都请来也没有用。

所以,企业信息系统,不管MIS ERP 其它,为何不在开始架构的起点高点?这样自己将来不后悔,也不会被别人骂阿。

据我所知, 一些较成熟的系统都是多模式的, B/S负责和收集和发布信息.
另外一些基于C/S的service和tools在后端进行数据二次整理和分析.
比如报表系统, 用户需要几年的数据报表, 他可在web介面上定制需求,
而后段report service负责查寻数据库, 把结果放在excel或text里, 让后
用email或web 发布的方式交给用户. 这样才可达到系能上的需求.
我们不能因为一个系统中有一个中间层, 就说系统是B/S模式的.

PeopleSoft的人力资源管理模块是比较出色, 至于其它的模块,
我没听说真正用上的.

TO:yyanghhong

我认为模板技术是重用方案中最好的方案,灵活,多变,缺点就是开发维护工具需要大的投入。

<<Moden C++ Design>>一书的中心思想,我个人认为其实就是Template based 重用技术。也许候捷老师还有更高的见解,所以他将这一书说得很重要。

如果细仔观察一下,会发现,系统设计之初的各种优良设计,往往因为后期维护时的各种 patch, bug fix, feature append 动作,而变得越来越复杂,越来越模糊,越来越难以控制与维护。各种各样的重用技术,最后可能会让你无所适从。也许这时会开始怀疑,OO 倒底能让自己在多大程度上重用? 它真的解放了程序员吗?

我一直坚信,终有一天,重建一个系统会比维护一个系统更方便,更快捷。Borland 早就看到这个市场,所以,各种技术之争,对它来说无关紧要,它只是发展系统快速构建的技术。它看到了 CBD(Component Based Development),看到了 Template ,所以它提供 Model, 提供 OpenTools api。

我致力的方向,就是系统的快速构建。我不喜欢将时间花在重复的劳动上,模板可以很好的解决重复劳动的问题。拿分页显示来说,代码生成工具只需要填入使用的 Model(该Model实现 PaginationModel Interface),然后工具就会生成 jsp/ViewBean 等符合框架的代码,以往也许需要 1 个小时才能解决的问题,现在也许只需要 10-20 分钟。因为模板都是经过验证的,不会出错,所以也减少了调试的时间。

"但java web前端开发效率,却不理想, "

.NET 我是没有见过,听说可以像 VB 中一样 drag & drop control 达到编写系统的目录。实际上 SUN ONE Application Framework 在一定程度上做到了这一点。

BTW:不过,我还是不喜欢 SUN ONE, 太慢~~

to iceant:
我也有和你类似的想法--不过没你那么清晰,为此还在论坛上提了个问题,想学习一下代码生成技术。可以指点一下吗?

"J2EE成熟应用已经大概有8年,这其中有相当多成熟的大中型系统,这些真的不容质疑,否则,成了井底之蛙了。

J2EE是不是只适合大型系统?
其实很多时候,我们实现的项目很难预计他的发展性,它目前可能是小项目,但是在客户的要求以及客户自身的发展中,小项目就变成中项目,如果你的软件很好的支持了客户的发展,客户变成了企业集团,那你的项目就成了大项目,企业集团发展是迅速的,每天有多少亿资金流转,而他所赖以流转的信息通道必须2年后才能达到现在的要求,因为这个信息系统已经无法扩展,全国或世界高手都请来也没有用。

所以,企业信息系统,不管MIS ERP 其它,为何不在开始架构的起点高点?这样自己将来不后悔,也不会被别人骂阿。"

Hi Banq,
I find that you are not only very good at programming, you are a marketing genieus.

本来不想多说,还是忍不住了, 到底是年轻.
java在国外的情况,别的我不知道, 在美国, 自从网络泡沫以后,最难找工作的就是java程序员了.一个程序员position招人, 几十个sun的认证java架构师去面试.很多人还在sun, IBM干过.试想,如果java那么有用, 为什么招人的那么少呢? 中国总是慢半拍, 人家java火的时后, 你用delphi,人家java没人用了,你倒火起来了.
B/S不单纯是web架构. 你难道想用java做GUI吗? 我记的peoplesoft在2002年发布它的ERP的时后, 说是世界上唯一web base的. 世界上那么多ERP厂商,人家不知道用做web base, 事实上, 目前它也只有人事和工资系统比较实用.
还有, 做项目设计时,从来是需要考虑规模的.这牵扯到一个资金和成本的问题.一个只有10万的项目,你找几个java程序员干半年.你的老板干吗?

补充一点,我本人对java没反感, 只是觉得不能为商业上的利益去大肆鼓吹莫个东西.

TO: lsj

在 Java 中有 Velocity 可以做比较通用的模板方案。
你可以在 http://jakarta.apache.org 中找到。

另,基于模板重用的方案实际上可以分为很多不同的层次。
可以在业务流程上重用,可以在框架上重用,可以在设计模式上重用(这就是 Moden C++ design 的主要思想),可以在语言一级重用(如 C++ 的 template 技术)

当你开始考虑模板重用技术时,代码自动生成只是一个开始,紧跟着的是代码的维护,我暂时搁置下来的一个项目: Jato for JBuilder Tools 2.0 就是为了实现代码的自动生成与维护而设计的, 我打算在这个版本中验证我的一个想法: 在有良好设计的前提下,重建一个系统不需要太多的时间,而且维护也不会很麻烦。


TO:yyanghhong

我比较同意你的说法,不要为了商业上的利益去大肆鼓吹某个东西。
商业上来说,SUN 不比 MS 好多少,不过,商场就是战场,大家都得想法活着。活下来了才是真实的,否则你的技术再先进,再优秀,却不适应市场,也就只有破产这一条道了。如果你真的想搞先进的技术,想证明自己的想法,也许 OpenSource 是一条很好的道路。

Java 不是完全不适合做 GUI, 在某些场合,它是适合的,如网管中,使用 Applet 的方案已经被广泛采用,跨平台的特性在这里得到很好的应用。使用 Applet ,令喜好Windows的管理员与喜好 Unix 的管理员都能在统一的界面下管理网元(Switch,Route 等)。 Cisco 产品就是一个很好的证明。

To iceant:
谢谢!
Java中缺乏语言级的模板机制--1.5据说要提供,但我想应该是基于运行时的泛型,Sun应该不会对JDK动大手脚,所以效率肯定没C++高。

>>当你开始考虑模板重用技术时,代码自动生成只是一个开始,紧跟着的是代码的维护

是的,我也感到,这个步骤只能慢慢来,逐步提高自己才行。
我现在是尽量用抽象类,以Template模式来减少代码,往抽象基类中集中持久层代码,这样BO就只需要写一些自己的特性代码。然后我想用XML来描述BO,通过读取XML来生成自己的BO。

如果这样做的话就是XML解析+velocity的方式来做了

这样做合适吗?


关于GUI,在Java的GUI没成熟之前,我们能否用Java做中后端,通过XML与MS的GUI交换数据呢?WebService和CORBA也可以啊

我不知道为什么好多人一厢情愿地认为B/S会取代C/S,
B/S相对于C/S来说是有巨大的优势,
但是以后什么系统都是用B/S模式吗?
B/S客户端的表现处理能力实在是很差啊,
如果以后办公系统都是看到的令人恶心的浏览器界面,
我想很多人会不想用电脑了.
我想C/S肯定是有它广阔的应用范围的,
你总不能置系统使用用户的感觉于不顾吧?
比如一些税务啊等等之类的系统客户端,
完全应该是使用应用程序更适合,
而服务器端可以通过WEB方式发布服务,
比如SOAP方式的应用等等.

可以去看看 MiddleGen http://sourceforge.net/projects/middlegen
和 AndroMDA:http://sourceforge.net/projects/andromda


请问各位大侠,在我们现在的电信行业的业务支撑系统中,有那个公司采用J2EE的技术框架做过成功案例。

test