Подтвердить что ты не робот

GWT против Flex против?

Моя компания пытается перейти от приложения .NET к тому, что является чисто веб-сайтом и очень "ajaxy". Исходное приложение .NET довольно интерактивно, примерно эквивалентно Картам Google в отношении взаимодействия с пользователем (масштабирование, панорамирование, аннотирование объектов на векторной карте).

Наш .NET-разработчик действительно взят с Flex2. Я признаю наличие довольно сильного смещения Java. У меня также есть около года опыта работы с GWT, и с ним можно быстро справиться. Наша кодовая база в основном J2EE, поэтому GWT кажется мне естественным. У меня нет опыта работы с Flex, поэтому я действительно не могу сделать рекомендацию или против него.

Наши основные интересы при выборе структуры заключаются в следующем:

  •   
  • перспективная  
  • работает во всех основных браузерах.  
  • быстрый и отзывчивый пользовательский интерфейс.  
  • код должен быть единым проверяемым  
  • код должен быть обслуживаемым  
  • скорость и простота разработки  
  • поддерживает некоторую векторную графику (SVG a plus)

Удовлетворитесь плюсами и минусами этих двух технологий или даже порекомендуйте третий вариант?

4b9b3361

Ответ 1

Я только слегка знаком с Flex, но работал с GWT в течение многих лет. Нам пришлось принять очень похожее решение несколько лет назад (Flash vs GWT), но по разным причинам. В конце мы увидели множество преимуществ GWT над Flash (многие из них относятся к Flex):

  • Не все наши клиенты имеют флеш-память, цифры проникновения из Adobe бесполезны, вам нужно ваше собственное (что у нас есть), чтобы увидеть, что на самом деле есть у ваших клиентов. На корпоративных и образовательных рынках проникновение на самом деле намного ниже, чем высокие 90-е годы, которые цитирует Adobe.

  • GWT действительно совместим с кросс-браузером и платформой (Linux, Mac, Windows, Android, iPhone и т.д.), а flash никогда не будет. Вы можете не беспокоиться об этом, но мы это сделали.

  • Flex - это собственная технология Adobe, тогда как GWT полностью открыт с открытым исходным кодом и настраивается

  • GWT интегрируется с DOM, а все остальное на вашей странице намного проще, чем flash и Flex.

  • GWT кодируется в Java, и мы все хорошо знаем Java

Чтобы указать свои конкретные моменты:

*  futureproof

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

* works on all major browsers

GWT работает в Firefox (и все браузеры gecko), Safari (и все браузеры Webkit), IE и Opera. Flex работает во всех браузерах, но только если поддерживается Flash, поэтому я бы сказал, что GWT выходит наверху.

* fast & responsive user experience

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

* code should be unit testable

Оба объекта легко проверяются на единицу

* code must be maintainable

При кодировании хорошо сохраняются

* speed & ease of development

До тех пор, пока вы знакомы с ними, я бы сказал, что это большая часть мухны.

* supports vector graphics of some sort (SVG a plus)

Я не могу говорить для Flex, но GWT поддерживает векторную графику через SVG через сторонние библиотеки.

Ответ 2

Я не знаком с GWT, но я знаком с Flex. Несмотря на то, что GWT основан на Java (и похоже, что вы в основном магазин Java), я бы рекомендовал Flex на основе ваших перечисленных интересов:

  • Futureproof - Flash поддерживает YouTube и огромный процент мультимедиа в Интернете... они встроили его в игровые приставки, а Intel строит его в стойки. Он будет здесь долгое время, и Adobe всегда поддерживала 100% обратную совместимость с их Flash-плеерами.

  • Работает со всеми основными браузерами - да. И с Flash Player 10, который также включает в себя системы Linux. И с очень минимальными головными болями администратора (на мой взгляд, это меньше, чем Java).

  • Быстрый и отзывчивый пользовательский интерфейс - да, хотя Java может быть быстрее в некоторых сценариях. Flash оптимизирован для векторного рендеринга, поэтому с этой целью он может дать вам лучшую производительность, чем Java.

  • Код должен быть единым проверяемым - да, см. FlexUnit.

  • Код должен быть ремонтируемым - определенно. AS3 - серьезный язык, а не язык сценариев игрушек. Он будет хорошо знаком пользователям С# или Java.

  • Скорость и простота разработки - за то, что вы делаете, вы сможете найти десятки примеров именно того, что вы описали: масштабирование и панорамирование изображений в Google Maps-like. Ядром среды исполнения является хорошо продуманный графический движок, поэтому создание интерактивного графического приложения - это его естественная задача.

  • Поддерживает векторную графику некоторого вида (SVG a plus) - очевидно, Flash делает это изначально. SVG поддерживается на этапе компиляции (вы можете компилировать в SVG, но вы не можете анализировать SVG во время выполнения). Доступны инструментальные средства, которые преобразуют SVG в SWF для вас во время выполнения.

Единственная причина, по которой я буду использовать GWT, - это сохранить ваш магазин Java на сервере и клиенте... но опять же, вы ищете лучших техников для работы, не так ли? В этом случае я бы сказал, что Flash (и, в частности, фреймворк Flex) лучше всего подходит для того, чего вы хотите достичь.

Ответ 3

Еще один момент, чтобы отметить, что ни iPhone, ни Android в настоящее время не поддерживают Flash. Гораздо больше людей ожидают доступа к веб-приложениям на своих телефонах.

Ответ 4

Я был частью проекта, который использовал GWT, и мне это очень понравилось, тем более, что Java - это мой основной язык программирования. Я не использовал Flex, поэтому я предоставляю вам информацию о том, что я испытал с GWT. Чтобы прокомментировать некоторые ваши требования

* будущая защита - GWT был там уже пару лет и постоянно поддерживается Google.

* работает во всех основных браузерах - если вы использовали GWT, кросс-браузерное программирование никогда не было намного проще. GWT делает это за вас!

* код должен быть единым проверяемым - да, вы можете unit test GWT, его также легко отладить GWT.

* скорость и простота разработки - Благодаря GWT Ajax становится намного менее сложным. Это само по себе может ускорить развитие вашего RIA.

Кроме того, я просто должен сказать, что я люблю свою группу Google! Он очень активен, и вы можете найти много людей, которые могут помочь вам, если вы застрянете с чем-то.

Ответ 5

Я склонен к Flex, так как с 2000 года я занимаюсь разработкой Flash/Flex. Думаю, чтобы ответить на ваш вопрос, это действительно сводится к уровню интерактивности и сложности, которые вы хотите достичь.

Flex позволит вам делать то, что было бы почти невозможно в среде JavaScript (ASP.NET AJAX, jQuery, GWT), например, простая 3D-графика. Интеграция строительного комплекса действительно тривиальна в Flex. Также он очень быстрый и может обрабатывать множество анимированных объектов за раз. Flex может легко взаимодействовать с .NET или Java, используя веб-службы. Недостатком использования Flex является то, что он похож на встроенное приложение на вашем веб-сайте, а не на что-то, что тесно интегрировано.

Если вы собираетесь придерживаться подхода JavaScript, обычно я предлагаю использовать какой-то языковой агностик, например jQuery. Но поскольку у вас уже есть опыт GWT, это может хорошо работать для вашего проекта. Недостатком является то, что GWT в конце все еще JavaScript, поэтому вы будете ограничены скоростью и интерактивностью того, что возможно в браузере.

Ответ 6

Недавно Sun выпустила новую технологию под названием JavaFX для этих типов RIA. Вы можете проверить это (javafx.com). Предполагается, что он будет работать на Java 5 или лучше, но это определенно не будет иметь такого проникновения, которое делает Flash. Я думаю, однако, учитывая ваши требования к тестированию, что эта технология может оказаться неприемлемой в настоящее время.

Кроме того, я думаю, что Трой Гилберт сделал ошибку в своем посте. В частности, он, по-видимому, указывает, что приложение GWT будет выполняться (клиентом) в java. Я почти уверен, что приложение GWT написано сначала на Java, а затем GWT скомпилирует это в библиотеку javascript, которую клиент запускает.

Ответ 7

Я использовал обе технологии в течение некоторого времени.

Futureproof - оба они будут успешными, я думаю, но каждая технология будет предпочтительнее в разных ситуациях. Например, flex в больших (в основном, интрасети) предприятиях с нужным рабочим столом, например ui (Flex можно использовать в верхней части любой серверной платформы (jvm,.Net, php, ruby, coldfusion)). GWT в противном случае будет доминировать в малом и среднем приложениях с традиционным бэкэндом jvm (tomcat + spring и т.д.).

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

Быстрый и отзывчивый пользовательский интерфейс - оба являются вершинами в своей категории. Flex, я считаю, что абсолютная вершина всех решений RIA (может быть, silverlight, java fx может быть только конкурентами в richnest), особенно интегрирована с LCDS с такими замечательными функциями, как управление данными, передача данных на стороне сервера и т.д. GWT является одним из лучших в категории ajax. Чем более богатый и сложный ui вам нужен, тем больше причин использовать flex. Intepreted javascript в любом случае не может быть более быстрым и отзывчивым, а затем скомпилирован actioncript/swf.

Код должен быть единым проверяемым - да, они в значительной степени проверяемы.

Код должен быть поддерживаемым - оба превосходные, поддерживающие actioncript сопоставимы с java (gwt), если вы используете хорошую среду IDE, например Flex Builder.

Скорость и простота развития - оба идеальны, если вы знаете своих сотрудников. Все зависит от вашего фона. Для типичной кривой обучения разработчикам Java будет достаточно сложнее (вам нужно изучить новый компилятор/время выполнения и, возможно, новую IDE или, по крайней мере, новый плагин IDE для eclipse:). Некоторые знания флэш-памяти - это +, но не требуются и обычно выполняются только с конкретными задачами, такими как создание ваших собственных компонентов и т.д.

Поддержка какой-либо векторной графики (SVG a plus) - никаких проблем, которые я помню, у меня нет слишком много опыта с этим, но я буду смотреть на нее в будущем, когда FXG будет финализирован.

затраты на разработку и развертывание - победитель здесь понятен. GWT. Flex был разработан для получения прибыли. Хотя self открывается, лучшие инструменты (Flex Builder, новый Flash Builder/Catalyst) и фреймворки (LCDS) являются коммерческими и не дешевыми вообще. Посмотрите на ценники LCDS на процессор, и вы узнаете, о чем я говорю. С GWT большинство качественных инструментов/фреймворков раскрываются или, по крайней мере, свободны. Кроме некоторых продвинутых компонентов, таких как ext gwt и smartgwt EE. Очевидно, вы можете жить без них.

Ответ 8

Это действительно вопрос яблок/апельсинов. С GWT вы получаете чистоту писать все на Java. По иронии судьбы, конечный результат никогда не будет похож ни на что иное, как на веб-сайт.

С помощью Flex вы можете написать что-то, что похоже на приложение. И, возможно, самое главное, с Flex нет НИЧЕГО, вы не можете делать программно - функциональный или графический.

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

Ответ 9

Будущая коррекция больше связана с архитектурой, чем с конкретной технологией. Благодаря правильной архитектуре вы легко можете заменить технологию презентации. Мне нравится Silverlight/MVVM, хотя шаблон требует некоторого планирования для поддержки HTML5.

Ответ 10

Пока iPhone и Android не поддерживают flash YET, вы также должны отметить, что Google создает приложения, предназначенные для мобильного телефона. Они делают это, потому что экран на мобильных устройствах значительно меньше, чем обычный ноутбук/рабочий стол. Таким образом, отсутствие поддержки флэш-памяти не является проблемой, поскольку целевое приложение обеспечивает лучший пользовательский интерфейс.

Ответ 11

Моя компания столкнулась с тем же решением около года назад. Вы слышали о GXT http://extjs.com/products/gxt/? В конечном итоге мы выбрали GXT. Как разработчик .NET, переход от .NET к GXT был отличным. Мы разработали корпоративную программу управления с GXT/GWT. Недостатком является то, что GXT разрабатывается гораздо меньшей командой по сравнению с Flex, и сообщество не так велико. Тем не менее, он обеспечивает впечатляющий опыт работы в браузере. Проверьте это.

Ответ 12

Мне понравился комментарий от кирушика, утверждающий, что "GWT имеет 3-мерную поддержку". Не так быстро, пусть будет полностью честным здесь. Для этого вам нужен специальный плагин: "Требует загрузки плагина Google O3D" OOps!

Извините, это не могло быть прямым комментарием/ответом, но я чувствовал, что это важный момент, который не следует просто игнорировать, особенно когда так много фанатов-фэнов избили там о том, что не хотят использовать "злые" плагины... (Настоящая причина, по которой они кричат ​​об этом не-проблеме, особенно когда корпорации имеют полный контроль над простой задачей развертывания Flash в своих частных сетях или нет, заключается в том, что они считают, что это легко ударить по Flex или Silverlight, чтобы помочь им продвигать их собственные наборы навыков.)

Ответ 13

Я знаю, что вы спросили о GWT против Flex, но если у вас есть мнение по поводу окончательного решения, вам следует серьезно подумать о том, следует ли отойти от AJAX и ASP.NET. Несмотря на то, что говорят Adobe, Microsoft и Sun, RIA (Rich Internet Applications) еще не готовы для использования в режиме реального времени, за исключением ограниченной формы (например, видеоплееры).

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

ASP.NET никуда не денется. Также нет Java или Flex. Но для широкого охвата, наилучшего возможного пользовательского опыта в целом и поддерживаемости (из-за того, что у вас есть только доступные ресурсы программирования), вы не можете победить родное приложение на основе браузера.

ASP.NET MVC - это чисто веб-интерфейс и очень Ajaxy. Вы можете проверить это. Он похож на Ruby on Rails (без Rails), и разработчики (даже разработчики, новые для ASP.NET) вполне восприняты с ним.