论DELPH跨平台中间件的策略
1)起先DELPHI只支持WINDOWS,此时DELPHI三层开发的眼里只有WINDOWS COM。
基于WINDOWS COM的OleVariant组合拳=TDataSetProvider+TClientDataSet。
这时三层开发的天空很纯的蓝色。
2)从DELPHI10.2开始,DELPHI DATASNAP支持开发LINUX控制台应用服务器(后面通称为中间件)。
此时,用DELPHI开发跨操作系统的中间件便提上了很多人的议事日程。
3)跨操作系统的中间件,OleVariant组合拳=TDataSetProvider+TClientDataSet,仍然能用,但不再建议。
LINUX要支持OleVariant序列,需要做一些配置。
Linux ClientDataSet libmidas.so.2
DELPHI LINUX程序使用CLIENTDATASET控件,部署的时候需要libmidas.so,相当于WINDOWS程序的MIDAS.DLL。
DELPHI 10.2 TOKYO发布却漏掉了这个。现在终于可以提供下载了。
官方下载地址:
http://cc.embarcadero.com/item/30765
官方推荐用FDMEMTABLE替代CLIENTDATASET,老程序才使用CLIENTDATASET。
在DELPHI 10.2.1下面测试发现libmidas.so.2又不行了,LINUX中间件会莫名闪退,让人莫名的感觉。
4)这时,大家可能都想到DELPHI XE5开始支持的FIREDAC新的数据序列了。
然而,FIREDAC的Data.FireDACJSONReflect单元不支持跨平台 Data.FireDACJSONReflect里面:IFDJSONDeltasApplyUpdates,TFDJSONDeltas,TFDJSONDataSets 这些对象在跨平台统统都不能用,原来它们只支持WINDOWS操作系统。
那怎么办?
答案:跨平台中间件最好的数据序列是TBytes。