Архитектура клиент-сервер SmartGWT GWT - PullRequest
2 голосов
/ 28 февраля 2011

Мы планируем использовать интеллектуальные GWT, GWT и связанные с ними инфраструктуры для многофункционального интерфейса на стороне клиента и Spring MVC, который возвращает данные JSON на стороне сервера.

В рамках исследования, чтобы выяснить, соответствует ли оно нашему требованию, на следующие вопросы нужны ответы:

  1. Создание приложения GWT с нуля без использования каких-либо структур потребует значительного количестваусилие следовать стандартной схеме MVP.Но это более гибкий и тестируемый модуль, хотя и требует много времени.Передовой опыт GWT предлагает использовать шаблон проектирования MVP для создания более крупных приложений.

SmartGWT имеет свой собственный подход, в котором вы используете виджет, вводите в него источник данных, и все готово.Тем не менее, выявить лучшие практики создания таких интеллектуальных компонентов GWT модульным (или MVP) способом.Любые предложения

  1. Использование фреймворка GWT-platform и SmartGWT может быть опцией попробовать архитектуру MVP, как упомянуто здесь.Любые предложения?

  2. Отображение проверки / сообщения / исключения и поддержка других общих функций Smart GWT еще предстоит изучить.

  3. Архитектура клиент-сервер: Наличие Spring MVC + Spring core на стороне сервера и GWT + Smart GWT на стороне клиента может быть хорошим стеком технологий с открытым исходным кодом, но, учитывая, что GWT по умолчанию использует RPC для взаимодействия клиент-сервер, их использование должно быть лучшеоценены.(особенно аутентификация / обработка сеанса / безопасность и т. д.).Есть предложения?

Спасибо

Ответы [ 3 ]

2 голосов
/ 28 февраля 2011

Я никогда не использовал SmartGWT или любые другие богатые библиотеки. Мое мнение может быть предвзятым, но я действительно считаю, что компоненты Gwt легко настраиваются и легки. Я никогда не чувствовал, что от SmartGwt есть другие библиотеки этого типа.

Как говорится, вот мой ответ на два ваших вопроса:

Использование платформы GWT-платформы и SmartGWT может быть опцией попробовать архитектуру MVP, как упомянуто здесь. Есть предложения?

Ну, чтобы остаться MVP, как в этом аспекте, просто установите источник данных от докладчика. По вашему мнению, виджет SmartGWT должен быть «пассивным» и ожидать конфигурации от докладчика.

Преимущество: вам не нужно проверять вид модулем, так как виджеты SmartGWT уже должны быть хорошо протестированы. Вам нужно только протестировать докладчика, где вы на самом деле вызываете представление, чтобы настроить этот виджет, и проверить, правильно ли вы его называете.

Архитектура клиент-сервер: наличие Spring MVC + Spring core на стороне сервера и GWT + Smart GWT на стороне клиента может быть хорошим стеком технологий с открытым исходным кодом, но, учитывая, что GWT по умолчанию использует RPC для взаимодействия клиент-сервер, использование из них необходимо лучше оценить. (особенно аутентификация / обработка сеанса / безопасность и т. д.). Есть предложения?

RPC - это опция, а не связь по умолчанию. Существует два других типа связи (и даже больше, если вы попробуете экспериментальную функцию, такую ​​как DeRPC): RequestBuilder и RequestFactory.

RequestBuilder может быть использован для HTTP GET с JSON Response. Не могу помочь вам с умным подходом GWT.

Вот пользователь Gwt-Platform, который использует Smart GWT, прочитайте его блог, он должен вас просветить: http://uptick.com.au/blog

На момент написания этого ответа блог не работал, но вскоре должен вернуться.

0 голосов
/ 28 февраля 2011

Сначала вы должны рассмотреть свои цели в использовании MVP.

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

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

Очень трудно найти правильную цель такого рода, потому что SmartGWT очень гибок и уже поддерживает тестирование через Selenium, и даже имеет расширения Selenium IDE и поддержку Selenium RC.

Возможным примером действительной причины для использования MVP могут быть две совершенно разные реализации представлений, одна в SmartGWT и упрощенная в простом GWT. Я знаю, что это не очень хороший пример, и трудно представить, что кому-то нужно это делать, но это потому, что нам еще не нужно, чтобы кто-то из разработчиков пришел и сформулировал причину использования MVP с SmartGWT, кроме очень смутных представлений о гибкости. 1009 *

Если вы собираетесь взять на себя задачу использования MVP, я думаю, что вы должны понимать ситуацию достаточно хорошо, чтобы сказать что-то вроде: «нам нужно сделать X, и если мы будем использовать SmartGWT в обычном режиме, это займет 6 месяцев, если мы добавить MVP, это займет 3 ". Насколько мне известно, никто никогда не идентифицировал такой сценарий.

0 голосов
/ 28 февраля 2011

В настоящее время я работаю над приложением Smart GWT / GWT.

Мое мнение о Smart GWT в настоящее время заключается в том, что оно экономит много времени и предоставляет некоторые красивые и полезные виджеты.Тем не менее, поскольку это обертка вокруг библиотеки JavaScript, у нее есть некоторые предостережения, особенно при отладке.Часто отследить ошибку намного труднее, чем использовать обычный GWT (или GWT с библиотекой, не являющейся оболочкой JavaScript).

Чтобы попытаться прокомментировать ваши вопросы:

  1. Я не обнаружил, что библиотеки Smart GWT представляют собой проблему в этом отношении.Возможно, он отличается от рекомендованного GWT, но это не означает, что вам вдруг придется отказаться от всех лучших практик.

  2. Не могу прокомментировать это - не нашел подтверждения /библиотеки сообщений / исключений могут стать проблемой

  3. Мы используем JAX-RS для связи клиент-сервер, которую Smart GWT поддерживает изначально и довольно легко внедрить.Возможно, это немного проще для отладки, чем GWT RPC, потому что он использует формат XML.Мы просто используем Spring Security для обеспечения безопасности и, опять же, никаких проблем там нет.

Я думаю, что главное для нас, что заставило бы меня дважды подумать об использовании Smart GWT снова, это настраиваемость:например, когда вы используете их формы, вы не можете делать с ними очень много с точки зрения макета.Smart GWT имеет свой собственный способ работы, и вы в значительной степени привязаны к нему, если не хотите писать свои собственные компоненты (что не идеально, потому что Smart GWT не рекомендует смешивать Smart GWT и простые компоненты GWT).

Если вы счастливы написать приложение, которое использует библиотеку Smart GWT и не требует особых настроек, это будет хорошо.

...