Я счастливый пользователь RO / DA.Я сделал презентацию ( на испанском ) о RO, поэтому я укажу некоторые важные вещи, которые делают Ro лучшей библиотекой удаленного взаимодействия на любом языке / фреймворке, IMHO:
- Multi-ВСЕ: Вы можете создавать серверы в .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, но также SuperHTTP (двусторонний), TCP / IP, UDP, конвейеры имен, в памяти, сообщения Windows, IIS SYS,и т. д. (каналы различаются, если они находятся в сети .net или в Delphi)
И вы можете опубликовать сервер сразу по нескольким каналам.Таким образом, вы можете использовать HTTP + UDP одновременно.
2- Аннотация данных:
Походит на своего рода ORM, но для N-уровня.DA - это «виртуальное» представление базы данных, и физическая база данных (или базы данных, которые вы можете подключить к нескольким) может быть ОЧЕНЬ отлична.
Допустим, у вас есть дрянная схема БД из предыдущейразработчик.Таблица customer называется «CUST», а поле имени - «1» (то есть, как оно называется в POS с открытым исходным кодом, серьезно).Но вы можете иметь виртуальную таблицу «Клиент» с полем «Имя».
Таким образом, вы можете, чтобы «ВЫБЕРИТЕ Имя ОТ Клиента», и DA выполнит «ВЫБРАТЬ 1 ОТ ЗАКАЗА».Это называется "DA SQL".Это очень аккуратно.Специально для миграции дрянных схем, находящихся в производственной базе данных.
Таблицы больше похожи на представления, но могут быть обновлены.
DA сгенерировал для вас строго типизированные LINQ-классы (или Delphi Classes),так что у вас есть хорошая поддержка OO ORM, но не привязанная к 2-уровневому.
Вы можете запросить 2 базы данных и объединить данные в одной виртуальной таблице, а затем опубликовать обновления.
Вы можете использовать JS для встраивания логической проверки и потоковой передачи ее клиентам.
3-Fast
С поддержкой формата BIN все работает быстрее.Сжатие + шифрование (если не удается использовать SSL) включены.
Асинхронные вызовы + синхронный вызов.Вы можете выбрать для каждого метода, что использовать.
4 - Другие полезные вещи
Поддержка публикации и автоматического обнаружения серверов с поддержкой Bonjour.Балансировка нагрузки + отказоустойчивость легко добавить.Опубликовать в oData.Публикация html + js страниц.Хорошая поддержка в http://connect.remobjects.com/.
Единственный недостаток в том, что документы немного сложны для подражания (ИМХО) (но отличное видео ).Главным образом, основной материал - это то, что поначалу будет выглядеть сложно (не потому, что код сложен для понимания, а потому, что библиотека большая).Демонстрации хороши.
Но в целом библиотека великолепна.Настолько здорово, что для недавнего проекта я использую C # .NET (несмотря на то, что я ненавижу язык) вместо использования python (мой любимый, после delphi) просто для использования этой библиотеки.Это хорошо;)