以前用delphi写逻辑在客户端,用indy写了个简单的http服务器,处理远程的insert/update/delete/begintrans/commit/rollback SQL语句,可是有三个问题:1.程序会被人篡改,例如select name from userlist 被改成 delete from userlist,用户表就报销了。2.远程事务,事务启动后网络中断,则事务开始一直要挂15秒才回滚。3.建模问题,MVC不分的将表示层与逻辑写在一起,开发倒是很快,但基本上谈不上建模,维护必须看源码。
最近打算用Java+Delphi作个自已的RIA,应该能解决上面的两个半问题,草图如下:
http://blog.csdn.net/images/blog_csdn_net/zhangrex/29359/o_ria.jpg
服务端用JAVA,服务端要有个虚拟界面服务器和缓存服务器,估计很难, 就当是学JAVA吧。
实现了程序员与美工彻底的分开,也就是说,程序员可能根本不知道客户端的外观是怎样的。例如,程序中可能这样写:
创建窗口A(取订单号,取客户名称,取客户地址);
客户名称.onclick=事件XXX;
弹出窗口A;
至于这个弹出窗口是在IE中还是在WINDOWS原生窗口中还是在Flash中程序员根本不需要知道。如果将客户实际看到的界面比作招式,哪么程序员编程时可说是“无招”了。与EJB完全无招不同的是,它的无招实际上还是有招的,是由美工来将“虚招”化成实际的招式,当然,没有美工时,虚招也会变成实招,只不过想必不会好看到哪里去。
至于那解决了半个问题是指,因为界面是虚拟的,就有可能将界面建到模型中,之所以说是解决了一半,是因为到底要不要、怎样将界面建模,我没有把握,而且也没有能力开发一个建模工具。
Delphi控件多,作表示层开发很合适,当然主要因为我这个半路出家的人对它比较熟。(题外话:邪派高手往往都用刀而不用剑,C++这枚剑好是好,就是太麻烦了,要是学个半吊子,可能还真不如人家扛扁担的),如果能开发IE上的表示层就好了,但工作量太大,我是搞不出来的,Script/IE/XML/Session搅在一起,让人头晕,我只想要一个自已维护的RIA而已,控件自已做,丰衣足食。
(再题外话:以后的世界有没有银弹我不能肯定,有人工智能这枚原子弹倒是真的,至少我自已是相信的---那是一个并行计算的世界,已经超越了软件、超越了人的思维。巧合的是他也有可能毁灭人类,这真太巧合了)