Стоит ли инвестировать в GraniteDS для разработки Flex + Java? - PullRequest
5 голосов
/ 12 июня 2009

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

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

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

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

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

Итак, мой вопрос к аудитории StackOverflow:

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

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

Ответы [ 5 ]

2 голосов
/ 15 июня 2009

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

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

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

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

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

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

1 голос
/ 16 мая 2010

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

Ура, Кэтлин

1 голос
/ 06 июля 2009

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

0 голосов
/ 15 августа 2009

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

0 голосов
/ 11 августа 2009

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

...