Отказ от ответственности: я являюсь автором Web Atoms Framework.
Переход от Flex довольно сложен, так как концепции связывания, элементы управления в Flex больше не применимы в чисто основанных на jQuery средах. Вы можете получить элементы управления, но в итоге вы пишете много сценариев, и разработка на основе компонентов MXML не существует, поскольку нелегко расширить разметку и создать собственные элементы HTML, как это было возможно в FLEX.
Проблемы при переходе с Flex на HTML
У нас была похожая задача, поэтому мы решили написать собственную структуру после прохождения различных существующих структур. Проблема, с которой мы столкнулись, заключалась в том, что мы должны были либо научить разработчиков писать одно и то же приложение, используя другую логику пользовательского интерфейса, что требовало большего обучения.
Итак, вот проблемы с JavaScript
- Легко написать один раз
- Но код трудно понять (даже если это мой собственный код, граф кода становится слишком сложным)
- Трудно визуализировать пользовательский интерфейс, поскольку разработчики, как правило, пишут функции везде, где у них есть место, поэтому, если вы не пройдете логику, вы не визуализируете пользовательский интерфейс.
- Трудно рефракториться, рефракторинг с помощью IDE прост, но это рефракторинг на уровне кода, большинство рефракторингов вроде, хорошо, хорошо, мы не хотим выпадающий список, нам нужен список здесь, мы хотим переместить это вверх, мы хотим чтобы сдвинуть это вниз.
- Код редко используется повторно, поскольку компоненты JavaScript и пользовательского интерфейса в основном зависят от закрытия и других обратных вызовов.
- Большинство ошибок обнаруживаются только во время выполнения
- Самая большая проблема из всех - это «конфликтующие идентификаторы», а не разделение компонентов.
Преимущества XML-разметки в MXML и Silverlight
- Легко визуализировать пользовательский интерфейс
- Легко свернуть и организовать код
- Простая в использовании разметка
- Пользовательские компоненты MXML и пользовательские элементы управления Silverlight допускают область именования, в которой дочерние элементы в разных компонентах не мешают друг другу, несмотря на то, что они имеют одинаковые имена.
- Легко преломляется
- Легко обнаруживать ошибки во время разработки, обнаруживать ошибки разметки легко, и мы также можем автоматизировать процесс.
Имея в виду все, мы создали нашу собственную инфраструктуру для имитации Flex на HTML, и после полутора лет усилий мы можем создать инфраструктуру, которая позволяет нам создавать компоненты MXML-типа, а также создавать пользовательский интерфейс и взаимодействие с простой разметкой XML (поверх HTML с пользовательскими атрибутами), поэтому разработчики могут легко мигрировать.
Web Atoms Framework
- Синтаксис веб-атомов очень похож на синтаксис компонента MXML
- Мы создали много полезных бизнес-элементов управления, которые существовали во Flex
- Хотя он не может автоматически переносить код, но сказать, что вы переходите с Java на C #, кроме разных имен, общий стиль программирования остается тем же
- Мы ввели концепцию Scope, которая допускает изоляцию компонентов, поэтому несколько разработчиков могут работать на одной странице в разных компонентах, не конфликтуя друг с другом, несмотря на использование одного и того же имени дочерних элементов.
- Мы создали простейшую форму AJAX (AtomPromise), которая выглядит так, как будто вы пишете синхронный код, но работает асинхронно и освобождает вас от написания сложных обратных вызовов.
- Мы ввели понятия «Командная цепочка», которые были похожи на концепции MVVM и MVC, но более продвинуты и немного проще. Мы называем его MVC, как в командах Model View, и вы можете увидеть его контуры здесь http://www.slideshare.net/ackava/model-view-command-pattern