Flex MVC Frameworks

В настоящее время я использую и наслаждаюсь использованием Flex MVC framework PureMVC . Я слышал о хороших вещах о Cairngorm, который поддерживается Adobe и имеет импульс от первого выхода на рынок. И есть новый игрок под названием Mate, у которого много шума.

Кто-нибудь пробовал две или три из этих структур и сформировал мнение?

Благодаря!

    Мате – мой выбор. Первая и главная причина в том, что она совершенно ненавязчива. Мой код приложения не имеет зависимостей от фреймворка, он сильно развязан, многоразовый и проверяемый.

    Одной из самых приятных особенностей Mate является декларативная конфигурация, по сути, вы подключаете свое приложение к использованию тегов в так называемой карте событий – в основном список событий, которые генерирует ваше приложение, и какие действия следует предпринять, когда они происходят. Карта событий дает хороший обзор того, что делает ваше приложение. Mate использует собственный механизм событий Flex, он не изобретает свои собственные, как большинство других фреймворков. Вы можете отправлять событие из любой точки иерархии представлений и автоматически создавать пузырьки в каркасе, вместо того, чтобы иметь прямую линию, например Cairngorms CairngormEventDispatcher или систему уведомлений PureMVC.

    Mate также использует форму инъекции зависимостей (используя привязки), которая позволяет подключать ваши модели к вашим представлениям, не зная о другом. Это, вероятно, самая мощная функция структуры.

    На мой взгляд, ни одна из других фреймворков Flex не подходит к Mate. Тем не менее, это соперники и почему я считаю их менее полезными:

    PureMVC активно отказывает вам в преимуществах Flex (например, привязок и пузырьков событий), чтобы каркас был переносимым – на мой взгляд, это была двусмысленная цель. Он также чрезмерно спроектирован и столь же инвазивен, как и они. Каждая часть вашего приложения зависит от структуры. Однако PureMVC не страшен, просто не очень подходит для Flex. Альтернативой является FlexMVCS , стремление сделать PureMVC более подходящим для Flex (к сожалению, пока нет документации, только источник).

    Cairngorm – это набор анти-шаблонов, которые приводят к приложениям, тесно связанным с глобальными переменными. Нафф сказал (но если вам интересно, вот некоторые из моих мыслей , и здесь тоже ).

    Swiz – это структура, основанная на платформе Spring для Java и Cairngorm (которая пытается компенсировать наихудшие части последних). Он предоставляет контейнер для инъекций зависимостей и использует метаданные для включения автоматической проводки зависимостей. Это интересно, но немного bizzare в том, что идет на такие длины, чтобы избежать глобальных переменных Cairngorm, используя инъекции зависимостей, но затем использует глобальную переменную для централизованной диспетчеризации событий.

    Это те, которые я пробовал. Есть несколько других, о которых я слышал, но никто из них, которые, как мне кажется, широко не используются. Mate и Swiz были представлены на недавней конференции 360 | Flex, и есть видеоролики ( у людей Mate есть инструкции о том, как их смотреть )

    Проверьте Robotlegs .

    «Он обеспечивает клей, который ваше приложение должно легко функционировать развязанным способом. Благодаря использованию автоматической инъекции зависимостей на основе метаданных Robotlegs удаляет шаблонный код в приложении. Продвигая свободную связь и избегая использования синглтонов и статики в рамках Robotlegs может помочь вам написать код, который можно тестировать ».

    Я много раз видел подобные дискуссии. Обычно они начинаются с WHICH Flex framework, который вы используете. Не многие люди задают вопрос, ПОЧЕМУ, вам даже нужно использовать любую фреймворк поверх флеш-фреймворка.

    Я не сторонник использования какой-либо структуры MVC (Cairngorm, PureMVC) в коде Flex. Мате – лучший кандидат. По крайней мере, это просто понять и неинтрузивно. Я предпочитаю использовать расширенные компоненты
    à la carte. Мы создали и открыли источник из них (см. Clear.swc в Clear Toolkit по адресу http://sourceforge.net/projects/cleartoolkit/ .

    В первой главе нашей предстоящей книги O’Reilly «Enterprise Development with Flex» представлено подробное сравнение нескольких фреймворков Flex: http://my.safaribooksonline.com/9780596801465 .

    В настоящее время мы работаем над реализацией MVCS в среде Spring ActionScript . Он использует полную мощность контейнера «Инверсия управления», поэтому у вас есть централизованное управление зависимостями и они легко меняются. Он не очень предписывает, как вы это делаете, но предоставляет вам очень гибкую инфраструктуру.

    Если вы новичок в Spring ActionScript и MVCS, у меня есть вводный пост в моем блоге: http://www.herrodius.com/blog/158

    Я использую (и рекомендую) среду Swiz. Это не так сложно и PureMVC, но он выполняет свою работу. Более того, это контейнер IoC, и мне нравится IoC.

    Я никогда не использовал Mate, поэтому я не могу комментировать это. Но я рекомендую против Cairngorm. Cairngorm, как говорят, является открытым исходным кодом, но он действительно не поддерживается сообществом. Цикл выпуска также медленный. Я ожидал, что FOREVER для навигационной библиотеки выйдет из бета-версии.

    Имейте в виду, что Cairngorm является платформой, спонсируемой Adobe, и теперь размещается на сайте opensource.adobe.com. Также обратите внимание, что это на сегодняшний день самый распространенный среди разработчиков на данный момент.

    Если вы знаете Cairngorm и ищете работу, вы не ошибетесь.

    Cairngorm прост в использовании и хорошо документирован: http://www.cairngormdocs.org/

    Я рекомендую Cairngorm Diagram Explorer и classическую статью о Cairngorm .

    Я был новичком в Flex, когда узнал Cairngorm, но нашел это полезным и легким в освоении.

    MATE – это путь. Структура, которая делает то, что должна делать структура. Архитектура с декомпенсацией Простая малая эффективность печати стопы

    У меня есть свои сомнения в этих MVC-фреймах (Mate, Cairgnorm и т. Д.) С тем, как они реализуют карты событий и controllerы событий, это напоминает мне слишком много wxWidgets и других инструментов GUI такого рода.

    Однако было бы очень приятно, если Flex или одна из этих фреймворков MVC использует парадигму Signal / Slots, предлагаемую Qt.

    Я рекомендую использовать MATE для разработки отличных проектов и сложных проектов, таких как другие среды, Mate рассматривает общие архитектурные проблемы в Flex, такие как обработка событий, привязка данных и асинхронная обработка, но самая важная цель состоит в том, что это только tags, очень проста в использовании в наших приложениях Flex.

    Да Mate – лучшая инфраструктура для flex. Я использовал в одном приложении, которое имело несколько изменений как с точки зрения графического интерфейса, так и с помощью службы данных. Мне нужно было менять карту событий каждый раз, когда произошли какие-либо изменения.

    Mate также имеет реализацию MockService, что делает тестирование легким не преимуществом помощника, но приятно иметь его.

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

    Лучше всего конструировать свой собственный MVC, так это то, что он может быть легким или сложным, как вам нужно.

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

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

    Я собрал список Flex Framework с краткими описаниями и указателями для получения дополнительной информации о них в этом URL-адресе. http://practicalflex.blogspot.com/2011/08/list-of-adobe-flex-tools-frameworks.html URL-адрес может быть полезен для тех, кто ищет оценку фрейма для своего проекта.

    Оценив многие из фреймворков Flex, я обнаружил, что Swiz Framework проще и проще начать работу с новым разработчиком. Следовательно, он обеспечивает удобство обслуживания и расширяемость вашего приложения.

    Я работал над cairngorm и mate frameworks. Я начал работу с фреймворка cairngorm. Хорошо работать, но трудно понять вначале. Он умело обрабатывает события. Вы можете отправлять события из самих classов, и по ним будут учтены командные classы, связанные с каркасом. Существует единый repository для хранения данных, поэтому легко обрабатывать данные. Это одноэлементный class. Как только вы овладеете каркасом, работать проще. Mate с другой стороны – основанная на тегах. Это среда, управляемая событиями, поэтому все события обрабатываются в файле eventmap. Это прослушивание событий, вложение свойств и многое другое из этого classа. Вы можете отправлять события из classов, передавая им экземпляр диспетчера событий фреймворка. В этом случае вам не нужно использовать class singleton, например cairngorm. Вы можете привязать свойство в classе к представлениям, используя напрямую, используя инъекцию свойств, поэтому не нужно использовать какой-либо одноэлементный class. В матте все classы и представления свободны от кода frameworks, поэтому это развязанная структура. Легко перемещать компоненты из одного места в другое.

    Давайте будем гением компьютера.