16

在问了这个问题之后,我意识到要构建我需要的东西,我最好依赖一些“准备好 REST 和 JSON”的框架。

由于我拥有 Delphi Professional,因此我应该升级到 Enterprise 以拥有 DataSnap。

现在升级成本与 DataAbstract 成本在同一范围内。更新:此外,在未来升级到较新版本的 Delphi Professional + 较新版本的 DA 将比购买笨重的 Enterprise 升级(如从 XE 到 XE2)成本更低。

因为这里RemObjects 人们说“与专业人士一起工作”我也会考虑这个框架。此外,仅从 XE 版本开始,DataSnap 似乎相当不错(我读过这个,我没有尝试过),而 RemObjects 的过去则更为可靠。

所以谁知道所有的产品可以在这些功能上进行比较:

  • REST 服务器(用于提供 JSON)
  • 使用方便

您会推荐哪种产品?

赏金注意事项: 由于我不喜欢这个没有回答我开始赏金。我希望原始问题得到回答,有人使用 Datasnap 或 RemObjects 吗?

4

4 回答 4

10

我将被迫将我们的 Synopse SQLite3 框架(稍后更新:重命名MORMOT添加到列表中......

自从您发布您的问题以来,一些要点已得到增强(例如安全性或使用的 http 服务器)。

以下是上面列出的两者之间的一些区别:

更新:框架现在可以使用任何其他数据库引擎,而不仅仅是SQlite3

于 2011-06-01T15:50:22.210 回答
7

我是 RO/DA 的快乐用户。我做了一个关于 RO 的演示文稿(西班牙语),所以我将指出一些重要的东西,使 Ro 成为最好的远程处理库,在任何语言/框架中,恕我直言:

  1. 多功能:您可以在 .NET、Mono、Delphi、FreePascal 中创建服务器。您可以在 Obj-C(iOS 也是)、javascript、任何支持 REST 的语言、任何支持 SOAP 的语言中创建所有先前 + 的客户端

我现在有 2 台服务器(一台 delphi,一台 net/mono),客户端在 delphi、iOS、python 中。这是一个很大的优势。

支持 DB 的多数据库驱动程序,如 odbc、ado、anydac、devart、.net 等。真的很多

支持多协议:SOAP、REST、XML-RPC、oData 和二进制。无需在快速、小型但专有和开放但缓慢的文本协议之间进行选择。可以使用多种协议为同一服务器提供服务,无需更改代码。说真的,这个摇滚。

支持多通道:so http of curse,还有 SuperHTTP(双向)、TCP/IP、UDP、名称管道、内存、windows 消息、IIS SYS 等(如果在.net 上或在 delphi 中,通道会有所不同)

您可以一次在多个渠道中发布服务器。因此,您可以同时拥有 HTTP + UDP。

2- 数据摘要:

就像一种 ORM,但对于 N-Tier。DA 是数据库的“虚拟”表示,物理数据库(或数据库,您可以连接到多个数据库)可能非常不同。

假设您有一个来自以前开发人员的糟糕的数据库模式。客户表称为“CUST”,名称字段称为“1”(这就是在开源 POS 中的命名方式,说真的)。但是您可以拥有带有“名称”字段的虚拟表“客户”。

因此,您可以“从客户中选择名称”,DA 将执行“从客户中选择 1”。这称为“DA SQL”。非常整洁。专门用于迁移生产数据库中的糟糕模式。

这些表更像视图,但可更新。

DA 为您生成强类型的 LINQ 类(或 Delphi 类),因此您拥有 ORM 的良好 OO 支持,但不依赖于 2 层。

您可以查询 2 个数据库并将数据连接到单个虚拟表中,然后回发更新。

您可以使用 JS 进行嵌入逻辑验证并将其流式传输到客户端。

3-快速

在 BIN 格式的支持下,一切都变得更快。包括压缩 + 加密(如果不能使用 SSL)。

异步调用 + 同步调用。您可以选择每种方法使用什么。

4-其他整洁的东西

支持通过 Bonjour 支持发布和自动发现服务器。负载平衡+故障转移易于添加。发布到 oData。发布html+js页面。http://connect.remobjects.com/中的良好支持。

唯一不好的是文档有点难以理解(恕我直言)(但很棒的视频)。主要是基本的东西是乍一看很难的(不是因为代码难以理解,是因为 lib 很大)。

源代码包括在内。演示很好。

但总的来说,lib很棒。太好了,对于最近的一个项目,我使用 C#.NET(尽管我讨厌这种语言)而不是使用 python(我最喜欢的,在 delphi 之后)只是为了使用这个库。那么好 ;)

于 2011-12-26T18:24:05.120 回答
7

我只能说你应该下载试用版并尝试一下,看看哪个适合你。我们无法做出心理预测。

(免责声明:当我在 2011 年写下一部分时,我是 Embarcadero 的一名员工)。

支持 DataSnap 框架的要点:

  • 带有delphi(有些人喜欢多合一的解决方案)
  • 正在不断扩展,并在 XE2 中具有重要的新功能

支持 RemObjects DataAbstract 的观点

  • 正如您所说,适用于 Pro 等低端 SKU,而 DataSnap 仅适用于 RAD Enterprise/Architect。
  • Oxygene 有一个 .Net 版本(以前称为 Prism)
  • 如果您喜欢他们的工作流程,包括模式建模器,您可能更喜欢它。

我建议您阅读更多内容并自己弄清楚。

您未指定的可能对您很重要的因素:

  • 需要易于配置 SSL 支持 - RemObjects 和 DataSnap 现在都具有 SSL
  • “真正疯狂地深度 REST”还是“如果它使用 HTTP get/post,它对我来说就足够 REST-ful”?

2013 年 5 月更新

我现在已经广泛使用这两种产品,并且我不再在 Embarcadero 工作。我认为这两个产品都很棒,但是因为我刚刚完成了一个大型项目,我选择了 RemObjects,因为 iPhone 和 Mac 客户端(RemObjects DataAbstract for XCode)是一个成熟的 Mac/XCode/objective-C 产品,并且因为RemObject 的主要开发人员了解 Mac,了解 Objective-C,并且可以支持 XCode 用户,这是我最近三个月一直在做的事情。

如果您不考虑移动和多平台,而只考虑 Windows,那么我仍然可以想到 Data Abstract 击败 Data-Snap 的几种方法,但 DataSnap 保持明显优势的地方是那些想要解决方案的人全部来自一家公司。对于某些企业开发决策,我可以很容易地看出坚持使用 DataSnap 和 Delphi 企业版是多么明智的选择。就像我之前说的,有些人会发现一个更符合他们的要求,或者另一个更符合他们的要求,任何说两者中的一个更好而另一个更差的人,都是错误的. 话虽如此,我会被指责在上面说“数据摘要更好”,但我显然没有这么说。不过,对于我刚刚完成的项目,它是完美的。

于 2011-08-04T13:14:21.793 回答
1

你也可以看看delphionrails

对该项目的评论

于 2011-08-05T16:10:52.630 回答