我是RO/DA的快乐用户。我做了一个关于RO的演示(
西班牙语),所以我会指出一些重要的东西,使Ro成为最好的远程库,在任何语言/框架中,这是我的个人意见:
- 多语言支持:您可以在.NET、Mono、Delphi和FreePascal中创建服务器。您可以在前面所有语言和Obj-C(iOS也是如此)、javascript、任何支持REST和SOAP的语言中创建客户端。
我现在有两个服务器(一个delphi,一个net/mono),客户端分别是delphi、iOS、python。这是一个很大的优势。
支持多种数据库驱动程序,如odbc、ado、anydac、devart、.net等,真正多种多样
支持多协议:SOAP、REST、XML-RPC、oData和二进制。不需要在快速、小但专有和开放但慢的文本协议之间进行选择。可以使用多个协议服务相同的服务器,无需更改代码。说真的,这太棒了。
支持多通道:因此,当然有http,但还有SuperHTTP(双向)、TCP/IP、UDP、Name pipes、内存、Windows消息,IIS SYS等(通道因是在.net还是在delphi上而有所不同)
您可以同时在多个通道上发布服务器。因此,您可以同时拥有HTTP + UDP。
2-数据抽象:
就像一种ORM,但用于N-Tier。DA是数据库的“虚拟”表示形式,物理数据库(或多个数据库,您可以连接到多个数据库)可能非常不同。
假设您有一个来自先前开发人员的糟糕的DB模式。客户表称为“CUST”,名称字段称为“1”(在开源POS中是这样命名的,严肃地说)。但是您可以使用虚拟表“Customer”和字段“Name”。
因此,您可以使用“SELECT Name FROM Customer”,DA将执行“SELECT 1 FROM CUST”。这称为“DA SQL”。非常整洁。特别是针对生产数据库中存在的糟糕模式的迁移。
表更像视图,但可更新。
DA会为您生成强类型的LINQ类(或Delphi类),因此您可以获得ORM的良好OO支持,但不受2层限制。
您可以查询2个数据库并将数据连接到单个虚拟表中,并将更新发送回。
您可以使用JS进行嵌入式逻辑验证并将其流式传输到客户端。
3-快速
使用BIN格式的支持,一切都更快。包括压缩+加密(如果无法使用SSL)。
异步调用+同步调用。您可以根据需要选择每种方法。
4-其他整洁的东西
支持使用Bonjour自动发布和发现服务器。易于添加负载平衡和故障转移。发布到oData。发布html+js页面。在http://connect.remobjects.com/中提供良好的支持。
唯一不好的是文档有点难以理解(仅我个人观点)(但有优秀视频)。主要是基础知识看起来比较困难(不是因为代码难以理解,而是库很大)。
源代码已包含。演示很好。
但总的来说,这个库非常棒。非常棒,以至于最近的一个项目中,我使用C#.NET(尽管我讨厌这种语言),而不是使用Python(我的最爱之一,紧随Delphi之后),只是为了使用这个库。那么好;)