`
neora
  • 浏览: 183850 次
  • 性别: Icon_minigender_1
  • 来自: 墨尔本
文章分类
社区版块
存档分类
最新评论

咨询客户端软件开发语言

阅读更多

最近需要做个客户端软件,有以下特征要求:

  1. 有非常多的Socket通信,UDP和TCP都有。但业务逻辑不复杂。
  2. 客户端总体安装大小(包括虚拟机)不能超过12M。
  3. 界面要求比较漂亮,随不要求跟游戏一样华丽,但不能像原生控件一样死板。
  4. 没有数据库操作。
  5. 界面部分区域需嵌入浏览器。
  6. 支持Windows XP和Vista。
  7. 开发团队没有Delphi、VB和VC程序员。有Java和C#的。
  8. 部分功能必须调用已经开发好的Windows dll实现,但这部分非常少。
  9. 对执行效率的要求不高。
  10. 发布包能够尽量抵抗反编译。
  11. 目前处在开发前的准备阶段,还没有最终确定开发语言。
  12. 进度要求3个月内release。
  13. 开发预算相对充裕。


目前的提出的方案有这样几种:

  • 方案一、Java+SWT
  • 用Java开发。配合少量Jni。(dll支持)
  • GUI方案选择SWT。(因为Swing的在Jre中依赖太多,难以精简jre)
  • 精简JRE。(目前已经初步精简到16M了。肯定还可以继续精简)。
  • 几乎不引入任何第三方jar工具包(目的是减少字节量)。
  • 自定义ClassLoader,通过DES加密jar/class。以达到抗反编译目的。
  • 方案二、C# + .net
  • 最大的问题是C#依赖.netframework。.netframework太大了。客户的机器大都没有预装。
  • 方案三、新招聘VC++开发人员组成新的开发团队
  • 方案四、直接外包给别的其他公司的VC团队开发。
  • 重来没试过这种方式啊。


方案最终需要我来决定,我目前比较倾向方案一,但还没有最终决定。

 

很急很犹豫!


大家能帮我分析分析吗,给我点儿建议?或者有什么更好的方案?这里先谢过大家。

 

 

 

 

 

 

 

------------------------------------------------------------------------------------------------------------

KO对战游戏平台 www.ko10000.com 打游戏,交朋友。

分享到:
评论
68 楼 bubble 2008-03-12  
AIR+EXT2
不过国内能做的人比较少
67 楼 jix 2008-03-11  
AIR-FLEX3
66 楼 stevenwang 2008-03-06  
反对Delphi,支持.net
我们刚刚做了如上的选择,也是为了限期完成工作。
65 楼 jjx 2008-03-06  
不得不提醒一下 ,silverlight 2.0 beta1 出了,现在除了 flex,sl 也是一个非常有吸引力的选择
64 楼 sp42 2008-03-06  
若flex,比较thin的方案, 可考虑一下ext + flash socket swf,反正ext的对象模型多少是仿swing的,不过socket swf看上去手段就比较hack了,而且用的端口防火墙哪里要配合一下。
63 楼 xilaile 2008-03-05  
支持Java+SWT
62 楼 mathgl 2008-03-05  
我在一台 Celeron 533 128M 测试过 .net 1.1 的C/S客户端。 速度可以接受
不过 界面渲染比较慢。 用wxPython 基本上接近原生码的速度
61 楼 nazar 2008-03-05  
你手头的人对什么熟,就用什么。其他的放第二位。

如果你的人对几种开发都没有问题,首选当然是一些老东西了。比如delphi vc++ c++builder什么的。然后考虑 c# (这需要.net),最后考虑java。

第二种情况如果你还要选java,除非你的应用需要跨平台。

60 楼 zhangcheng 2008-03-05  
<div class='quote_title'>neora 写道</div><div class='quote_div'>最近需要做个客户端软件,有以下特征要求:<br/><ol><li>有非常多的Socket通信,UDP和TCP都有。但业务逻辑不复杂。</li><li>客户端总体安装大小(包括虚拟机)不能超过12M。</li><li>界面要求比较漂亮,随不要求跟游戏一样华丽,但不能像原生控件一样死板。</li><li>没有数据库操作。</li><li>界面部分区域需嵌入浏览器。</li><li>支持Windows XP和Vista。</li><li>开发团队没有Delphi、VB和VC程序员。有Java和C#的。</li><li>部分功能必须调用已经开发好的Windows dll实现,但这部分非常少。</li><li>对执行效率的要求不高。</li><li>发布包能够尽量抵抗反编译。</li><li>目前处在开发前的准备阶段,还没有最终确定开发语言。</li><li>进度要求3个月内release。</li><li>开发预算相对充裕。</li></ol><br/>目前的提出的方案有这样几种:<br/><ul><li>方案一、Java+SWT</li></ul><blockquote><ul><li>用Java开发。配合少量Jni。(dll支持)</li><li>GUI方案选择SWT。(因为Swing的在Jre中依赖太多,难以精简jre)</li><li>精简JRE。(目前已经初步精简到16M了。肯定还可以继续精简)。</li><li>几乎不引入任何第三方jar工具包(目的是减少字节量)。</li><li>自定义ClassLoader,通过DES加密jar/class。以达到抗反编译目的。</li></ul></blockquote><ul><li>方案二、C# + .net</li></ul><blockquote><ul><li>最大的问题是C#依赖.netframework。.netframework太大了。客户的机器大都没有预装。</li></ul></blockquote><ul><li>方案三、新招聘VC++开发人员组成新的开发团队</li></ul><blockquote><ul><li/></ul></blockquote><ul><li>方案四、直接外包给别的其他公司的VC团队开发。</li></ul><blockquote><ul><li> 重来没试过这种方式啊。 </li></ul></blockquote><p><br/>方案最终需要我来决定,我目前比较倾向方案一,但还没有最终决定。</p><p> </p><p>很急很犹豫!</p><p><br/>大家能帮我分析分析吗,给我点儿建议?或者有什么更好的方案?这里先谢过大家。<br/></p><p> </p></div>    支持第一种方案
59 楼 lonlyleo 2008-03-04  
可惜我只会Java,所以我正在做的客户端首选Swing,netbeans坐起来也很快嘛,不知道.net会不会更快呢?呵呵.

暂时还不想用SWT,本来偶就是web开发过来的,GUI程序开发经验有限,先集中精力学会Swing吧.

看大家发言,Flex似乎做浏览器中的富客户端是个好的选择,有时间一定关注一下.
58 楼 neora 2008-03-04  
为什么没人支持SWT呢?SWT再不济,也有Eclipse这个绝对的成功案例啊。
57 楼 nazar 2008-03-04  
mooniscrazy 写道
如果是做网络程序的话,.net绝对是最佳选择。节省开发成本80%以上。
.net这方面最大的优势在于天生支持异步处理,它访问网络在异步调用的时候用完成端口。。那个delegate就是可以用来异步调用的,用java,你就弄线程池慢慢折腾吧。c++就老老实实做同步的吧。c++程序员,有几个能用好完成端口的?很多c++程序员都不会用异步处理来访问socket。
打包的问题,有些第三方的工具可以把.net framework打包进去,不过体积也不小。有15M左右。
其实用哪个都行,不过你要是想你的项目早点完工,就用.net。绝对是最早完工的。
打包问题,回头再说。
silverlight 2.0是可以用c#开发的。不过它访问网络有限制。如果只访问网站所在的服务器,是可以考虑的。



# .net这方面最大的优势在于天生支持异步处理,它访问网络在异步调用的时候用完成端口?
完成端口是windows32 平台原生的,这个也没有想象那么复杂,2000年就用过了。这玩意主要用在高性能服务器设计上,桌面程序不会需要这个的。

java 下的网络处理,你可以看看这个 http://mina.apache.org,你只需要关注数据的业务逻辑。

.net 最大的优势这一说,我个人认为,至少目前还不成立。你看看你自己安装的那些桌面程序就知道了。基本还是脱离.net 的VC,delphi, c++builder等的天下。

#.不过你要是想你的项目早点完工,就用.net。绝对是最早完工的。
这个说法没有根据。你的团队如果对.net不熟,这点就不能成立。

ps.
话说回来,选用java 作为桌面系统的原因我觉得可以支持的只有:
@ 你的应用需要跨平台;
@ 你的团队只熟悉java,对vc .net c++builder delphi不熟;
56 楼 liangguanhui 2008-03-04  
其实我不知道为什么这么多人推荐java。对于这种本地程序,我建议是使用传统的工具,例如delphi,或者MFC、VB等。相信整个程序下来1M都不到。当然,也可以用C++ Builder,虽然感觉上选BCB还倒不如用delphi,不过考虑到你们组的人熟悉C#和Java,那相对来说,BCB会更容易上手。

至于虚拟机类的,.net调用本地的dll还好一点,不过java就比较郁闷了,要用JNI。另外,12M的大小限制也是很大的限制来的。

很多人说java(或者swing)作桌面程序已经比以前好很多了。其实,传统的桌面工具已经在这些方面积累了那么多的经验,有很多现成的工具,又何必舍近求远呢?有人说java在socket等网络方面有很大的优势,其实delphi、MFC等又何尝没有这方面的封装呢?
55 楼 maxiaoxia 2008-03-04  
用delphi是最好的,从我的角度看。
如果没有很复杂的东西,非常短的时间内就可以交工。
54 楼 ray_linn 2008-03-04  
Kaede 写道
Raecoo 写道
ray_linn 写道
当然为了骗客户的钱可以用Swing,那种机车的速度可以有大把的理由让客户买了软件的时候同时还得买你们的硬件~


呵呵...Swing是慢,但还没有慢到你说的机车速度,不知道兄弟有没有真正使用Swing做过一个与数据库交互的桌面应用呢?如果仅是听说,那就..........

Java Swing 在6下 性能 提升很多,我做Swing开发有一段时间,做出来的东西,在我的机器上 与 其他语言实现的速度根本看不出来,我觉得 对于Swing 大家还是有一定的误会。Swing还可以自定义主题~


和同机上的.net应用速度还是差别显著的,如果是VC++,那就是差别甚远。万一客户机器烂点,比如配256M内存了,就可以怂恿他们更新机器了。
53 楼 bookong 2008-03-04  
在Eclipse上安装Designer插件,设计Swing的界面已经很简单了。

neora 写道
客户端总体安装大小(包括虚拟机)不能超过12M。


为什么要限制不能超过12M?如果说为了网络传输,12M也很大?

neora 写道
发布包能够尽量抵抗反编译。


这点我认为,既然你都决定使用JNI来调dll(假设用Java开发),那么你的Java程序应该都是表现层的东西,这些东西不是核心的代码,有必要费力气保护?

neora 写道
进度要求3个月内release。


3个月的时间很紧,应该尽量用熟悉的语言,熟悉的技术来开发。
52 楼 Kaede 2008-03-04  
Raecoo 写道
ray_linn 写道
当然为了骗客户的钱可以用Swing,那种机车的速度可以有大把的理由让客户买了软件的时候同时还得买你们的硬件~


呵呵...Swing是慢,但还没有慢到你说的机车速度,不知道兄弟有没有真正使用Swing做过一个与数据库交互的桌面应用呢?如果仅是听说,那就..........

Java Swing 在6下 性能 提升很多,我做Swing开发有一段时间,做出来的东西,在我的机器上 与 其他语言实现的速度根本看不出来,我觉得 对于Swing 大家还是有一定的误会。Swing还可以自定义主题~
51 楼 Kaede 2008-03-04  
“有非常多的Socket通信,UDP和TCP都有。但业务逻辑不复杂。”

我觉得你们完全可以 学学C++ 用C++来做
50 楼 Kaede 2008-03-04  
SWT目前是不是还不支持主题的功能,不支持哪还不是原声的界面?
49 楼 Raecoo 2008-03-04  
ray_linn 写道
当然为了骗客户的钱可以用Swing,那种机车的速度可以有大把的理由让客户买了软件的时候同时还得买你们的硬件~


呵呵...Swing是慢,但还没有慢到你说的机车速度,不知道兄弟有没有真正使用Swing做过一个与数据库交互的桌面应用呢?如果仅是听说,那就..........

相关推荐

    JAVA语言在计算机软件开发中的应用 (3).pdf

    JDBC技术可以将客户端的接口按照相应要求进行合理处理,在处理过程中可以为软件开发人员及时的提供信息更新与信息咨询的服务。Java Annotation技术可以高效连接编程中的变量,并且实现编程中的各项机制的整合,不仅...

    SVN+中文语言包 - 让您的Subversion客户端“说”中文

    项目管理者:需要监控和管理软件开发过程的项目负责人。 学习者:学习SVN版本控制系统的初学者和学生。 在使用本中文包前,请确保您了解对SVN客户端所做的修改。本中文语言包仅供学习和非商业用途,使用过程中遇到的...

    易语言客户端源码,易语言更新客户端源码,易语言服务控制端源码,

    易语言是一种专为中国人设计的编程语言,它以简体中文作为编程语句,降低了编程的门槛,使得更多非计算机专业的人也能参与到程序开发中来。本资源包含的是易语言客户端和服务控制端的源码,主要用于实现在线客服系统...

    基于人工智能技术与大数据的社区高效管理软件开发与应用.pdf

    人工智能技术与大数据的应用在社区高效管理软件开发中扮演着关键角色。这些技术的结合,不仅能够显著提升管理效率,还能够增强对居民需求的响应和服务的精准度,使得社区管理在特殊时期能够更有效地运行。 在当前...

    TallerImplementa:带有软件库的基本功能(咨询客户端)的实现研讨会,在软件工程课上

    总结来说,这个工作坊提供了从需求分析、设计、编码到测试的完整软件开发实践,涵盖了Java编程的基础和高级特性,对于提升软件工程学生的技能和实践经验大有裨益。参与者不仅可以深化对Java语言的理解,还能学习到...

    MSN手机客户端1.1.6

    国际化支持(当前支持的语言有简体中文、繁体中文和英文) &lt;br&gt;注意: &lt;br&gt;由于使用了socket连接,对于中国移动的用户,本软件只支持'cmnet'连接方式,因此当系统询问连接方式的时候,请用户务必使用访问点为...

    安心酒店订房系统 包含了服务器和客户端

    安心酒店订房系统是一款集成了服务器和客户端的综合性软件,主要功能包括用户登陆注册、在线浏览房间信息以及与客服进行咨询。在这个系统中,我们将会深入探讨与“qt”标签相关的技术应用,以及如何构建这样的系统。...

    PLSQL集成ORACLE客户端精简版

    总之,"PLSQL集成ORACLE客户端精简版"是一个方便的工具,特别适合那些只需要进行基本的PL/SQL开发和数据库管理,而不想安装完整Oracle客户端的用户。只要遵循正确的安装步骤和注意事项,它能极大地提升你的工作效率...

    毕业设计,基于安卓AndroidStudio开发的校园求职招聘App,包括安卓服务器端和安卓客户端,内含完整源码、数据库脚本

    毕业设计,基于安卓AndroidStudio开发的校园求职招聘App,包括安卓服务器端和安卓客户端,内含完整源码、数据库脚本 基于安卓AndroidStudio校园求职招聘app设计毕业源码案例设计 开发软件:Eclipse/Idea + Android...

    基于springboot心理治愈网站论文.docx

    本论文主要论述了如何使用 JAVA 语言开发一个心灵治愈交流平台,该系统将严格按照软件开发流程进行各个阶段的工作,采用 B/S 架构,面向对象编程思想进行项目开发。 知识点一:JAVA 语言 JAVA 语言是一种面向对象...

    安卓应用-健康医疗-317护客户端 V2.7.4 安卓版.zip

    1. **应用程序结构**:317护客户端的文件层级结构反映了其内部模块化的组织方式,将安卓应用、健康医疗和317护客户端等信息分门别类,这有利于软件的开发和维护,同时也方便用户理解和使用。 2. **安卓平台兼容性**...

    安卓应用-健康医疗-泓华医生手机客户端 v3.5.6.zip

    安卓应用主要基于Java或Kotlin语言开发,采用Android SDK(软件开发工具包)进行编程,利用Android Studio集成开发环境进行编译和调试。泓华医生手机客户端也不例外,它的核心功能模块很可能由这些技术构建而成。 ...

    安卓应用-健康医疗-百度医生医生客户端 v2.8.1.zip

    1. **安卓应用开发**:安卓应用是基于Android操作系统开发的软件,使用Java或Kotlin等语言编写,遵循安卓应用的生命周期管理和组件模型。开发者需要了解Android SDK、Android Studio等工具,以及XML布局文件的编写。...

    安卓应用-健康医疗-途欢健康手机客户端 v3.2.3.zip

    1. **安卓应用开发**:Android是一个开源的操作系统,开发者可以使用Java或Kotlin等语言开发应用。途欢健康手机客户端遵循Android的开发规范,可能使用了Android Studio作为集成开发环境。 2. **健康医疗应用**:...

    安卓应用-健康医疗-妇幼医生助手客户端 v1.2.zip

    开发者通常使用Java或Kotlin语言编写Android应用,并通过Android Studio集成开发环境进行编译和调试。 2. **健康医疗应用**:这类应用通常包含各种功能,如个人健康记录管理、疾病查询、在线咨询、医疗资讯推送、...

    基于php的大学生心理健康咨询网站(源码+开发文档+演示视频)

    3. **Apache**:是世界上最流行的Web服务器软件,能够处理HTTP协议,将PHP脚本解析并返回给客户端。 4. **MySQL 5.7**:作为关系型数据库管理系统,MySQL是许多Web应用的数据存储解决方案。5.7版本提供了更多性能...

    客服在线管理,仿QQ即时通讯,适合开发捆绑在自己的程序中便于客户管理咨询

    7. **易语言源码应用**:易语言是一种易学易用的编程语言,适用于快速开发。此项目的源码使用易语言编写,为开发者提供了直观的学习和二次开发基础。 在实际开发过程中,开发者可以参考以下步骤: 1. **环境搭建**...

    计算机专业毕业实习报告 .doc

    10. 计算机专业软件开发流程:计算机专业软件开发流程包括需求分析、设计、实现、测试、维护等阶段。在实习过程中,学习到了计算机专业软件开发的具体流程,提高了自己的实习工作能力,适应社会能力和自我管理的能力...

Global site tag (gtag.js) - Google Analytics