项目组成员对Delphi还比较熟悉,但只做数据库应用、网络通信应用,而未做过WebServer,从未接触过JBuilder。假如时间充裕,如何选择工具?
解决方案 »
- 问一下,为什么设置窗体透明后,用了皮肤,窗体还是不透明呢,求救
- fastreport 3.15 是否可以同时御览两个不同的报表?谢谢
- 出现这个 Incompatible types: 'PAnsiChar' and 'PWideChar' 编译错误该如何处理?
- Tjpegimage产生得jpg图片能以TMemoryStream存到数据库里面吗?怎样存?
- 特急!fastreport2.46无法显示TfrReport中的"对象查看器",如何恢复?
- 如何制作象电视剧剧尾那样剧目菜单(如:制片人是谁导演是谁那样的序幕样式)
- 那个函数是弹出一个窗口让用户输入一个数值?
- 请问,delphi如何调用sybase的ct_library,应包含那些头文件
- 学习 web services及高手能否留下QQ和EMAIL,方便联系!
- 怎样读取一个随机存储文件,文件中各个字段长度不知……
- 请问谁知道怎么拦截GETPEOCADDRESS函数!
- 对于[StrToDate]函数的问题
还是用JAVA吧,起码工资高一点
1)调试复杂。做开发,不能调试,简直就是shit。
2)缺乏支持诸如Application,Session这样的强大对象(即使象WebSnap有Session,也只能支持一个简单类型,不能支持Class)。
3)缺乏对面向对象的良好支持。j2ee有servlet,.net有Page,Delphi有什么?光有那些控件,能做出什么东西来啊?稍微一变化就晕倒。
Delphi有WebBroker和Servlet完全相当。
WebBroker支持多种WebServer。
Delphi还有WebSnap
Delphi还有InternetExpress
Delphi还有ActiveForm,配合以Indy网络访问元件
Delphi还有IntraWeb。
但是要想作出比较花哨的Web界面,最好还要拥有DevExpress的EWF元件包。
在作Web界面方面,慎用WebSnap和InternetExpress。
Java相比之下差太远了。
请问调试那个方便?
2)Java推出到现在就一个j2ee,.net也就是System.Web下面的类。而Delphi呢?D5是InternetExpress,D6是WebSnap,D7又是InterWeb。花样这么多,证明每一样都不成熟,而且每变化一次,就要人重新学一次,烦不烦?
真是不比不知道。看看Delphi开发的Web界面吧!
http://www.chinajavaworld.net/non-cgi/usr/56/56_151_7.jpg
上述界面虽简单,实现起来可不太容易。
http://www.chinajavaworld.net/non-cgi/usr/56/56_151_8.jpg
要说Delphi的某些Web功能不尽理想,连我都非常有同感。
但要说Delphi的Web功能一无是处,那可就错了。
另外,那个界面并不花俏啊,呵呵,何况界面上的事情应该是由html去做,程序员关心的应该是后面的逻辑代码怎么写。而如何写出高质量的代码,我觉得必须借助面向对象的强大功能,Delphi在这一方面恰恰很弱。把大量常用的操作封装起来,程序员只关心他需要的数据逻辑,这样非常省时间,提高效率。
.net和j2ee我都能实现,Delphi上我就搞不定。
另外,那个界面并不花俏啊,呵呵,何况界面上的事情应该是由html去做,程序员关心的应该是后面的逻辑代码怎么写。而如何写出高质量的代码,我觉得必须借助面向对象的强大功能,Delphi在这一方面恰恰很弱。把大量常用的操作封装起来,程序员只关心他需要的数据逻辑,这样非常省时间,提高效率。
.net和j2ee我都能实现,Delphi上我就搞不定。
另外,那个界面并不花俏啊,呵呵,何况界面上的事情应该是由html去做,程序员关心的应该是后面的逻辑代码怎么写。而如何写出高质量的代码,我觉得必须借助面向对象的强大功能,Delphi在这一方面恰恰很弱。把大量常用的操作封装起来,程序员只关心他需要的数据逻辑,这样非常省时间,提高效率。
.net和j2ee我都能实现,Delphi上我就搞不定。
我给大家看的界面可不是比花哨的。界面的花哨完全是DreamWeaver和PhotoShop、FireWorks的事情。可不是Delphi和Java所为。我让大家看的是界面的模式。可是你光看热闹,没看门道。
你要是做过在数据库中动态存储一个树形结构,在Web中还原成可点击的TreeView,你就知道做这种东西的难度了。
另外,Web表格的层状展开也是一个难点。在Delphi中我把这些封装成已有的对象,能够方便的调用,并针对特定的东西做成了IDE插件工具,专门针对特别棘手的Web界面模式的制作。
你说“而如何写出高质量的代码,我觉得必须借助面向对象的强大功能,Delphi在这一方面恰恰很弱。”你是根据什么知道的Delphi在这一方面恰恰很弱呢?你了解Delphi到什么程度呢?你考察过Delphi在面向对象方面的各种体现吗?
要知道,Delphi的面向对象思想直接催生的C#啊!到现在,VS.net有很多东西还难以和Delphi相比呢!
2)Web的层次展开如果全部取数据不仅要求代码难度,而且浪费效率。如果局部取数据就变得非常Easy,而且效率也很高。
3)我领悟面向对象是通过Delphi的,我读得最多得书也是Delphi。Delphi 2/4/5/6 Developer's Guild。我对VCL的架构很熟悉,应该是精通Delphi的控件设计、MIDAS、Open Tools API。
4)C#是Delphi和Java的杂种,我不否认这一点。但是C#比Delphi好很多。
5)Delphi在Web方面确实很弱,没有成熟的东西。对XML的支持力度不够,还有RTTI的特性远远不如Java和.net,这使得plug-in技术很难得到应用。
但是,要是深入一步进行开发,也就是说抛弃Delphi现有提供的上层Web功能,只用其中的基础部分,自己构造很多上层功能,那还说的过去。我自行开发IDE插件辅助Web开发,发现这样一来,Delphi的开发能力倒十分凶悍。所以,开发Web应用我一般都将WebBroker,少许的WebSnap和占主要地位的EWF元件集混合起来进行Web程序的制作。Delphi有个好处就是制作辅助开发工具很方便,可以做出五花八门的工具来。在Web领域也是这样。
Web的层次展开确实是得局部取啊,否则做成层状干什么?就是让明细数据在用户的下一步点击之后才查询出来。
拿Delphi现有版本和C#比是不合理的。因为虚拟机运行机制的代价换来的就是全新的语言、开发环境的特性。等Delphi.net出来之后Delphi.net和C#Builder,以及VS.net之间才具备可比性。RTTI特性是与语言的高级程度有直接关系的。新一代的虚拟机型语言它们的rtti特性当然要上一个层次了,这确实是Delphi需要加强的地方。但是Delphi好在能够方便的访问底层,目前又有大量的第三方控件,虽然制作插件的接口复杂些,但攻克之后,做出的东西比较厉害。
对了,作为交流,请使用我开发的D6/C6插件:YExperts。
http://expert.csdn.net/Expert/topic/1765/1765310.xml?temp=.5508234
总起来讲,Delphi中的Web开发手法应该说是“奇门功法”,或者说是“另类方法”。也就是说,那些比较厉害的Delphi的Web开发方法都没有走开发工具的默认方式,而是独辟蹊径走了旁道--要么运用了强有力的第三方控件,要么自己开发了特殊的辅助工具,要么运用了非官方认可的程序写法等等。
在开发Intranet的Web程序上,我经常制作ActiveForm,上面使用Midas之WebConnection与服务器连接,利用MidasLib将Midas.dll编译进ocx,服务器端用COM+的RemoteDataModule,通过httpsvr.dll在http上发布。这样制作Web程序几乎功能和界面都不受限制,要什么功能只有想不到,没有做不到。但这种方法和正统Web开发模式相比有耍赖之嫌。不过要真开发这种方式的Web程序,开发人员要绕些圈子,涉及到WebServer动态取OCX文件版本号,ASPack压缩OCX文件,为OCX添加数字签名等琐事。
将Delphi的Active Server Object功能也运用到Web开发中非常好,它和前端的ASP脚本相配合,刚柔相济,非常灵活。
不过也有人习惯于IIS+Tomcat并存,也可以采用上述方法。
2)ActiveXForm应该是个好东东,这一点Borland做的甚至比Microsoft还要好。但是也有以下缺陷。和数据库打交道一定得用MIDAS技术,否则就意味着客户端需要安装BDE。而连接方式只能用Socket或者HTTP两种方式。此外,Windows没有预装Borland的那些bpl,意味着下载一个ActiveX是相当恐怖的。另外,给ActiveX做数字签名也是一件头痛的事情。
还有MIDAS在Web上的表现时好时坏,不是每台机器都能OK的。
3)ASO是对ASP的补充,不过新的ASP.NET,已经非常强大了,再也不需要ASO这样的东西来补充了。同时ASO也有非常难于调试这个问题。
Delphi.NET应该是.net家族的新语种,Object Pascal。应该说,借助了.net framework的强大动力,Delphi.NET在Web上的开发和C#就不分伯仲了。但是Object Pascal自身必须做大的改良,否则难于适应新的环境。比如说Attribute。从Delphi.net Preview看,Object Pascal是有这方面的改革的。
在.net上,我觉得C#是完全针对.net设计得,所以最纯。VB,VC++就不能实现C#得某些特性。不知道Object Pascal是否存在缺陷。此外,有Anders在,C#得编译速度不会比Delphi差。