如果您使用基于RESTful 的 ORM,您可以让例如 AJAX 和客户端 Delphi 应用程序调用同一个 Delphi 服务器,使用 JSON 作为传输格式,使用 HTTP/1.1 作为远程连接层,Delphi 和 Javascript 对象来访问数据。
例如,如果您在浏览器中输入http://localhost:8080/root/SampleRecord,您将收到如下信息:
[{"ID":1},{"ID":2},{"ID":3},{"ID":4}]
如果你要求http://localhost:8080/root/SampleRecord/1你会得到:
{"ID":1,"Time":"2010-02-08T11:07:09","Name":"AB","Question":"To be or not to be"}
如果您对 JavaScript 有所了解,任何 AJAX 应用程序都可以使用它。
同样的 HTTP/1.1 RESTful 请求(GET/POST/PUT/DELETE/LOCK/UNLOCK...)已经在任何客户端 HTTP/1.1 应用程序中可用。该框架使用非常快的内核模式http.sys
(比 Windows 上的任何其他 HTTP 服务器更快)和客户端的快速 HTTP API 来实现服务器。您甚至可以使用 HTTPS 来处理安全连接。
恕我直言,使用这样的 ORM 比仅使用数据库连接更好,因为:
- 它将更严格地遵循 n-Tier 原则:业务规则在 Delphi 服务器中编写一次,您只使用业务对象的服务和 RESTful 操作;
- 它将使用 HTTP/1.1 进行连接,比任何直接数据库连接更快、更标准的 Internet 连接,并且可以通过 HTTPS 得到强大的保护;
- JSON 和 RESTful over HTTP 是 AJAX 应用程序的事实标准(甚至微软也将其用于 WCF);
- 数据将使用 JSON 传输,这是一种非常适合多前端的格式;
- 无状态的方法使它非常强大,即使在非连接模式下;
- 使用数据库的本地小型复制(为此我们鼓励使用 SQLite)允许您在未连接模式下进行客户端访问(对于 Delphi 客户端或 HTML 5 客户端)。