Портирование из Flash / Flex в HTML - PullRequest
0 голосов
/ 24 апреля 2011

У меня очень сложная система социальных сетей, созданная с использованием Adobe Flex SDK.Поскольку у нас возникают определенные проблемы с производительностью, я хочу перевести ее на «легковесную» платформу, серверная часть - это PHP, так что это всего лишь пользовательский интерфейс.Мои вопросы:

  1. Какие есть другие варианты, если я не хочу использовать Silverlight?
  2. Мне сказали, что я могу использовать AJAX / jQuery, с которым я не знаком- есть ли дизайнеры GUI?
  3. Какой конструктор GUI я могу использовать для разработки своего интерфейса?

Ответы [ 3 ]

1 голос
/ 27 марта 2013

Отказ от ответственности: я являюсь автором Web Atoms Framework.

Переход от Flex довольно сложен, так как концепции связывания, элементы управления в Flex больше не применимы в чисто основанных на jQuery средах. Вы можете получить элементы управления, но в итоге вы пишете много сценариев, и разработка на основе компонентов MXML не существует, поскольку нелегко расширить разметку и создать собственные элементы HTML, как это было возможно в FLEX.

Проблемы при переходе с Flex на HTML

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

Итак, вот проблемы с JavaScript

  1. Легко написать один раз
  2. Но код трудно понять (даже если это мой собственный код, граф кода становится слишком сложным)
  3. Трудно визуализировать пользовательский интерфейс, поскольку разработчики, как правило, пишут функции везде, где у них есть место, поэтому, если вы не пройдете логику, вы не визуализируете пользовательский интерфейс.
  4. Трудно рефракториться, рефракторинг с помощью IDE прост, но это рефракторинг на уровне кода, большинство рефракторингов вроде, хорошо, хорошо, мы не хотим выпадающий список, нам нужен список здесь, мы хотим переместить это вверх, мы хотим чтобы сдвинуть это вниз.
  5. Код редко используется повторно, поскольку компоненты JavaScript и пользовательского интерфейса в основном зависят от закрытия и других обратных вызовов.
  6. Большинство ошибок обнаруживаются только во время выполнения
  7. Самая большая проблема из всех - это «конфликтующие идентификаторы», а не разделение компонентов.

Преимущества XML-разметки в MXML и Silverlight

  1. Легко визуализировать пользовательский интерфейс
  2. Легко свернуть и организовать код
  3. Простая в использовании разметка
  4. Пользовательские компоненты MXML и пользовательские элементы управления Silverlight допускают область именования, в которой дочерние элементы в разных компонентах не мешают друг другу, несмотря на то, что они имеют одинаковые имена.
  5. Легко преломляется
  6. Легко обнаруживать ошибки во время разработки, обнаруживать ошибки разметки легко, и мы также можем автоматизировать процесс.

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

Web Atoms Framework

  1. Синтаксис веб-атомов очень похож на синтаксис компонента MXML
  2. Мы создали много полезных бизнес-элементов управления, которые существовали во Flex
  3. Хотя он не может автоматически переносить код, но сказать, что вы переходите с Java на C #, кроме разных имен, общий стиль программирования остается тем же
  4. Мы ввели концепцию Scope, которая допускает изоляцию компонентов, поэтому несколько разработчиков могут работать на одной странице в разных компонентах, не конфликтуя друг с другом, несмотря на использование одного и того же имени дочерних элементов.
  5. Мы создали простейшую форму AJAX (AtomPromise), которая выглядит так, как будто вы пишете синхронный код, но работает асинхронно и освобождает вас от написания сложных обратных вызовов.
  6. Мы ввели понятия «Командная цепочка», которые были похожи на концепции MVVM и MVC, но более продвинуты и немного проще. Мы называем его MVC, как в командах Model View, и вы можете увидеть его контуры здесь http://www.slideshare.net/ackava/model-view-command-pattern
1 голос
/ 25 апреля 2011

Если вы действительно рассматриваете возможность перехода от Flash и Flex, я бы порекомендовал использовать библиотеку AJAX.AJAX позволит вам иметь интерактивный интерфейс, очень похожий на то, что может предложить Flash, за исключением того, что он поставляется через сам браузер, а не плагин Flash Player для браузера.

jQuery , jQueryUI и jQueryMobile , на мой взгляд, являются наиболее мощными и простыми в изучении средами AJAX.Все они принадлежат к одной семье, поэтому в их использовании нет особой разницы.Он также поддерживает «легкие» опции, которые вы искали. DreamWeaver CS5 (или будущая версия CS5.5) предлагает отличную подсказку кода, которая поможет вам быстро разрабатывать приложения и пользовательские интерфейсы jQuery.

Если вы действительно не хочу изучать фреймворк, я бы попробовал фреймворк Sencha .У меня действительно нет опыта программирования, но я знаю, что они предлагают программу визуального дизайна .Это отличный профессионал, но, с другой стороны, это коммерческий фреймворк / продукт, и он не такой легкий, как jQuery.

Надеюсь, что это полезно,
spryno724

0 голосов
/ 26 апреля 2011

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

Лично я бы искал способ рефакторинга вместо порта.Используйте каркас приложений, такой как Parsley, Robotlegs или Swiz, и узнайте, как повысить производительность своего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...