|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-03-04
楼主,很巧。我最近也在做类似的项目。
可能在windows上开发gui应用,目前首选还是VC++, Delphi, C++ builder之类的老牌开发工具。 c#至少目前还不是,不信你下载多几个应用程序看看就知道了。 让客户安装一个.net framework可能不会多花多少下载和运行时间,但是始终是个麻烦,不是吗? C#的开发不需要让用户安装的方案,好像是有工具可以做到的,有人在网上发帖说利用了飞信(移动那个?)安装之后的那些dll之类的,自己做了不用安装.net framework的东东(就是相当于native jre?)。你可以看看。 不想陷入哪个语言开发更好的口水战,但是我对java比c++要熟悉很多,所以就用了java。 我选了swing, 入门级的swing application framework。 我的界面要求没有你的高。不需要自定义那些控件。 工具 用netbeans 6开发,对gui 设计的支持觉得还可以。可能是很久以前一直用vc++6.0(拖动设计的支持还不行),这样的拖动设计效果已经让我感到很爽了,呵呵。 嵌入IE jdic (sun java 社区的) djproject.sourceforge.net (我用了这个) 打开一个IE窗口就比较简单了,用 Runtime.getRuntime().execute("exploer http://....."); EXE可执行文件(启动程序用的) 用了jsmooth, 可以一起打包jre,生成一个exe启动文件,jar维持原状(也可以选择把jar生成到exe文件中去),我以为这样可以方便升级(我打算自己实现升级,对javaws 没有太多好感)。 没有用excelsior,有几个原因。 1.本地化编译之后,我不知道能不能单独升级某个自己编写jar包。 2.我没有找到破解版,哈哈。 安装 inno setup 不知道比install shield(anywhere) 是不是差了很多。 选择的原因是 1.免费,且在我下载到install anywhere 破解版之前就找到了。 2.上手很快。1分钟就搞定了我自己的安装包。 3.我觉得够用了(对我来说) 我用了jre6,70MB的原始文件,整个应用程序(helloworld)打包之后是16MB,这个size还是比较大,可能也是你会面临的最大的问题,就是如何缩减jre的size。 防反编译 proguard.sourceforge.net 把代码混淆一下,能有多大作用也不知道。不过我的程序无所谓了,没有什么所谓技术含量的东东,哈哈 我目前还在开发中,后期可能会花力气在jre的缩减上。这个比较麻烦,不过也不是完全没有方法,网上还是有不少文章介绍的。希望你搞定了能在这里公布一下你的方法。 Good luck! |
|
| 返回顶楼 | |
|
最后更新时间:2008-03-03
Delphi对activex的支持有些问题。
做一般的应用倒没啥问题,如果想做成activex嵌入到IE麻烦就来了。 如果涉及到activex form的编写,不推荐delphi。 我只swing做过简单的开发(就是用netbeans拖控件)。 至少给我的体验很不错,比eclipse的swt好太多了。 以前为了选择一个合适的布局管理器实在是痛苦。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-03-03
wxPython不错。 py2exe后 在压缩一下大概也就4-5M左右
不过 界面要做很花哨估计有些难度 |
|
| 返回顶楼 | |
|
最后更新时间:2008-03-03
如果是做网络程序的话,.net绝对是最佳选择。节省开发成本80%以上。
.net这方面最大的优势在于天生支持异步处理,它访问网络在异步调用的时候用完成端口。。那个delegate就是可以用来异步调用的,用java,你就弄线程池慢慢折腾吧。c++就老老实实做同步的吧。c++程序员,有几个能用好完成端口的?很多c++程序员都不会用异步处理来访问socket。 打包的问题,有些第三方的工具可以把.net framework打包进去,不过体积也不小。有15M左右。 其实用哪个都行,不过你要是想你的项目早点完工,就用.net。绝对是最早完工的。 打包问题,回头再说。 silverlight 2.0是可以用c#开发的。不过它访问网络有限制。如果只访问网站所在的服务器,是可以考虑的。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-03-03
建议楼主尝试一下soyframework,刚刚发布的java富客户端企业应用开发框架,现在正在做推广可以申请到免费的授权而且还有技术人员上门培训
http://www.soyframework.com 1. 有非常多的Socket通信,UDP和TCP都有。但业务逻辑不复杂。 你可以自己写Socket通信,如果是和服务器通信可以考虑使用httpinvoker(spring极力推荐的远程调用的方式,soyframework中远程调用服务器服务的基础)相当的简便。 2. 客户端总体安装大小(包括虚拟机)不能超过12M。 soyframework使用java web start 启动,可以为客户端自动安装java虚拟机(JRE1.5 14M这个省不掉),应用程序(最3-4M)自动下载无需安装。 3. 界面要求比较漂亮,随不要求跟游戏一样华丽,但不能像原生控件一样死板。 soyframework提供大量客户端控件和组件,完全不懂swing也可快速开发表单,表格等界面,但是如果你要做一些特别的界面就得用Swing了。附件是界面截图。 4. 没有数据库操作。 框架的强项,不要求就不说了 5. 界面部分区域需嵌入浏览器。 用jdic 6. 支持Windows XP和Vista。 只要它能装JRE 7. 开发团队没有Delphi、VB和VC程序员。有Java和C#的。 8. 部分功能必须调用已经开发好的Windows dll实现,但这部分非常少。 Java本地方法调用 9. 对执行效率的要求不高。 10. 发布包能够尽量抵抗反编译。 用金蝶出的jocky吧,只需要在ant脚本中加一句脚本即可完成混淆,效果还不错 11. 目前处在开发前的准备阶段,还没有最终确定开发语言。 12. 进度要求3个月内release。 13. 开发预算相对充裕。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-03-03
现在java好像不怎么得人心嘛。
java现在改进了不少,但是还有两个地方不行。最大的一点,就是对回调的支持不好。没有语言级的支持。 java第2点,是不支持p/invoke。这其实是很重要的特性,毕竟没有纯java的商业操作系统,很多时候,都要调系统的api. 至于没有property,倒不是什么大问题。 java没有delegate,导致实现事件非常麻烦,很多时候,都是用继承来代替事件,少写点代码,但是继承只能继承一个,又引出很多麻烦。 什么时候java在语言层支持event,我就支持java。什么listener类了,什么attachEvent了,搞得好像很有学问一样,写得代码一堆一堆的,c#两行代码就解决了。 把代码结构搞得很烂,或者简单的事情搞得很麻烦,是一件不可容忍的事情。很多java程序,就是因为这个原因,结构变得很烂。 |
|
| 返回顶楼 | |
|
最后更新时间:2008-03-03
swing开发大型桌面应用.应当很多的.国内的永中office,国外知名的UML工具,MagicDraw,JBuilder 还有一个,PHP的IDE叫什么名字不记得了.还有IReport报表设计器
大型3D网络游戏有WURM等应用,所以说, swing开发桌面应用技术上没什么难点.也没有大家想像中那么差.想想人家为什么用swing能做出这么好应用 |
|
| 返回顶楼 | |
|
最后更新时间:2008-03-03
采用java除了发布文件的大小限制外(不过也可以根据自己的需要删除jdk中用不到的包),其他的都可以满足要求,不过建议尽量不要采用swt,采用swing在自定义界面方面可发挥的空间,而且目前有很多开源的组件,建议采用substance,可以参照我做的彩超工作站(http://walsece.javaeye.com/blog/163475)。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-03-04
mooniscrazy 写道 现在java好像不怎么得人心嘛。
java现在改进了不少,但是还有两个地方不行。最大的一点,就是对回调的支持不好。没有语言级的支持。 java第2点,是不支持p/invoke。这其实是很重要的特性,毕竟没有纯java的商业操作系统,很多时候,都要调系统的api. 至于没有property,倒不是什么大问题。 java没有delegate,导致实现事件非常麻烦,很多时候,都是用继承来代替事件,少写点代码,但是继承只能继承一个,又引出很多麻烦。 什么时候java在语言层支持event,我就支持java。什么listener类了,什么attachEvent了,搞得好像很有学问一样,写得代码一堆一堆的,c#两行代码就解决了。 把代码结构搞得很烂,或者简单的事情搞得很麻烦,是一件不可容忍的事情。很多java程序,就是因为这个原因,结构变得很烂。 对c#只有上课的时候学过一点,基本等于不会用,你说的有的东西听不太懂。 你能解释一下java在回调方面支持不好是什么意思么?是没有c#中的某个功能么? p/invoke是什么意思?如果是调用系统api的话,java里不是有jni么? delegate是不是就是解决了一个函数指针的问题?如果是这样的话,其实java也可以通过java.lang.reflect.Method 来实现,具体参考 java tutorial中Reflection 一章。但是我记得当时看书的时候说不提倡这么做,原因解释了一大堆,其中就包括使用接口可以使代码结构更清晰。 ps:刚发现javaeye里不许写“我 是 菜 鸟”几个字~那菜鸟们怎么表示自己的身份呢? |
|
| 返回顶楼 | |
|
最后更新时间:2008-03-04
ray_linn 写道 当然为了骗客户的钱可以用Swing,那种机车的速度可以有大把的理由让客户买了软件的时候同时还得买你们的硬件~
呵呵...Swing是慢,但还没有慢到你说的机车速度,不知道兄弟有没有真正使用Swing做过一个与数据库交互的桌面应用呢?如果仅是听说,那就.......... |
|
| 返回顶楼 | |









