2009-06-12 4 views
5

Я новичок в разработке Flex и RIA в целом. У меня есть функция Java + Spring + Hibernate в стиле CRUD, поверх которой я пишу интерфейс Flex. В настоящее время я использую BlazeDS. Это внутреннее приложение, работающее в локальной сети.Должен ли я инвестировать в GraniteDS для разработки Flex + Java?

Мне стало очевидно, что работа RIA более похожа на настольное приложение, чем на веб-приложение, поскольку мы загружаем всю модель и работаем с ней непосредственно на клиенте (или, по крайней мере, той части, вас интересует). Это не очень хорошо справляется с BlazeDS, потому что на самом деле он поддерживает только дистанционное управление, а не управление данными, поэтому может быть много дополнительной работы, чтобы убедиться, что клиенты синхронизированы и чтобы не перезагружать модель, которая может быть большой (тем более, что ленивая загрузка невозможна).

Итак, похоже, что я остался с ситуацией, когда мне приходится обрабатывать приложение Flex больше как обычное старое веб-приложение, где я делаю много мелкозернистой загрузки данных.

LiveCycle стоит слишком дорого. Бесплатная версия WebOrb для Java действительно только удаляет.

Введите GraniteDS. Насколько я могу судить, это единственное бесплатное решение, которое обладает многими функциями управления данными LiveCycle. Я начал немного разбираться в его документации и внезапно чувствую, что это еще одна трюковая система, которую я должен изучить, чтобы получить приложение.

Так что мой вопрос (ы) к аудитории StackOverflow является:

1) вы рекомендуете GraniteDS, особенно если мой текущий стек Java является Spring + Hibernate?

2) в какой момент вы чувствуете, что начинается окупитесь? То есть, на каком уровне сложность приложения вы чувствуете , что использование GraniteDS действительно начинается , чтобы сделать развитие намного больше ? В каких случаях?

+0

вы знали, что есть бесплатная версия служб данных цикла живых? http://www.adobe.com/products/livecycle/dataservices/faq.html – AndrewB

+1

Лицензия довольно ограничительная ... один процессор. – Boden

+0

Я столкнулся с той же проблемой, где это произошло? – HDave

ответ

2

Если вы привержены весне и не хотите вводить Seam, то я не думаю, что Granite DS даст вам намного больше, чем Blaze DS. Существует полезная утилита, которая обеспечивает только один экземпляр какой-либо одной сущности в клиенте в любой момент времени, но на самом деле довольно легко сделать это с помощью нескольких экземпляров словаря со слабыми ссылками и некоторой последующей обработкой, применяемой к вызовам сервера , Много других особенностей Seam-конкретны, как упоминалось здесь в документации:

http://www.graniteds.org/confluence/display/DOC/6.+Tide+Data+Framework

В целом, подход Tide является сведение к минимуму количества кода, необходимого, чтобы все заработало между клиентом и сервер. Его принципы очень похожи на принципы JBoss Seam, что является основной причиной первой интеграции Tide с этой структурой. Интеграция с Spring и EJB 3 также доступна, но немного ограничена.

Я все же думаю, что подход Граните к управлению данными является большим улучшением по сравнению с Livecycle, потому что они действительно совсем другие.Из документов Granite:

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

Это отличается от того, как Livecycle DS использует «управляемые коллекции», где вы вызываете fill(), чтобы захватывать большие фрагменты данных, а затем вызывать методы commit() для сохранения изменений en-mass. Это рассматривает бэкэнд как API доступа к необработанным данным и начинает усложняться (или просто полностью разваливаться), когда у вас есть мелкозернистые требования безопасности. Поэтому я считаю, что подход Гранита гораздо более эффективен.

+0

Управление данными - это функция, которая меня интересует больше всего. Мне не ясно, из документации - это функция, которая работает только с Seam? – Boden

1

Все функции управления данными (сериализация отдельных элементов JPA, кэширование клиентских объектов, подкачка данных ...) работают с Spring. GraniteDS ничего не дает, вам нужен только Seam, если вы хотите использовать Seam на сервере.

0

Вы рассмотрели проект интеграции spring-blazeDS?

+0

Конечно, я использую это. Мой вопрос о GraniteDS, поскольку он может заполнить некоторые из недостающих функций BlazeDS (например, управление данными). – Boden

0

GraniteDS с системой Seam Framework, Hibernate и MySql - очень приятная комбинация. То, что я делаю, это создание базы данных, использование seamgen для создания объектов спящего режима, а затем работа оттуда.

1

На самом деле бесплатная версия WebORB для Java выполняет управление данными. Недавно я опубликовал сравнение между WebORB для Java, LiveCycle DS, BlazeDS и GraniteDS. Вы можете посмотреть эту сравнительную диаграмму здесь: http://bit.ly/d7RVnJ Меня будут интересовать ваши комментарии и отзывы, поскольку мы хотим, чтобы это было наиболее полное сравнение функций в Интернете.

Cheers, Кэтлин

 Смежные вопросы

  • Нет связанных вопросов^_^