BlazeDS против GraniteDS

У кого-нибудь есть опыт оценки BlazeDS и GraniteDS? Мне интересно, что лучше интегрировать с Spring/Hibernate.

Ответы

Ответ 1

Если вы просто ищете простой RPC и обмен сообщениями, я бы пошел с Blaze. Реализации более зрелые и лучше проверены, особенно в отношении обмена сообщениями. Обмен сообщениями в Granite основан на комете и все еще довольно новый из того, что я помню. Подробнее...

Blaze DS - это в основном стек, который включает RPC и некоторые простые службы обмена сообщениями через HTTP. Интеграция с Spring достигается легко с помощью реализации SpringFactory FlexFactory: просто введите имя класса и вы найдете код. Он не предлагает никакой дополнительной поддержки для вещей, связанных с Hibernate.

Гранит DS быстро растет с точки зрения особенностей. Он больше конкурирует с LCDS, чем Blaze DS. Он включает в себя возможность анализировать графики объектов Hibernate и обрабатывать ленивые прокси чистым способом. У них также есть инструмент под названием "Tide", который создает аналог сеанса в клиенте Flex для обеспечения уникальности сущностей. Они также имеют явную поддержку услуг, предоставляемых через Spring, EJB3 и Seam. Гранит также имеет полезность для создания классов AS3 из ваших классов Java (хотя это не сложно написать сами, если вы хотите).

Я работал с Гранитом около года назад и имел некоторые проблемы с его правильной обработкой графов объектов; Flash Player бросил бы некоторые неприятные исключения на низком уровне. Я предполагаю, что документация и реализация созрели с тех пор, что они больше не являются проблемами. Тем не менее, я все еще немного не решаюсь рекомендовать его, так как я столкнулся с проблемами, и переход на Blaze немедленно разрешил их без проблем.

Ответ 2

Несколько примечаний на комментарии Клиффа:

  • GraniteDS была создана в конце 2006 года, примерно за год до BlazeDS. Он широко используется в сложных производственных средах и, по крайней мере, может считаться зрелым и проверенным, чем BlazeDS.
  • Обмен сообщениями GraniteDS был представлен в выпуске 1.0 (конец 2007 года, спустя несколько недель после первого выпуска BlazeDS), теперь он очень зрелый и проверенный, а также в сложных производственных средах.
  • Исключения Flash Player, с которыми сталкивается Cliff, обычно вызваны сбоем всех сгенерированных классов AS3 в SWF. Речь идет только об использовании параметра компилятора Flex, который заставляет включать эти отсутствующие классы, которые являются частью модели данных данных и требуются во время десериализации, но явно не используются в коде MXML/AS3.
  • Большинство пользователей GraniteDS поступают из BlazeDS/LCDS, потому что эти два фреймворка неправильно обрабатывают сложные модели данных (нет или ошибочная поддержка ленивой загрузки, плохая изоляция транзакций и т.д.).

Итак, IMHO, если вы не разрабатываете небольшое приложение с довольно тривиальной моделью данных, вы должны перейти на GraniteDS.