论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。

论DELPHI跨平台中间件的策略的更多相关文章

  1. Delphi 跨平台 Socket 通讯库

    Delphi 跨平台 Socket 通讯库 免费开源的Delphi 跨平台 Socket 通讯库. 源码URL:https://github.com/winddriver/Delphi-Cross-S ...

  2. delphi跨平台SOCKET--System.Net.Socket

    delphi跨平台SOCKET--System.Net.Socket 不知始于DELPHI哪一个版本,姑且始于柏林版吧. 基于此单元的TSocket类,大家可以很方便地封装出自己的服务端和客户端的SO ...

  3. DELPHI跨平台编译开关

    DELPHI跨平台编译开关 DELPHI 现在是跨平台的开发工具,已经不仅仅针对WINDOWS OS. 跨平台的时候,一些WINDOWS特有的API或语法是不能用的,必须使用跨平台的新语法,要用编译开 ...

  4. Delphi跨平台Socket通讯库

    盒子中的souledge大侠发布了新的Socket库,以下为原文: 我之前写过一个iocp的框架,放到googlecode上了. 由于当时的delphi版本尚无法跨平台,所以该框架只能运行在Windo ...

  5. NGINX实现咏南跨平台中间件集群

    NGINX实现咏南跨平台中间件集群 首先要开启咏南LINUX中间件. 1)编辑usr/local/nginx/conf/nginx.conf #user  nobody;worker_processe ...

  6. 咏南跨平台中间件支持LINUX和WINDOWS插件架构

    咏南跨平台中间件支持LINUX和WINDOWS插件架构

  7. DELPHI跨平台的临界替代者

    在WINDOWS里面使用临界来保护多线程需要访问的共享对象,现在,DELPHI有了新的跨平台临界保护者--System.TMonitor 代码演示如下: FConnections := TObject ...

  8. 咏南跨平台中间件REST API

    主旨 1)为了中间件支持跨操作系统部署,客户端支持跨操作系统.跨设备.跨开发语言,特制订本REST API规约. 2)所有接口均支持HTTP GET\POST调用. 3)调用示例为DELPHI代码,其 ...

  9. DELPHI LINUX中间件隆重发布

    LINUX和WINDOWS是目前最流利的两个服务器操作系统,各种云服务商也是同时提供这2种操作系统的云服务器. 即日起,在原有WINDOWS中间件的产品基础上,再隆重推出新产品:LINUX中间件.这样 ...

随机推荐

  1. eclipse中Maven项目jar问题

    eclipse中Maven项目jar包下载下来了,不然我们import是时候根本导入不进来,网上的方法都试过了,Maven仓库也清空过后重新下载过了,都解决不了. 后来发现虽然jar包是下载下来了,可 ...

  2. 在Visio里加上、下标方法

    添加上标:选中要成为上标的文字,ctrl+shift+“=” 添加下标:选中要成为下标的文字,ctrl+“=”

  3. C#重写ToString

    C# 中的每个类或结构都可隐式继承 <xref:System.Object> 类. 因此,C# 中的每个对象都会获取 <xref:System.Object.ToString%2A& ...

  4. 【LOJ】#2056. 「TJOI / HEOI2016」序列

    题解 这个我们处理出来每一位能变化到的最大值和最小值,包括自身 然后我们发现 \(f[i] = max(f[i],f[j] + 1) (mx[j] <= a[i] && a[j] ...

  5. 【LOJ】#2340. 「WC2018」州区划分

    题解 学习一个全世界人都会只有我不会的东西 子集变换! 难道我要把这题当板子讲?等等这题好像是板...WC出板题好刺激啊= = 假装我们都做过HAOI2015的FMT题,我们都知道一些FMT怎么解决或 ...

  6. 解决Python爬虫使用requests包控制台输出乱码问题

    输出爬取的信息为乱码! 解决办法 爬取下来的编码是ISO-8859-1格式,需要转化为utf-8格式,加一句response.encoding = "utf8"

  7. forkcms 开启调试模式

    You can enable debug mode by adding "SetEnv FORK_DEBUG 1" in your virtualhosts file.

  8. 层级目录结构的Makefile递归编译方法

    层级目录结构的Makefile编写方法. 层级目录结构的Makefile编写方法. 0.前言 1.如何编译整个工程 2.过滤每层不需要编译的目录 3将所有输出文件定向输出. 0.前言 假如现在有这样一 ...

  9. Oceanus:美团HTTP流量定制化路由的实践

    背景简述 Oceanus是美团基础架构部研发的统一HTTP服务治理框架,基于Nginx和ngx_lua扩展,主要提供服务注册与发现.动态负载均衡.可视化管理.定制化路由.安全反扒.session ID ...

  10. Swift2.0语言教程之类的嵌套与可选链接

    Swift2.0语言教程之类的嵌套与可选链接 Swift2.0语言类的嵌套 在一个类中可以嵌套一个或者多个类.它们的嵌套形式也是不同的,大致分为了两种:直接嵌套和多次嵌套.下面依次讲解这两种方式. S ...