Зачем использовать Flex Framework, такой как Cairngorm или Mate? - PullRequest
2 голосов
/ 13 февраля 2010

Из того, что я понимаю, инфраструктура уменьшает сложность в таких общих областях, как система входа в систему. Я использую ASP.NET MVC на работе и проделал некоторую работу в Zend Framework, но не понимаю, как инфраструктура помогает в разработке на стороне клиента. Причина, по которой ASP.NET MVC используется на работе, заключается в модульном тестировании. Помогает ли в этом и фреймворк Flex?

Пожалуйста, дайте мне знать, почему я должен или не должен использовать фреймворк с Flex?

Ответы [ 4 ]

4 голосов
/ 13 февраля 2010

Краткий ответ: это зависит от структуры. :) Мои мысли ниже:

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

Это, как говорится, дополнительная структура, которая помогает облегчить этот подход, может абсолютно обеспечить ценность. Я бы порекомендовал Mate или Swiz, потому что я думаю, что они достигают этой цели. Они не пытаются изобретать велосипед или заменять части API Flash / Flex; вместо этого они дополняют их. Функции внедрения зависимостей значительно упрощают предоставление данных для ваших представлений, но без привязки их к какой-либо среде. Существует ряд утилит, облегчающих работу с удаленными службами. У них также есть утилиты для облегчения тестирования или даже сохранения данных в общих объектах.

Я также работал с Cairngorm в прошлом и не рекомендовал бы это. CG печально известен тем, что требует создания множества классов, соответствующих API-интерфейсам, специфичным для CG, и требует, чтобы вы использовали многие из их реализаций Singleton, которые делают ваше приложение хрупким и трудным для тестирования в изоляции. Он основан на ряде шаблонов J2EE, которые потеряли популярность в сообществе Java как минимум 5 лет назад.

Я немного читал о PureMVC, и хотя я не могу говорить о его инвазивной природе, я думаю, что изобретать модель событий (называемую «уведомлениями») глупо и связывает вас с их структурой. Конечно, вы можете сказать, что это «изолирует» вас от модели событий Flash на случай, если она изменится, но я бы сказал, что шансы PureMVC изменить свою модель уведомлений гораздо более вероятны, чем Adobe, которая изменит модель событий. :)

1 голос
/ 15 февраля 2010

Я использую PureMVC (который является MVC-фреймворком для Flex) для моих более крупных приложений. Как указано 99 миль , это зависит от размера приложения.
Если вам просто нужно сделать (относительно) небольшой инструмент / приложение, вы можете запустить его только с помощью Flex. Но если вы хотите создать большое и сложное приложение, вам может пригодиться Framework.

Основная причина, по которой я использую PureMVC во Flex, заключается в архитектуре Model-View-Controller. Это отделяет уровень представления от бизнес-уровня и много работает с событиями и уведомлениями . Это дает вам большой контроль над созданием повторно используемых классов / элементов управления в Flex относительно простым способом.

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

Более подробную информацию об архитектуре MVC можно найти здесь . Надеюсь, это поможет:)

1 голос
/ 13 февраля 2010

Вы можете найти значение в использовании каркаса, если:

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

Вот отличная статья о фреймворках Flex. Сравнение Flex Framework

И я согласен с выводом ... Mate - отличный Flex Framework.

Еще одна интересная структура, не упомянутая в этой статье, - Spicefactory's Parsley .

1 голос
/ 13 февраля 2010

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

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

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

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

Что касается фреймворков Flex, мне лично нравится PureMVC. Честно говоря, единственный, кому я уделил достаточно времени, - это Кейрнгорм. Но мне нравится PureMVC, потому что он мне кажется правильным, но также он, как правило, не сильно зависит от встроенных классов Actionscript. Например, он использует свою собственную систему уведомлений. Поэтому, если уведомления изменятся во Flex, они все равно будут работать в вашем приложении PureMVC. Кроме того, создатель Клифф очень полезен на своих форумах, и он действительно увлечен этим. И документация отличная.

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

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