Datasnap xe vs Remobjects DataAbstract
Asked Answered
N

4

16

After asking this question I realized that to build what I need I'd better rely on some framework "REST and JSON ready".

Since I own Delphi Professional I should upgrade to Enterprise to have DataSnap.

Now the upgrade cost is in the same range as the DataAbstract cost. Update: moreover in future upgrade to newer versions of Delphi Professional + newer versions of DA will cost less than buying the bulky Enterprise upgrade (like from XE to XE2).

Since here RemObjects people say "Works with professional" I would consider also this framework. Moreover DataSnap seems to be quite good (i read this, I didn't try) only from the XE version, while RemObjects has a more solid past.

So who knows all the products can compare them expecially on these features:

  • REST server (for serving JSON)
  • ease of use

Which product would you suggest?

NOTE FOR BOUNTY: Since I don't like this is not answered I start a bounty. I hope the original question acn be answered, anyone using Datasnap or RemObjects?

Norrisnorrv answered 1/6, 2011 at 12:51 Comment(1)
Take a look at Delphi Relax. This is an extension to Delphi's WebBroker and DataSnap REST Application architecture, which may fit your needs, and rely on DataSnap. Yet a prototype, but Marco is working hard on it.Carmencarmena
C
7

I can only say that you should download the trials and try them and see which works for you. We can't make psychic predictions.

(Disclaimer: I was an employee at Embarcadero when I wrote the next part, in 2011).

Points in favor of the DataSnap framework:

  • Comes with delphi (some people like to have an all in one solution)
  • Is being continuously expanded, and has significant new functionality in XE2

Points in favor of the RemObjects DataAbstract

  • As you said, works with low end SKUs like Pro, whereas DataSnap only comes in RAD Enterprise/Architect.
  • Theres a .Net edition for Oxygene (formerly known as Prism)
  • If you like their workflow including the schema modeler, you may prefer it.

I suggest you read more and figure it out for yourself.

Factors that might matter to you that you haven't specified:

  • Need for easy to configure SSL support - RemObjects and DataSnap now both have SSL
  • "Truly Madly Deeply REST" or "if it uses HTTP get/post, it's REST-ful enough for me"?

Update from May 2013

I have now used both products extensively, and I no longer work at Embarcadero. I think both products are great, but as I have just finished building a large project where I chose RemObjects, because the iPhone and Mac client (RemObjects DataAbstract for XCode) is a full-fledged Mac/XCode/objective-C product, and because RemObject's key developers know the Mac, know Objective-C, and can support XCode users, which for the last three months has been what I have been doing.

If you are not thinking about mobile and multi-platform, and only about Windows, then I can still think of a few ways where Data Abstract beats Data-Snap, but where DataSnap maintains a clear advantage is for those people who would want a solution all from one company. For certain Enterprise development decisions, I can easily see how the sensible choice might be to stick with DataSnap, and Delphi Enterprise edition. Like I said before, there are going to be some people who are going to find that one fits their requirements better, or the other, and anyone who says one of the two is better and the other is worse, is going about it all wrong. having said that, I will be accused of having said that "Data Abstract is better" above, but I clearly have not said that. For the project I just finished, it was perfect, though.

Chauffer answered 4/8, 2011 at 13:14 Comment(3)
I couldn't agree more! I would call either solution "one size fits all". You should play with both and determine which would best serve your purpose.Methaemoglobin
Ok I choose this as an answer. It is not very complete but at least it answers the question.Norrisnorrv
Maybe should make this a community-wiki then. People can add more to it later. IN fact, any one with knowledge, go ahead and EDIT this answer to add more detail.Chauffer
C
10

I'll be forced to add our Synopse SQLite3 Framework (later update: Renamed MORMOT) to the list...

Since you posted your questions, some points have been enhanced (like security or http server used).

Here are some differencies among the two listed above:

Update: Framework is now able to use any other database engine, not only SQlite3.

Carmencarmena answered 1/6, 2011 at 15:50 Comment(10)
To Mister DownVoter: my post was not spam, but an answer to an open question, since the OP last research about REST frameworks was in December, last year, and such things evolved fast...Carmencarmena
I see the framework does what I need, but i have a lot of code and a lot of datamodules, I would like to use those. As far as i can see you use ORM approach so I cannot use your framework if not for a new project.Norrisnorrv
+1 A.Bouchez's open source projects are excellent stuff. Open source is automatically NOT SPAM.Chauffer
@user193655 You can use only the SOA aspect of our framework: it does not depend on the ORM (but you can define services at objects level, if you wish). The ORM is just one part of it. You can use the RESTful part of the framework without using ORM nor SQLite3: you just need SynCommons and SQLite3Commons units. And if you want, you may switch to ORM later. Note that our RESTful implementation handles per-request authentication and signature, whereas DataSnap does not. Will work from Delphi 6 up to XE.Carmencarmena
@user193655 I just added the ability to use any database, instead of only SQLite3. You may use a similar feature to reuse your existing code source and datamodules, adding an ORM architecture to your existing projection, together with a SOA approach. Take a look at the documentation (see link), especially the SOA, ORM, RESTful and external DB chapters.Carmencarmena
@Arnaud; I think you need to rename your ORM framework then. Is your chosen name now 'Mormot'?Chauffer
@WarrenP You are right: the framework is now called "mORMot". See mormot.net - it is not tied to SQLite3 only any more, and has specific direct fast access to any external DB, interface-based services (alla WCF), all this working even with the Delphi "Starter edition". :)Carmencarmena
I have taken the liberty of editing your response so that the information is now using your new nomenclature.Chauffer
Incidentally, when are you going to write your own operating system, now that you have your own ORM, your own project management program that is also a version control system, and so on. Kudos, man. Do you ever find time to sleep!? :-)Chauffer
Latest update: mORmot features interface-based services, integrated interface stubs/mocks and was just found out in an independent benchmark to be the fastest tested platform, faster than DataSnap. Sounds also faster than RO SDK/DataAbstract - but RO is multi-platform.Carmencarmena
C
7

I can only say that you should download the trials and try them and see which works for you. We can't make psychic predictions.

(Disclaimer: I was an employee at Embarcadero when I wrote the next part, in 2011).

Points in favor of the DataSnap framework:

  • Comes with delphi (some people like to have an all in one solution)
  • Is being continuously expanded, and has significant new functionality in XE2

Points in favor of the RemObjects DataAbstract

  • As you said, works with low end SKUs like Pro, whereas DataSnap only comes in RAD Enterprise/Architect.
  • Theres a .Net edition for Oxygene (formerly known as Prism)
  • If you like their workflow including the schema modeler, you may prefer it.

I suggest you read more and figure it out for yourself.

Factors that might matter to you that you haven't specified:

  • Need for easy to configure SSL support - RemObjects and DataSnap now both have SSL
  • "Truly Madly Deeply REST" or "if it uses HTTP get/post, it's REST-ful enough for me"?

Update from May 2013

I have now used both products extensively, and I no longer work at Embarcadero. I think both products are great, but as I have just finished building a large project where I chose RemObjects, because the iPhone and Mac client (RemObjects DataAbstract for XCode) is a full-fledged Mac/XCode/objective-C product, and because RemObject's key developers know the Mac, know Objective-C, and can support XCode users, which for the last three months has been what I have been doing.

If you are not thinking about mobile and multi-platform, and only about Windows, then I can still think of a few ways where Data Abstract beats Data-Snap, but where DataSnap maintains a clear advantage is for those people who would want a solution all from one company. For certain Enterprise development decisions, I can easily see how the sensible choice might be to stick with DataSnap, and Delphi Enterprise edition. Like I said before, there are going to be some people who are going to find that one fits their requirements better, or the other, and anyone who says one of the two is better and the other is worse, is going about it all wrong. having said that, I will be accused of having said that "Data Abstract is better" above, but I clearly have not said that. For the project I just finished, it was perfect, though.

Chauffer answered 4/8, 2011 at 13:14 Comment(3)
I couldn't agree more! I would call either solution "one size fits all". You should play with both and determine which would best serve your purpose.Methaemoglobin
Ok I choose this as an answer. It is not very complete but at least it answers the question.Norrisnorrv
Maybe should make this a community-wiki then. People can add more to it later. IN fact, any one with knowledge, go ahead and EDIT this answer to add more detail.Chauffer
S
7

I'm a happy user of RO/DA. I made a presentation (in spanish) about RO, so I will point some important stuff that make Ro the best remoting library, in any language/framework, IMHO:

  1. Multi-EVERYTHING: You can create servers in .NET, Mono, Delphi, FreePascal. You can make clientes in the all previous + in Obj-C (iOS too), javascript, any REST-capable, any SOAP-capable language

I have now, 2 servers (one delphi, one net/mono) with clients in delphi, iOS, python. This is a big plus.

Support multi-database drivers for DB, like odbc, ado, anydac, devart, .net ones, etc. Truly a lot

Support multi-protocol: SOAP, REST, XML-RPC, oData, and binary. Not need to choose between fast, small but proprietary and open but slow text protocol. Is possible to serve the SAME server with SEVERAL protocols, not code change necessary. Seriously, this one rocks.

Support multi-channel: So http of curse, but also SuperHTTP (two-way), TCP/IP, UDP, Name pipes, in-memory, windows messages, IIS SYS, etc (channels vary if are on .net or in delphi)

And you can publish the server in several channels, at once. So, you can have HTTP + UDP at the same time.

2- Data abstract:

Is like a kind ORM, but for N-Tier. DA is a "virtual" representation of a database, and the physical database (or databases, you can connect to multiples ones) could be VERY different.

Let say you have a crappy schema of a DB from a previous developer. The customer table is called "CUST" and the name field is called "1" (that is how is named in a open source POS, seriously). But you can have the virtual table "Customer" with field "Name".

So, you can so "SELECT Name FROM Customer" and DA will execute "SELECT 1 FROM CUST". This is called "DA SQL". Is very neat. Specially for migration of crappy schemas that are in a production database.

The tables are more like views, but updateables.

DA generated strongly-typed LINQ classes for you (or Delphi Classes), so you have the nice OO support of a ORM, but not tied to 2-tier.

You can query 2 databases and join data in a single virtual table, and post back the updates.

You can use JS for embed logic validation and stream it to the clients.

3- Fast

With the support of the BIN format, everything is faster. Compression + encryption (if can't use SSL) included.

Async calls + sync call. You can choses per method what to use.

4- Other neat stuff

Support for publishing and auto-discovering of servers with Bonjour support. Load-balancing + Failover easy to add. Publish to oData. Publish html+js pages. Good support in http://connect.remobjects.com/.

The only bad stuff is that the docs are a bit hard to follow (IMHO) (but great videos). Mainly, the basic stuff is what will look hard at first (not because the code is hard to understand, is because the lib is big).

Sourcecode is included. The demos are good.

But in general the lib is great. So great, that for a recent project I'm using C#.NET (despite I hate the language) instead of use python (my favorite, after delphi) just to use this lib. That good ;)

Smear answered 26/12, 2011 at 18:24 Comment(0)
H
1

You can also take a look at delphionrails

A comment on this project

Hegyera answered 5/8, 2011 at 16:10 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.