DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: wjy13061029975
今日帖子: 2
在线用户: 3
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2018/1/23 10:48:46
标题:
拜求各位大神关于Datasnap开发的建议 浏览:2630
加入我的收藏
楼主: 各位大神,
本人想做一个独立整合的Datasnap中间层,主要实现以下功能:
1、客户端传递SQL查询语句到中间层,中间层连接数据库返回记录集到客户端
2、客户端传递更新的SQL语句集合,中间层接收并执行
3、客户端传递Json对象,中间层根据指令返回Json对象
4、客户端与中间层之间传递Stream
5、客户端之间通过通道直接连接相互传递字符串和流
6、微信小程序可以通过http方式与后台互通

本人开发经验不足,在网上查到的例子看的眼花缭乱不知所云,
请各位大神提一些建议、或者给一些例子。
多谢多谢。
----------------------------------------------
-
作者:
男 delphixe8 (delphixe8) ▲▲▲▲△ -
普通会员
2018/1/23 11:17:45
1楼: 推荐购买樵夫快驴中间件,或全能中间件就可解决你的问题,都是稳定经过严格测试的产品,并且价格都不算太离谱的产品。
有现成的好产品可以用,省得你在去专门研究中间层软件开发了,自己开发浪费时间,并且还不稳定。
----------------------------------------------
-
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2018/1/23 12:57:44
2楼: 就没有不要钱的又稳定的开源产品吗?
----------------------------------------------
-
作者:
男 vga (vga) ★☆☆☆☆ -
盒子活跃会员
2018/1/23 13:03:01
3楼: 1. mOrmot
2. DIOCP
----------------------------------------------
-
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2018/1/23 13:30:13
4楼: DIOCP的有没有详细的入门介绍啊?
----------------------------------------------
-
作者:
男 delphixe8 (delphixe8) ▲▲▲▲△ -
普通会员
2018/1/23 13:55:05
5楼: 花钱购买产品,就会有相关产品的详细技术资料。可以快速上手,省事省力,还会有技术支持等服务。
----------------------------------------------
-
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2018/1/23 16:06:33
6楼: 主要是想创造一个自己可以完全控制的中间层,购买的限制太多了。哪位有详细的DIOCP的资料可以分享下,这个是中国人自己搞的,应该很不错。
----------------------------------------------
-
作者:
男 delphixe8 (delphixe8) ▲▲▲▲△ -
普通会员
2018/1/23 17:07:31
7楼: 全能中间件无限制,提供全部源码。3000+,适合你。
请参考:http://bbs.2ccc.com/topic.asp?topicid=540314
----------------------------------------------
-
作者:
男 inbreak (入侵) ★☆☆☆☆ -
盒子活跃会员
2018/1/23 23:38:07
8楼: 这个价格,对于你来说非常值得购买。
我个人认为还是挺厚道的。
----------------------------------------------
我是菜鸟,己经搞了十多年了,但是我仍然很菜。
作者:
男 hnxxcxg (咏南中间件) ★☆☆☆☆ -
盒子活跃会员
2018/1/24 7:28:45
9楼: http://www.cnblogs.com/hnxxcxg/p/7715904.html
----------------------------------------------
中间件QQ群: 92449782 博客: http://www.cnblogs.com/hnxxcxg/
作者:
男 c5soft (大道至简) ▲▲▲▲▲ -
普通会员
2018/1/24 8:15:07
10楼: 如果英文好,读Delphi本身的DataSnap开发指南吧,10.2.2的说明书非常全面,什么都有了,想咋干就咋干。
----------------------------------------------
-
作者:
男 c5soft (大道至简) ▲▲▲▲▲ -
普通会员
2018/1/24 8:26:13
11楼: 客户端与中间层不建议传递SQL查询语句,通俗一点应该用JSON或XML,高端一点应该用protobuf或Thrift之类,中间层与后台数据库之间才是SQL查询语句。微信小程序也是用JSON或XML与中间层通讯。
----------------------------------------------
-
作者:
男 ksrsoft (cb168) ★☆☆☆☆ -
普通会员
2018/1/25 8:23:53
12楼: JSON
----------------------------------------------
-
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2018/1/26 0:23:34
13楼: c5soft说的有理,Datasnap开发指南,网上有的下载吗?
----------------------------------------------
-
作者:
男 edwinyeah (Edwin) ★☆☆☆☆ -
盒子活跃会员
2018/1/26 15:05:05
14楼: 强烈推荐mORMOt,功能极其强大,举几个例子:
- 服务器和客户端之间通过HTTP协议传输数据,格式是JSON为主打.
- 你在服务器端定义一个delphi接口,列如:
type
  ICalculator = interface(IInvokable)
    ['{9A60C8ED-CEB2-4E09-87D4-4A16F496E5FE}']
    /// add two signed 32-bit integers
    function Add(n1,n2: integer): integer;
  end;
那么你在客户端可以直接调用这个接口,具体看它所提供的范例。
- 提供了加密、压缩、授权等等必须基础。
- 多数据库支持,不过如果数据总量在一千几百万以内的,用sqlite真的性能卓越!
- 如果你用lazarus,它还支持linux。
- 如果你的服务器端放在IIS、Nginx或者apace后面允许,还可以用httpS协议。
- 支持从Delphi 7到最新版的Delphi。
- 支持Lazarus/FPC开发。
- 支持Windows和Linux.
- 功能及其强大,就是中文资料不多,但是它的范例非常丰富,见:
https://github.com/synopse/mORMot/tree/master/SQLite3/Samples

最后,mORMOT百分百开源,MIT授权协议,已经持续更新七八年了,最近那个西班牙作者到了一间以linux技术为主的公司,可以预见它对linux服务器端的支持前景美好。
----------------------------------------------
-
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2018/1/26 16:30:46
15楼: 多谢 edwinyeah (Edwin)
----------------------------------------------
-
作者:
男 edwinyeah (Edwin) ★☆☆☆☆ -
盒子活跃会员
2018/1/26 17:08:39
16楼: 补充一个,还有缓存支持,服务器端有缓存支持,客户端也有缓存支持。
----------------------------------------------
-
作者:
男 ksrsoft (cb168) ★☆☆☆☆ -
普通会员
2018/1/27 12:07:00
17楼: mORMOt
----------------------------------------------
-
作者:
男 zhuoyu (拙于) ▲▲▲▲△ -
普通会员
2018/1/28 16:07:42
18楼: 市场上的中间件,都存在后期技术支持问题,因为都是个人开发的,你问问题时,凭当时个人喜好,心情不错就给您个所谓的方向,讲个大概念,让你自己去弄,心情不好时,啥支持也没有,根本就谈不上支持、服务等。
所以还是劝有经验的人去买,遇到问题自己想办法解决,这才是妥善的做法。
----------------------------------------------
-
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2018/1/30 10:50:36
19楼: TO zhuoyu (拙于) ksrsoft (cb168)
说的很对啊,只是这个mORMOt,研究半天也没搞明白跟中间层有啥关系,似乎就是连个数据库。难道要结合Datasnap一起吗?
那个QDAC+QICOP似乎不错,看说明QDAC里面的QDB和QSocket还没有开发完成,用了下QJson,感觉很适合中国人的口味,速度咱不太关心,只是没搞明白,Delphi自带的里面有个可以将流数据序列化成TJsonArray然后包在Json中,QJson能这样做吗?
都是很好的东西,可惜例子太少,难道学Delphi的人真的越来越少了吗?
----------------------------------------------
-
作者:
男 abcjingtong (jingtong) ★☆☆☆☆ -
普通会员
2018/1/30 11:26:59
20楼: DIOCP群 638127021,我已经用DIOCP做了一个项目了,很稳定
----------------------------------------------
18114532@qq.com
作者:
男 abcjingtong (jingtong) ★☆☆☆☆ -
普通会员
2018/1/30 11:31:20
21楼: 自还了很多demo,看了基本上就能上手了,包括聊天消息、上传下载(带进度),其实归根结底是协议设计好了就行,DIOCP只是负责数据的传输,另外如果做业务系统我不建议把sql语句放到客户端提交到服务端执行,维护起来麻烦,我们把业务语句放到数据库中了,客户端只要调用对应的业务编号常量,传对应的参数就可以了,另外服务端千万不要写业务,而是写抽象的提供数据服务(最基本的就是执行sql),因为服务端要的是稳定高效和容错能力,写太多业务只会让这些变的困难。
----------------------------------------------
18114532@qq.com
作者:
男 luwakin (luwakin) ★☆☆☆☆ -
普通会员
2018/1/30 11:39:34
22楼: 1.若是业务系统,1000左右的客户数,datasnap完全没问题,不用找其他框架了

2.若是实时通讯类、高并发类的,建议diocp
----------------------------------------------
-
作者:
男 ccxpts (渔夫) ★☆☆☆☆ -
普通会员
2018/1/30 13:33:02
23楼: 咏南中间件很适合你
----------------------------------------------
-
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2018/2/1 0:46:46
24楼: 看了大家的意见,受益匪浅。
如果只用diocp,不用datasnap,如果要执行sql,将sql文本转成json传到后台执行,如果要返回记录集,就把记录集转换成流通过diocp传到前台,再把流转为数据集,这样能不能搞?如果这样搞,效率会不会大打折扣?
如果diocp行,我准备前台跟后台只传递流,后台负责解析前台传来的指令连接数据库执行处理,请高手支招。
还有那个qdac到底有什么用?里面的qdb开发好了么?qdac是不是类似于firedac这种只是连接数据库操作数据的,这个跟datasnap有什么可比性?如果要把dicop和qdac整合使用,大概是个怎么样的做法?
拜求各位大侠提出一些见解,我现在基本有点感觉了。
----------------------------------------------
-
作者:
男 he_19_79 (he) ▲▲▲▲▲ -
普通会员
2018/2/2 0:55:50
25楼: 看到现在,还不知楼主的目的是做商业开发(或公司用)还是个人玩玩的,感觉不好,不想多说。其实,不明白大家做多层程序为什么要传SQL语句?这种方式我10几年前都没用了。数据库TABLE在中间层做OR,客户端调用类处理这些就可以了,多简单。我的ERP程序客户端没有任何SQL语句,一样的稳定高效。
----------------------------------------------
-
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2018/2/2 14:03:34
26楼: to:he_19_79
当然是商用开发的,之前开发的都是用ADO直连,想用三层,Datasnap搞的不理想,想做一个稳定的中间层,自己能力技术有限,想问问如何入手比较合适,已经走了不少弯路,想听听大家的意见,仅此而已啦。
----------------------------------------------
-
作者:
男 devil10086 (testabc) ▲▲▲▲△ -
普通会员
2018/3/7 20:01:59
27楼: DIOCP支持FDAC吗
----------------------------------------------
-
作者:
男 abcjingtong (jingtong) ★☆☆☆☆ -
普通会员
2018/3/8 9:14:53
28楼: diocp是负责通讯的,FDAC是负责和数据库交互的,菜刀支持盛菜吗?
----------------------------------------------
18114532@qq.com
作者:
男 looper (keyo) ★☆☆☆☆ -
盒子活跃会员
2018/3/8 10:17:25
29楼: @kcm (kcm): 就diocp就很好了,作者很勤劳的,而且有一大群热心网友在帮忙测试,解答问题等等。

说说个人看法:
1、你要把原来C/S搞成三层,首先那个什么传sql去中间层执行这种思路就不要有了,你就是客户端传个指令,带些必要的参数到中间层,然后中间层去跟数据库打交道。
2、要弄个数据库连接池,你的中间层需要用到。
3、如果你的项目是商用的,时间又赶的话,而且不太缺钱,建议你跟弦子联系,看看他肯不肯帮你做有偿服务(貌似不贵),这样可以省掉你大量的时间。他帮你把整个中间层框架搭好,你只要集中精力移植你原来的业务就好了。
----------------------------------------------
虽千万人吾往矣!
作者:
男 kcm (kcm) ★☆☆☆☆ -
普通会员
2018/3/17 11:39:43
30楼: to: looper (keyo)
说的很对啊,diocp确实很不错啊,QDAC里面我只用到了一个QJson,QDB好像有些问题换成FireDAC了。弦子确实是个好人啊,好多年前就受过他的点拨。
----------------------------------------------
-
作者:
男 sunkissfei (Bill) ★☆☆☆☆ -
普通会员
2018/3/17 13:43:54
31楼: 建议用全能,你可以向全能要个试用版,自已试试,有全源码
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行66.40625毫秒 RSS