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