15
votes

I read this question but was somehow not satisfied with the answers.

I also quickly read (as suggested in that question) the last chapter of Marco Cantù 2010 Handbook, from which I quote the following (I think I can quote such a short text):

I [Marco Cantù] do have a lot of investment in server side web and REST applications written in Delphi, and in the recent years I've started playing with and introducing at conferences a Delphi Web Application REST Framework119 (that is, DWARF), which at this time is still not publicly available... simply because it is too sketchy and unfinished to be published. I've seen other ongoing efforts to clone Rails in Delphi and offer other REST server architectures. I think that if you want to build a very large REST application architecture you should roll out your own technology or use one of these prototypical architectures.

Considering that I own Delphi XE Professional and DataSnap is not in there and I would like to consider to write large applications too according to the above comments it seems DataSnap is not an option.

Is there even a commercial solution for this? I don't want to consider "my own implementation of REST", I would like to create a webserver that uses some of my datamodules where I use the DAC I choose (Devart in this case).

Final note: my goal is to write the backend for a large web application, on the client I would like to use Ext JS 4.0, but I want to do all the client work in javascript, to take full advantage of EXT JS, so basically I need a webserver just for the data and tracking the state, not for serving webpages.

4

4 Answers

14
votes

To create your REST services, try our Open Source mORMot project. Now it is a well known and stabilized project, used world wide in production.

You can use any DAC with the current state of the framework by implementing a custom TSQLRestServerStatic class (similar to the TSQLRestServerStaticInMemory class, but calling your DAC): so you'll benefit for the ORM and the JSON RESTful architecture, together with the high-speed http.sys kernel-mode server.

The SQLite3 engine is NOT mandatory with our framework, even if it was designed to work better with it.

10
votes

If you will start an application from scratch, I think the mORMot is a good option if Delphi is your only option. If you choose datasnap you'll have to live with the problems of performance and stability.

I wrote an article on my blog talking about performance and stability with DataSnap (and mORMot) in large applications, you can see it on the following link:

DataSnap analysis based on Speed & Stability tests

2
votes

I think you should have a look at kbmMW, there is a way to implement a basic REST server based on an event driven HTTP server.

Check news.components4developers.com news groups, there you will have a lot of documentation.

1
votes

FireHttp is a high-performance Web server based on Delphi/Object Pascal language. It supports HTTP 1.1, HTTPS (SSL/TLS), WebSocket, GZip, Deflate, IOCP, EPOLL. It adopts multi-process+multi-threading model, has good stability and concurrency performance, and provides SDK source code. Developers can use SDK to quickly build high-performance cross-platform Web applications.