利用JAVA开发windows应用程序(类似CS风格的程序)的可行性论证!

yfhang 2005-02-15 11:09:26
我拥有CS开发经验4年,学习JAVA只有6个月,现一直在研究J2EE框架、开发WEB程序。可公司准备采用J2SE框架、采用swing、JFC技术开发出一种windows界面风格的应用程序,我觉得技术难道太大,项目风险太大:
1、深入了解J2SE的人不多,大家基本都在研究J2EE、J2ME,遇到问题很难解决;
2、使用JAVA开发windows界面风格的应用程序成本太大(代码量大);
3、开发出来的东西性能估计太低;
4、资料太少,市场上关于这方面的书只有不到5本,而且讲的很简单;
5、市场上这样的成功案例不多,只有DB2的客户端、ORACLE9i等,而这些界面的可操作性要求不强,界面也不是很复杂。
以上仅是我个人的观点,因为我对JAVA研究的太肤浅,还请大家谈谈自己的看法,觉得这样做的可行性,谢谢大家!(当时我提出用C#开发windows风格的应用程序,可被否认了、公司说只会考虑JAVA,可我心里还是很担心,也许是我对JAVA理解的太肤浅了。)
还有一点,是站在个人自私的角度,我觉得J2SE的市场份额太小,不值得去研究,研究J2EE走到哪都可以用到,而且资料很全。
真诚的谢谢大家,希望大家赐教!
...全文
9261 52 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
52 条回复
切换为时间正序
请发表友善的回复…
发表回复
yfhang 2005-02-25
  • 打赏
  • 举报
回复
给分实在太少,请谅解!
yfhang 2005-02-24
  • 打赏
  • 举报
回复
azqf121(阿晚)、vssivl(克斯) 、DanielYWoo(绿色毒汁)、hpy121(孩子):谢谢您们!
我们最近正在做另一个活,在闲余之时在研究,谢谢大家!
vssivl 2005-02-22
  • 打赏
  • 举报
回复
我一般是这样作的,说的不好大家别笑啊。
一.XXXApp类。两个作用。
1.只作界面。
2.就像一个集中站,所有Swing对象和辅助对象的引用比如某个JTableModel都在这里,有需要的不加限定符,类外可以用。我感觉和ServletContext比较像。
二.事件监听类
把XXXApp的引用传给它,它就能读取界面的参数,在处理完业务层的函数之后可以设置界面元素,比如显示数据,设定某些按钮的Enable状态。在这个类里有业务层类的引用,可以调用其函数来完成工作。
三.业务层类
在这里有两种情况,第一种情况业务全放在存储过程里,这样的话就没有业务层了。第二种情况,根据用例图,抽象出接口,找出继承关系,作具体类,满足需求
四.数据存取层
五.ConnectDatabase类
用来获取数据库连接和有关数据库操作的静态函数。
azqf121 2005-02-22
  • 打赏
  • 举报
回复
我们公司开发C/S架构一年多以来的感想,我来说一下:
首先,要对数据库库操作比较熟悉,应该有人精通数据的并发操作和程序的多线程一类的东西有深入了解,这个人应该精通JDBC这一块,能够做出一套通用的数据操作的框架,比如数据的增删存等操作的缓存,事务的处理等,给外部留接口,并能对数据的表现,如日期时间,下拉等,这又要结合到JTABLE等一些SWING控件,所以要对事件处理机制熟悉,像数据变化时如何通知界面等等操作,其中的机制,建议参考PB的数据窗口,我们就是以他为范本.
其次,事件控制.因为C/S肯定是胖客户端,所以显得客户端方面比较庞大,何时表现什么样式,怎样表现,用户的操作怎样通知界面和后台操作数据库?就是这一层的任务了,对于事件的处理,则是使用到较多多线程的东东.
再次,是界面,界面的表现,当然不是拉几个控件就好了,需要有扩展的操作数据库的控件,这里,JBUILD里的表现模式是最好的参照,建议有空可以研究一下,或者直接使用.外现样式可能有点难看,但可以使用外观渲染包,网上有下,或者自已开发一个可能也不是太难.

当然,这一切需要时间和成本,这可能是你说服BOSS不使用JAVA开发C/S模式的一个重要理由.不过,只要有了自已的一套框架以后,开发速度也挺快的,估计不会比PB或DH要慢多少
yfhang 2005-02-22
  • 打赏
  • 举报
回复
谢谢大家,请大家多谈谈这方面的架构设计,资料等!
yfhang 2005-02-22
  • 打赏
  • 举报
回复
tangqiuzheng(恭喜发财万事如意):谢谢您!反正公司已经决定了,个人也觉得虽然现在J2EE占有的市场份额更大,可软件发展的趋势C/S、B/S可能会更模糊,也许以后在这方面的发展能会更好,物以稀为归啊,哈哈!
askr(ask) :谢谢您!我已买了JFC手册,正在学习!
joe642(孤单一族):谢谢您!您说的对“对于用户来讲,是不是window应用程序都没有问题,用户只关心怎么用得习惯”,我也正在看java web start的东西呢。正在考虑架构的设计。
onefox(一品狐):谢谢您!公司为了稳妥已确定用SWING了,放弃了SWT,担心风险太大。
yonghar(ohno):谢谢您!可以讲讲这方面的架构设计吗?
DanielYWoo(绿色毒汁) :谢谢您!公司为了稳妥已确定用SWING了,我正在学习这个玩意,您能讲讲这方面的架构设计吗?
cm4ever(小P):谢谢您!
Goal3(拼命三郎):谢谢您!
hu1hao2(huhao):谢谢您!
hpy121(孩子):谢谢您!能讲讲这方面的架构设计吗?谈谈这方面的学习吧,能提供一点这方面资料的网址吗?谢谢您!
vssivl(克斯):谢谢您!能讲讲这方面的架构设计吗?提供一点这方面资料的网址吗?谢谢您!
mubing1126(木冰) :谢谢您!为何迷茫呀?难道阁下和我一样也在研究这个吗?
tangqiuzheng(恭喜发财万事如意):谢谢您!我也处于学习研究阶段,如有成果我会告诉大家的。

hpy121 2005-02-22
  • 打赏
  • 举报
回复
>>hpy121(孩子):谢谢您!能讲讲这方面的架构设计吗?谈谈这方面的学习吧,能提供一点这方面资料的网址吗?谢谢您!

我就只要用Swing在View方面的设计或实现
1、结合XML;使所有的Dialog和Frame的界面信息都能用XML文件保存,只需写个解析器进行转换即可,这样将为你减少好多不必要的代码,如果能很好的结合XML,你会发现做界面非常容易。
2、数据处理和界面绝不要写在一个类里面,应该分开。可以通过建立convert包对其进行转换!
3、一个用于统一Action管理的包是必要的,可以用抽象类对Action进行抽象,以便共享。

通常,如下包是必要的:
api;
swing.component:自定义的component;
builder.action;
builder.frame;
builder.dialog;
builder.convert.

至于资料
http://www.java-cn.net/book/
上的电子书可以参考参考
DanielYWoo 2005-02-22
  • 打赏
  • 举报
回复
>>DanielYWoo(绿色毒汁) :谢谢您!公司为了稳妥已确定用SWING了,我正在学习这个玩意,您能讲讲这方面的架构设计吗?

说到架构,五花八门,我也说不好,我就说一说我最常用的吧
砖帖,绝对砖帖!


客户端:
View层
*XXXApp类,用来监测命令行启动参数,资源释放,提供入口main函数,包含对主要Frame的引用
*MainFrame, XXXFrame类,这些主窗口类
*XXXDlg, 弹出式窗口
*组件类,使用相关的XXXModel和XXXHandler,比如一个XXXTable, XXXPanel

Control层
*XXXHandler,就是实现了那些XXXListener的类,响应事件,调用相应的业务类

Model层
*XXXModel,顾名思义,model,包含XXXEntity数据
*XXXEntity,业务实体,这个东西类似DTO模式,也有叫BO的,反正简单说就是在层间传递数据的实体

后面的就比较灵活多变了

业务层
*XXXMgr或者XXXBO,业务类,就是业务了,比如银行转账,更改信用额度什么的。这些会调用EJB,JMS,Socket,JDBC,JCA,WebServices很多东西,为了避免业务层出现创建connection, statement这些鸟东西,下面再做一个DAO层,还有EJB层等等。

数据层
*DAO层,JMS层,EJB层等等,他们封装底层的操作,比如繁琐的lookup过程等,可以简化业务层。比如用DAO层实现XXXEntity的持久化,JMS层进行消息的处理等。这里的DAO,JMS,EJB等等,如何分层视情况而定。简单的有时候可能就只有一个DAO层调Hibernate,iBatis,JDBC什么的。

服务器端:
*部署EJB, JMS Destination,Datasource等等。EJB本身还可以分层,比如各种EJB模式
禽兽v5 2005-02-21
  • 打赏
  • 举报
回复
delphi有什么比java优秀的地方呢?

eclipse, jbuilder也可以拖拉控件进行界面开发。
delphi有大量控件。java有大量开源项目。

都差不多。
DanielYWoo 2005-02-21
  • 打赏
  • 举报
回复
>>嗯,我是个什么都不懂的人,我记得SCJP老师说过:连SUN公司自己也不是太推荐别人用它的SWING做楼主所说得这类开发,教师既然这么说,肯定有典故,这句话应该可以在SUN的某个角落得到印证的。——找到这句话,到了公司就有了说服力了。

我以前待的公司的总部有一帮架构专家,他们和SUN关系不错,当时要做一个5-8年的项目,这个系统是C/S/S的,中间是WebLogic Cluster,后面是Oralce和Sybase. 从SUN得到的建议是客户端用Swing,SWT根本不在考虑之列(另外,当时SUN虽然鼓吹EJB,但是对总部的架构师私下建议不要用Entity Bean,只用SLSB,MDB哈哈,还有更多好笑的内幕...)

>>DanielYWoo(绿色毒汁) :谢谢您!ibm的swt如何呀?我也觉的这方面的资料太少。

不推荐,还是Swing好啊,其实Swing真的学起来不难
tangqiuzheng 2005-02-21
  • 打赏
  • 举报
回复
我的邮箱是tangqiuzheng@utpower.com.cn
tangqiuzheng 2005-02-21
  • 打赏
  • 举报
回复
楼主设计好后把设计文档发一部分给我,我来做CODER,现成地提高水平也不错……
mubing1126 2005-02-21
  • 打赏
  • 举报
回复
看后各位的发言之后,我的感觉很迷茫呀
vssivl 2005-02-21
  • 打赏
  • 举报
回复
再加一句,我们这J2SE的书不超过50本。
vssivl 2005-02-21
  • 打赏
  • 举报
回复
用Swing比用MFC容易多了,一个字:超爽。
hpy121 2005-02-21
  • 打赏
  • 举报
回复
我用Swing做开发已一年有余,就觉得非常好,主要参考如下三本书
《深入学习:JFC Swing——Java基础类组件集》;
《Swing》Matthew Robinson 和Pavel Vorobiew合著,好像有中文版了;
《java2 graphic 2 Swing》。
目前以还没有发现其它软件界面拥有的功能我用Swing开发不出来的,swing跨平台性非常好,我在Windows2000+Eclipse上开发的软件到Linux上运行基本上不需要修改任何代码!
另外,用Swing做界面的开源软件非常多,如Argouml,都可以从中学到不少的东西!
hu1hao2 2005-02-21
  • 打赏
  • 举报
回复
Java1.5版本以后,Swing的性能有了很大的提升,运行速度上虽不及VB VC开发的程序,但是在当前主流配置的机器上运行已经相当不错了.如果可以SWT JFace的话就更好了,它的执行效率高过Swing.
现在很多桌面程序都选择了Java.比如:JBuilder,Toghter,Ecilipse,Nokia的一些应用软件也是用Java写的.具体也可以去sf找些Java开源程序参考一下.
Goal3 2005-02-21
  • 打赏
  • 举报
回复
关注
yonghar 2005-02-18
  • 打赏
  • 举报
回复
jtable,jtree可以自己重新写model,你写一个以后就知道那感觉有多爽了。
tangqiuzheng 2005-02-18
  • 打赏
  • 举报
回复
嗯,我是个什么都不懂的人,我记得SCJP老师说过:连SUN公司自己也不是太推荐别人用它的SWING做楼主所说得这类开发,教师既然这么说,肯定有典故,这句话应该可以在SUN的某个角落得到印证的。——找到这句话,到了公司就有了说服力了。

这句话从味道上,也说明了许多问题了。
加载更多回复(32)

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧