Datasnap xe vs Remobjects DataAbstract
После запроса этого вопроса я понял, что для того, чтобы построить то, что мне нужно, я бы лучше полагался на некоторые рамки "REST и JSON ready".
Поскольку у меня есть Delphi Professional, я должен перейти на Enterprise, чтобы иметь DataSnap.
Теперь стоимость обновления находится в том же диапазоне, что и стоимость DataAbstract. Обновление: более того, в будущем обновление до более новых версий Delphi Professional + более новых версий DA будет стоить меньше, чем покупка громоздкого обновления Enterprise (например, от XE до XE2).
Так как здесь Люди RemObjects говорят "Работает с профессионалом". Я бы рассмотрел и эту структуру. Кроме того, DataSnap кажется довольно хорошим (я читал это, я не пытался) только из версии XE, в то время как RemObjects имеет более прочное прошлое.
Итак, кто знает, что все продукты могут сравнить их с этими особенностями:
- Сервер REST (для обслуживания JSON)
- простота использования
Какой продукт вы бы предложили?
ПРИМЕЧАНИЕ ДЛЯ BOUNTY:
Поскольку мне не нравится, что это не отвечает, я начинаю щедрость. Я надеюсь, что на исходный вопрос будет дан ответ, кто использует Datasnap или RemObjects?
Ответы
Ответ 1
Я могу только сказать, что вы должны скачать испытания, попробовать их и посмотреть, какие работы для вас. Мы не можем делать психические предсказания.
(Отказ от ответственности: я был сотрудником в Embarcadero, когда я написал следующую часть, в 2011 году).
Баллы в пользу структуры DataSnap:
- Приходит с delphi (некоторым нравится иметь все в одном решении)
- Постоянно расширяется и имеет значительные новые функциональные возможности в XE2
Баллы в пользу RemObjects DataAbstract
- Как вы сказали, работает с низкоуровневыми SKU, например Pro, тогда как DataSnap входит только в RAD Enterprise/Architect.
- Theres..Net edition для Oxygene (ранее известный как Prism).
- Если вам нравится их рабочий процесс, включая модельер модели, вы можете предпочесть его.
Я предлагаю вам прочитать больше и выяснить это сами.
Факторы, которые могут иметь для вас значение, которые вы не указали:
- Необходимость упростить настройку поддержки SSL - RemObjects и DataSnap теперь имеют SSL
- "Truly Madly Deeply 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 сохраняет явное преимущество для тех людей, которые хотите получить решение от одной компании. Для некоторых решений по развитию предприятия я могу легко
как разумный выбор может заключаться в использовании DataSnap и Delphi Enterprise edition. Как я уже говорил, будут некоторые люди, которые собираются найти, что один соответствует их требованиям лучше, или другой, и любой, кто говорит, что один из двух лучше, а другой хуже, все это делает неправильно, сказав, что меня обвинят в том, что я сказал, что "Аннотация данных лучше" выше, но я, очевидно, этого не сказал. Для проекта, который я только что закончил, это было прекрасно.
Ответ 2
Я буду вынужден добавить нашу Synopse SQLite3 Framework (позднее обновление: переименовано MORMOT) в список...
Поскольку вы отправили свои вопросы, некоторые моменты были улучшены (например, безопасность или сервер http).
Вот некоторые отличия между перечисленными выше:
- Нет подхода RAD, но истинный подход ORM (может быть недостатком прототипирования, но это поможет, когда ваше приложение будет расти);
- Очень быстро производитель JSON и парсер с кешированием на уровне SQL;
- Самый быстрый доступный HTTP-сервер с сервером ядра http.sys;
- Поистине Аутентификация RESTful с моделью безопасности с двумя сеансами + для каждого запроса;
- Многоуровневая архитектура, с интегрированными бизнес-правилами как быстрые классы на основе ORM (не через внешние скрипты или такие),
- Возможность использования запросов SQL и RESTful по любым типам данных (благодаря механизму уникальных виртуальных таблиц SQLite3);
- Полнотекстовая поисковая система, с расширенным Google-подобный алгоритм ранжирования;
- Интегрированная система отчетности, которая может служить сложных отчетов в формате PDF из вашего приложения;
- Можно легко создать настраиваемые службы RESTful JSON - вы можете отправить как JSON любой экземпляр
TStrings, TCollection, TPersistent
или даже динамический массив, со встроенным Сериализация JSON;
- Пытался быть как можно быстрее (asm, используемый при необходимости, буферизованное чтение и запись, предотвращает большую часть потребления памяти, многопоточную готовую архитектуру...);
- Более 700 страниц документации;
- Клиенты Delphi и AJAX могут использовать один и тот же сервер;
- подготовлен для 64-бит и кросс-OS Delphi XE2;
- Полный исходный код предоставлен - чтобы вы могли улучшить его, чтобы удовлетворить любые потребности;
- Работает с Delphi 6 до XE, поистине Unicode (использует кодировку UTF-8 в своем ядре, точно так же как JSON), с любой версией Delphi, включая версию XE Starter (нет необходимости покупать какую-либо версию Entreprise).
Обновление: теперь Framework может использовать любой другой механизм базы данных, а не только SQlite3.
Ответ 3
Я счастливый пользователь RO/DA. Я сделал презентацию (на испанском языке) о RO, поэтому я расскажу о некоторых важных вещах, которые делают Ro лучшей удаленной библиотекой на любом языке/рамках, ИМХО:
- Многопользовательский: вы можете создавать серверы в .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 и двоичный. Не нужно выбирать между быстрым, небольшим, но проприетарным и открытым, но медленным текстовым протоколом. Возможно обслуживать САМЫЙ сервер с протоколами SEVERAL, а не изменять код. Серьезно, это один камень.
Поддержка нескольких каналов: так что http проклятия, но также SuperHTTP (двухсторонний), TCP/IP, UDP, имена труб, в памяти, сообщения Windows, IIS SYS и т.д. (каналы меняются, если они включены .net или в delphi)
И вы можете публиковать сервер в нескольких каналах сразу. Таким образом, вы можете одновременно иметь HTTP + UDP.
2- Резюме данных:
Как добрый ORM, но для N-Tier. DA является "виртуальным" представлением базы данных, и физическая база данных (или базы данных, которые вы можете подключить к кратным) может быть ОЧЕНЬ другой.
Скажем, у вас есть дрянная схема БД от предыдущего разработчика. Таблица клиентов называется "CUST", а поле имени называется "1" (как это называется в POS с открытым исходным кодом). Но вы можете иметь виртуальную таблицу "Клиент" с полем "Имя".
Итак, вы можете так "SELECT Name FROM Customer", и DA выполнит "SELECT 1 FROM CUST". Это называется "DA SQL". Очень аккуратно. Специально для миграции дрянных схем, которые находятся в производственной базе данных.
Таблицы больше похожи на представления, но обновляемые.
DA генерирует строго типизированные классы LINQ для вас (или классы Delphi), поэтому у вас есть хорошая поддержка OO ORM, но не привязана к 2-уровневому.
Вы можете запросить 2 базы данных и объединить данные в одну виртуальную таблицу и опубликовать обновления.
Вы можете использовать JS для проверки встроенной логики и передать ее клиентам.
3- Быстрый
При поддержке формата BIN все происходит быстрее. Используется сжатие + шифрование (если не использовать SSL).
Асинхронные вызовы + синхронный вызов. Вы можете использовать один метод для использования.
4- Другие аккуратные вещи
Поддержка публикации и автоматического обнаружения серверов с поддержкой Bonjour. Балансировка нагрузки + Отказоустойчивость легко добавить. Опубликовать в oData. Публикация html + js страниц. Хорошая поддержка в http://connect.remobjects.com/.
Единственным плохим материалом является то, что документы немного сложно отслеживать (IMHO) (но отличные видео). В основном, основной материал - это то, что будет выглядеть сначала (не потому, что код трудно понять, потому что lib большой).
Исходный код включен. Демонстрации хороши.
Но в целом lib великолепно. Настолько замечательно, что для недавнего проекта я использую С#.NET(несмотря на то, что ненавижу язык) вместо использования python (мой любимый, после delphi) просто для использования этой библиотеки. Это хорошо;)
Ответ 4
Вы также можете взглянуть на delphionrails
A комментарий в этом проекте