Datasnap xe против Remobjects DataAbstract

Задав этот вопрос Я понял, что для создания того, что мне нужно, мне лучше положиться на какой-нибудь фреймворк «REST и JSON ready».

Поскольку у меня есть Delphi Professional, я должен перейти на Enterprise, чтобы иметь DataSnap.

Теперь стоимость обновления находится в том же диапазоне, что и стоимость DataAbstract. Обновление: более того, в будущем обновление до более новых версий Delphi Professional + более новых версий DA будет стоить меньше, чем покупка громоздкого обновления Enterprise (например, с XE до XE2).

Поскольку здесь люди RemObjects говорят: "Работает с профессионалами", я бы также рассмотрел эту структуру. Более того, DataSnap кажется неплохим (это я читал, не пробовал) только с версии XE, а у RemObjects более солидное прошлое.

Итак, кто знает все продукты, может сравнить их, в частности, по этим характеристикам:

  • REST-сервер (для обслуживания JSON)
  • простота использования

Какой продукт вы бы предложили?

ПРИМЕЧАНИЕ ДЛЯ НАГРАДЫ: Поскольку мне не нравится, что на это нет ответа, я запускаю награду. Я надеюсь, что на исходный вопрос будет дан ответ: кто-нибудь использует Datasnap или RemObjects?


person LaBracca    schedule 01.06.2011    source источник
comment
Взгляните на Delphi Relax. Это расширение архитектуры приложений Delphi WebBroker и DataSnap REST, которое может соответствовать вашим потребностям и опираться на DataSnap. Пока это прототип, но Марко усердно работает над ним.   -  person Arnaud Bouchez    schedule 01.06.2011


Ответы (4)


Я могу только сказать, что вы должны загрузить пробные версии и попробовать их и посмотреть, что работает для вас. Мы не можем делать экстрасенсорные предсказания.

(Отказ от ответственности: я был сотрудником Embarcadero, когда писал следующую часть в 2011 году).

Очки в пользу платформы DataSnap:

  • Поставляется с delphi (некоторым людям нравится иметь решение «все в одном»)
  • Постоянно расширяется и имеет значительные новые функции в XE2.

Очки в пользу RemObjects DataAbstract

  • Как вы сказали, работает с младшими SKU, такими как Pro, тогда как DataSnap поставляется только в RAD Enterprise/Architect.
  • Существует версия .Net для Oxygene (ранее известная как Prism)
  • Если вам нравится их рабочий процесс, включая средство моделирования схем, вы можете предпочесть его.

Я предлагаю вам прочитать больше и понять это для себя.

Факторы, которые могут иметь значение для вас, но вы не указали:

  • Необходимость легкой настройки поддержки SSL — RemObjects и DataSnap теперь имеют SSL
  • «Поистине безумно глубоко REST» или «если он использует HTTP get / post, для меня это достаточно полно REST»?

Обновление от мая 2013 г.

Сейчас я широко использую оба продукта и больше не работаю в Embarcadero. Я думаю, что оба продукта великолепны, но поскольку я только что закончил создание большого проекта, я выбрал RemObjects, потому что клиент iPhone и Mac (RemObjects DataAbstract для XCode) является полноценным продуктом Mac/XCode/objective-C, и потому что Ключевые разработчики RemObject знают Mac, знают Objective-C и могут поддерживать пользователей XCode, чем я и занимался последние три месяца.

Если вы не думаете о мобильных устройствах и мультиплатформах, а только о Windows, то я все еще могу придумать несколько способов, в которых Data Abstract превосходит Data-Snap, но где DataSnap сохраняет явное преимущество для тех людей, которым нужно решение. все от одной компании. Я легко понимаю, что для определенных решений по разработке Enterprise разумным выбором может быть использование DataSnap и редакции Delphi Enterprise. Как я уже говорил ранее, найдутся люди, которые обнаружат, что одно из них лучше соответствует их требованиям, а другое — другое, и любой, кто говорит, что одно из двух лучше, а другое хуже, поступает неправильно. . сказав это, меня обвинят в том, что я сказал, что «Data Abstract лучше» выше, но я явно этого не говорил. Однако для проекта, который я только что закончил, он был идеальным.

person Warren P    schedule 04.08.2011
comment
Не могу не согласиться! Я бы назвал любое решение универсальным. Вы должны поиграть с обоими и определить, какой из них лучше всего подходит для вашей цели. - person LaKraven; 08.08.2011
comment
Хорошо, я выбираю это как ответ. Он не очень полный, но, по крайней мере, отвечает на вопрос. - person LaBracca; 11.08.2011
comment
Может быть, тогда стоит сделать это сообществом-вики. Люди могут добавить больше к нему позже. На самом деле, любой, кто обладает знаниями, может РЕДАКТИРОВАТЬ этот ответ, чтобы добавить больше деталей. - person Warren P; 11.08.2011

Я буду вынужден добавить наш Synopse SQLite3 Framework (позднее обновление: переименован в MORMOT) в список...

Поскольку вы разместили свои вопросы, некоторые моменты были улучшены (например, безопасность или использование http-сервера).

Вот некоторые различия между двумя перечисленными выше:

Обновление: Framework теперь может использовать любые другие ядро базы данных, а не только SQlite3.

person Arnaud Bouchez    schedule 01.06.2011
comment
Мистеру DownVoter: мой пост был не спамом, а ответом на открытый вопрос, поскольку последнее исследование ОП о фреймворках REST было в декабре прошлого года, и такие вещи быстро развивались... - person Arnaud Bouchez; 01.06.2011
comment
Я вижу, что фреймворк делает то, что мне нужно, но у меня много кода и много модулей данных, я хотел бы их использовать. Насколько я вижу, вы используете подход ORM, поэтому я не могу использовать вашу структуру, если не для нового проекта. - person LaBracca; 06.06.2011
comment
+1 Опенсорсные проекты A.Bouchez — отличная штука. Открытый исходный код автоматически НЕ СПАМ. - person Warren P; 04.08.2011
comment
@user193655 user193655 Вы можете использовать только аспект SOA нашей структуры: он не зависит от ORM (но вы можете определить службы на уровне объектов, если хотите). ORM — это только одна его часть. Вы можете использовать RESTful часть фреймворка без использования ORM или SQLite3: вам просто нужны модули SynCommons и SQLite3Commons. И если вы хотите, вы можете переключиться на ORM позже. Обратите внимание, что наша реализация RESTful обрабатывает аутентификацию и подпись для каждого запроса, а DataSnap — нет. Будет работать от Delphi 6 до XE. - person Arnaud Bouchez; 09.08.2011
comment
@ user193655 Я только что добавил возможность использовать любую базу данных, а не только SQLite3. Вы можете использовать аналогичную функцию для повторного использования существующего исходного кода и модулей данных, добавляя архитектуру ORM к существующей проекции вместе с подходом SOA. Взгляните на документацию (см. ссылку), особенно SOA, ORM , RESTful и внешние главы БД. - person Arnaud Bouchez; 09.08.2011
comment
@Арно; Я думаю, вам нужно переименовать вашу структуру ORM. Ваше выбранное имя теперь «Мормот»? - person Warren P; 11.08.2011
comment
@WarrenP Вы правы: фреймворк теперь называется mORMot. См. mormot.net - он больше не привязан только к SQLite3, а имеет конкретный прямой быстрый доступ к любой внешней БД, сервисы на основе интерфейса (все WCF), все это работает даже с версией Delphi Starter. :) - person Arnaud Bouchez; 16.05.2012
comment
Я взял на себя смелость отредактировать ваш ответ, чтобы информация теперь использовала вашу новую номенклатуру. - person Warren P; 16.05.2012
comment
Между прочим, когда вы собираетесь писать свою собственную операционную систему, теперь, когда у вас есть собственная ORM, ваша собственная программа управления проектами, которая также является системой контроля версий, и так далее. Слава, чувак. Ты когда-нибудь находишь время поспать!? :-) - person Warren P; 18.05.2012
comment
Последнее обновление: mORmot включает сервисы на основе интерфейса, интегрированный интерфейс stubs/mocks и только что было обнаружено в независимом тесте самая быстрая протестированная платформа, быстрее, чем DataSnap. Звучит также быстрее, чем RO SDK/DataAbstract, но RO мульти- Платформа. - person Arnaud Bouchez; 03.12.2012

Я счастливый пользователь RO/DA. Я сделал презентацию (на испанском языке) о RO, поэтому я укажу на некоторые важные вещи, которые делают Ro лучшей библиотекой удаленного взаимодействия на любом языке/фреймворке, ИМХО:

  1. Мульти-ВСЁ: Вы можете создавать серверы в .NET, Mono, Delphi, FreePascal. Вы можете создавать клиентов на всех предыдущих + в Obj-C (тоже iOS), javascript, любом языке с поддержкой REST, любом языке с поддержкой SOAP.

У меня сейчас 2 сервера (один delphi, один net/mono) с клиентами в delphi, iOS, python. Это большой плюс.

Поддержка драйверов для нескольких баз данных для БД, таких как odbc, ado, anydac, devart, .net и т. д. Действительно много

Поддержка нескольких протоколов: SOAP, REST, XML-RPC, oData и двоичный код. Не нужно выбирать между быстрым, небольшим, но проприетарным протоколом и открытым, но медленным текстовым протоколом. Возможно обслуживать ОДИН и тот же сервер с НЕСКОЛЬКИМИ протоколами, изменение кода не требуется. Серьезно, этот рулит.

Поддержка многоканальности: http of curse, а также SuperHTTP (двусторонний), TCP/IP, UDP, каналы имен, in-memory, сообщения Windows, IIS SYS и т. д. (каналы различаются, если они находятся в .net или в delphi). )

И вы можете опубликовать сервер сразу в нескольких каналах. Таким образом, вы можете иметь HTTP + UDP одновременно.

2- Резюме данных:

Похоже на ORM, но для N-Tier. DA — это «виртуальное» представление базы данных, а физическая база данных (или базы данных, вы можете подключиться к нескольким) может ОЧЕНЬ отличаться.

Допустим, у вас есть дрянная схема БД от предыдущего разработчика. Таблица клиентов называется «CUST», а поле имени называется «1» (серьезно так называется в POS с открытым исходным кодом). Но у вас может быть виртуальная таблица «Клиент» с полем «Имя».

Таким образом, вы можете так «ВЫБЕРИТЕ имя ИЗ Заказчика», и DA выполнит «ВЫБРАТЬ 1 ИЗ CUST». Это называется "DA SQL". Очень аккуратно. Специально для миграции дрянных схем, находящихся в рабочей базе данных.

Таблицы больше похожи на представления, но с возможностью обновления.

DA сгенерировал для вас строго типизированные классы LINQ (или классы Delphi), поэтому у вас есть хорошая поддержка объектно-ориентированного программирования ORM, но она не привязана к двухуровневой структуре.

Вы можете запросить 2 базы данных и объединить данные в одну виртуальную таблицу, а также опубликовать обновления.

Вы можете использовать JS для проверки встроенной логики и передавать ее клиентам.

3- Быстро

С поддержкой формата BIN все происходит быстрее. Включено сжатие + шифрование (если нельзя использовать SSL).

Асинхронные вызовы + синхронный вызов. Вы можете выбирать для каждого метода, что использовать.

4- Другие приятные мелочи

Поддержка публикации и автоматического обнаружения серверов с поддержкой Bonjour. Легко добавить балансировку нагрузки + отказоустойчивость. Опубликовать в oData. Публикуйте страницы html+js. Хорошая поддержка на http://connect.remobjects.com/.

Единственная плохая вещь заключается в том, что документы немного сложны для понимания (ИМХО) (но отличные видео). В основном, основные вещи - это то, что сначала будет сложно (не потому, что код трудно понять, а потому, что библиотека большая).

Исходный код включен. Демки хорошие.

Но в целом библиотека отличная. Так здорово, что для недавнего проекта я использую C#.NET (несмотря на то, что я ненавижу этот язык) вместо использования python (мой любимый после delphi) просто для использования этой библиотеки. Это хорошо ;)

person mamcx    schedule 26.12.2011

Вы также можете ознакомиться с delphionrails.

комментарий к этому проекту

person Hugues Van Landeghem    schedule 05.08.2011