JQuery VS Flex - Выбор платформы для SAAS
Наша команда собирается запустить веб-приложение SAAS, предназначенное для малых предприятий. Это совершенно новый опыт для нас; мы являемся организацией по разработке систем /linux/php и не имеем опыта разработки программного обеспечения на стороне клиента, за исключением простых приложений поддержки CRUD на основе html / php.
Мы оцениваем как Adobe Flex, так и JQuery. Мы не можем выбирать между двумя. Наши приоритеты:
- Производительность - мы должны запустить как можно скорее.
- Общий пользовательский опыт. Получающиеся приложения должны выглядеть профессионально, а пользователь должен иметь приятные впечатления от использования нашего продукта. Я думаю, что это не проблема для обеих платформ, хотя мы, вероятно, автоматически потеряем 10% потенциальных пользователей, у которых не установлена флэш-память.
- Повторное использование навыков - нам всем придется изучать новые языки и платформу RIA в этом проекте и надеяться, что мы сможем использовать его снова в других проектах. Кстати, мы являемся организацией-подрядчиком программного обеспечения, и это наш первый набег на потребительские приложения. Однако мы надеемся, что сможем использовать полученные здесь навыки для наших клиентов.
Характеристики применения:
- Ориентированный на данные - много и много операций CRUD.
- 3 уровня - бизнес-логика будет находиться на PHP-сервере, а данные будут на MySQL. RIA будет только представлять данные пользователю.
- Доступные для пользователя данные будут большими - вот почему мы решили использовать RIA. Мы не можем обновить страницу, когда пользователь только что внес несколько изменений / дополнений.
- Безопасность имеет первостепенное значение - я не вижу никаких последствий для безопасности при выборе одной платформы над другой, но, возможно, у сообщества есть какие-то идеи?
Мы внимательно изучаем это. Мы часто проводим соревнования среди разработчиков, которые могут быстрее реализовать тестовое приложение, используя flex или jquery. Хотелось бы услышать, что сообщество скажет.
Заранее спасибо!
6 ответов
UI: Вам нужно быстро развернуться, и html как-то делает это возможным. то есть с html tech вы можете легко изменить свой интерфейс. однако, если весь пользовательский интерфейс работает на flex, небольшие изменения требуют компиляции sdk/flex. у нас есть похожий проект, похожий на ваш, но мы объединили оба мира, некоторые виджеты используют flex, пользовательский интерфейс все еще в html и jquery для создания волшебных вещей.
на задней стороне слайды могут дать вам несколько идей:
Я использовал оба. У меня нет сильной рекомендации, но есть некоторые соображения.
- Мобильная поддержка. Flex требует Flash Runtime, которого нет на многих мобильных платформах. Для достижения наилучших результатов вам в любом случае понадобится отдельный мобильный интерфейс, а не просто повторно использовать интерфейс рабочего стола, хотя последний работает до некоторого уровня.
- Поддержка браузера. Вы будете проводить больше времени с jQuery на этом. Они абстрагируют многие вещи, но как только вы дойдете до особенностей компоновки вашего приложения, вам все равно придется провести много работы по тестированию в разных браузерах и на разных платформах, которая не требуется для Flex.
- Макет и архитектура пользовательского интерфейса. Насколько сложное приложение? Насколько модульный? Во Flex есть очень хорошие шаблоны для компонентной компоновки вашего приложения, создания компонентов многократного использования и т. Д., JQuery как таковой не поможет вам в этом, он более скромен. С Javascript/jQuery вам нужно будет провести собственное исследование, чтобы найти наилучшую настройку архитектуры.
- Инструменты разработки. Если вам нравится разрабатывать свое приложение с графическим интерфейсом, у Flex есть очень хорошая интегрированная среда разработки / кодирования. Вы сами по себе с Javascript. Есть инструменты, но вам нужно будет сделать свой выбор.
- Поставщик лок и стоимость. Flex стоит денег (ну, в любом случае, в IDE вы можете получить бесплатный компилятор, но я не пробовал, насколько он полезен.) Javascript/jQuery "бесплатный", но нужно потратить время на изучение всего вышеперечисленного.
С точки зрения опыта пользователя, оба эквивалентны, вы можете получить как хорошие, так и плохие впечатления с ними. Оба имеют приличные готовые наборы виджетов пользовательского интерфейса, jQuery с ThemeRoller несколько легче настраивается, но Flex также прекрасно приспосабливается к созданию скинов с системой, очень похожей на W3C CSS.
Я бы использовал Flex. Комплимент jQuery по своему усмотрению, но Flex является полноценной средой и средой, и она, как правило, не позволяет IE6 (вы упомянули малый бизнес) кусать вас в задницу позже. Кроме того, поскольку вы работаете с малым / средним бизнесом, они будут более WOWed с интерфейсами Flex по сравнению с jQuery/ExtJS/ любыми интерфейсами. Я обнаружил, что первый более отзывчивый и более симпатичный из коробки, что уменьшит время настройки и время выполнения.
С помощью jQuery (или YUI/ExtJS/...) вы сможете создавать привлекательные приложения с эффектами, подобными / сопоставимыми с Flex.
Тем не менее, IMHO, с jQuery-UI я обнаружил, что он мерцает, когда компоненты меняют состояние. Это не просто кросс-браузерная проблема; это случается на FF иногда и не в другой раз. (вероятно, возникнут некоторые проблемы с памятью), и ваш выбор: 1. подождите, пока сообщество выпустит исправление, и / или 2. сделайте это самостоятельно. С другой стороны, компоненты Flex протестированы на это и имеют лучшую поддержку (хотя Adobe может высокомерно иметь дело с).
Приложения HTML/JS/CSS не всегда дают приятный и последовательный эффект (в зависимости от того, сколько вкладок вы используете, сколько пользуетесь памятью для сеанса браузера).
С JS,HTML,CSS ваша разработка будет проще, в то время как во Flex вам нужны хорошие люди с архитектурным смыслом (читай дорого); в противном случае вы можете испортить ваше приложение очень плохо.
JS, CSS и HTML (даже 5) всегда будут иметь кросс-браузерные проблемы, которые никогда не будут полностью устранены.
С Flex, если ваш бэкэнд - Java или CF, вы можете получить удаленные объекты (двоичный файл AMF), что делает передачу данных типизированной, встроенной и быстрой. (Даже php-amf, saber-amf или WebOrb могут использоваться для этого в зависимости от вашего бэкэнда.)
С JS вы остаетесь с JSON или XML. Вы можете оптимизировать развертывание с помощью Runtime Shared Libs. и использовать много стратегий, таких как модульная разработка, отложенная загрузка, воспринимаемое и реальное повышение производительности и т. д. Сложнее сделать с JS/HTML/CSS, где обычно возникает соблазн создавать заполнители виджетов во время разработки.
Приложения JS сложнее поддерживать, когда появляется новый человек, хороших инструментов отладки нет (имхо, Aptana так себе).
В конце концов, я согласен с кем-то здесь, кто сказал, что гибридное решение может быть на заказ. Разработать приложение в виджетах;
Вы можете использовать классную поддержку перетаскивания с виджетами Flex (то же самое с JS, но проще с Flex).
Ваши гибкие виджеты будут отделены и, следовательно, потребуют дополнительных компиляций в случае изменений, и разные команды могут работать с разными элементами, если ваши API хорошо спроектированы друг для друга.
Вы можете общаться с HTML-оболочкой, используя внешний интерфейс, и отправлять данные туда и обратно.
Удачи!
TimeFrame: Jquery легче запустить, но без хороших базовых навыков и шаблона проектирования, он может легко запутаться, когда приложение будет расти. IDE: Flex побеждает Jquery, с jquery я вижу браузер и fire bug в качестве повторного использования IDE SkilL: лично я бы сказал, javascript (Adobe Air является доказательством)
Flash Player по-прежнему довольно интенсивно использует процессор на стороне клиента, когда он должен отображать много текстового и векторного содержимого, это одна из главных причин, по которой я остановлюсь на решении javascript.
Я буду рекомендовать использовать flash/flex выборочно (видео / рисование / создание диаграмм, если необходимо) и с jquery+html в качестве основного фреймворка приложения.
Взгляните на ExtJS, который является более законченным, чем jquery, для целей разработки веб-приложений. Хотя это и не так просто, как в jquery.
"Пенни мудрый фунт глупо"
Вы можете найти программистов jQuery очень легко (и разумно), однако, вопрос о том, будут ли они структурированы или нет в их методологии, это другой вопрос. Через 3 года вы можете остаться в беспорядке, а не в работоспособном масштабируемом приложении.
Если вы можете получить ведущего разработчика с отличными навыками в Java, Ajax/jQuery и Flex и позволить этому человеку устанавливать стандарты и рекомендации по разработке, тогда это будет хорошо потраченные деньги.