RIA-приложение Fuzzle CMS*: разбор полётов *Fuzzle CMS – система управления Flash-сайтом на базе Flex и PHP.

Презентация:



Advertisements
Похожие презентации
Эрмитаж. Новая концепция интерфейса платформы «1С-Битрикс 9.5»
Advertisements

Ekaterina B. Egorkina,© VEELTECH.RU Построение страницы с интерактивным отчетом Простейшая страница с отображением данных в табличном виде. Построение.
Эрмитаж: концепция интерфейса в продукте «1 С-Битрикс: Управление сайтом»
Учня 11-А класса Алчевської інформаційно-технологічної гімназії м. Алчевськ Луганської обл. Малишева Андрія Едуардовича
D7 – новая платформа разработки сайтов и порталов Тушинский Юрий Технический директор Битрикс.
Создание электронных учебников
Учебный курс Технологии и средства разработки корпоративных систем Лекция 5 Создание графического интерфейса пользователя Лекции читает кандидат технических.
1 С:Документооборот СЭД «Документооборот Проф» Сравнение систем документооборота на базе платформы «1С:Предприятие 8.2» В данной презентации мы рассмотрим.
Ekaterina B. Egorkina,© VEELTECH.RU Построение страницы с интерактивным отчетом Простейшая страница с отображением данных в табличном виде. Построение.
Лекция 5 Управление памятью Виртуальное адресное пространство.
Симпозиум 2008 Сергей Шутов, ДИМАС Борис Егоров, Интерсистемс Практика использования Zen и Прототип-6.
АлтГТУ им И. И. Ползунова Проектирование и реализация каркаса распределенной системы мониторинга и диспетчеризации процессов гетерогенной среды Данил Старовойтов,
Использование AJAX для асинхронной передачи данных. Что такое AJAX. Как использовать. В чем преимущество. Примеры использования на крупных сайтах. Выполнила:
Разгони свой сайт Лекция 4: Объединение файлов Мациевский Николай 1 / 22 webo.in.
Создание сайта с помощью системы Яндекс Народ ©Лабутин В.Б.,канд.пед.наук, Кафедра ИКТ, ГБОУ АСОУ Быстрый старт.
Система программ «1 С: ПРЕДПРИЯТИЕ» Структура Элементы Средства.
Окна и формы. Компоненты. Пуск => Все программы => Lazarus => Lazarus. при этом запускается оболочка создания приложений, называемая интегрированной средой.
Разработка больших сайтов Сумин Андрей Разработчик интерфейсов
Мы познакомимся с простыми инструментами и методами разработки веб-страниц. На примере рассмотрим, как создать фрагмент сайта, содержащего репертуар кинотеатра.
Транксрипт:

RIA-приложение Fuzzle CMS*: разбор полётов *Fuzzle CMS – система управления Flash-сайтом на базе Flex и PHP

История 1: прокси-классы

Серверных классов может быть много: – Работа с файлами; – Работа со страницами; – Работа с фотогалереей; – Работа с настройками и т.д. Прокси-классы абстрагируют вызовы процедур серверных классов; Автоматически генерируются в AMFPHP!

История 1: прокси-классы Пожелание 1: общая авторизация, автобиндинг;

История 1: прокси-классы Пожелание 2: вызов функции «по исполнению» – callgetGallery(rootid:Object, onDataReceive: Function = null) – onDataReceive(result:Object):Object { return new XML(String(result)); } Хорошо работает в случаях, когда нужно преобразовать, полученную строку в XML или список; Позднее было понято, что Event-структура была бы логичнее; однако, текущее решение позволяет определять callback-функции проще.

История 1: прокси-классы Пожелание 3: обработка состояний запроса (удался/не удался) – Создаются специфичные серверные функции, возвращающие статус запроса; – Теперь результат каждого запроса - массив

История 1: прокси-классы Пожелание 4: кеширование!(хотя бы на время одной сессии) – Специальным статусом указываем о необходимости кешировать результат.

История 1: прокси-классы Пожелание 5: создать постоянный кеш с обновлением через указанное время – Решение: автогенерация SharedObject; Пожелание 6: хочу управлять кешем! – Решение: набор специальных функций очистки кеша; вызов событий при вызове определенных функций; Пожелание 7: отслеживание выполнения удаленных операций. – Решение: создание флага isRemoteCall, специальной процедуры errorHandler.

История 1: результат Что мы получаем в результате автоматической генерации: – Единую аутентификацию; – Возможность автоматически использовать результаты запроса (автобиндинг); – Отслеживать и преобразовывать результаты; – Генерировать ошибки на сервере с автоматической обработкой на клиенте; – Кешировать результаты на время сессии/в постоянной памяти, управлять кешем при определенных событиях; – Отслеживать выполнение запроса (например, блокировать кнопки на время его выполнения) Пример из жизни: клиентская часть одного из проектов включает строк кода из них занимают прокси-классы.

История 2: модули и виджеты Или как мы «налажали» Шаг 1: Fuzzle CMS – как модульная система; – Deep Linking (навигация через подмену строки браузера, SWFAddress) – В нашем случае: / / – Предполагалось, что каждый модуль – отдельное Flex-приложение

История 2: модули и виджеты Шаг 2: Внедрение модуля визуального редактирования страниц. – Позволяет пользователям размещать блоки на странице в произвольном порядке; – В него встроены следующие виды блоков: Текстовый, SWF, картинка-со-ссылкой, видео. – Для каждого блока можно задавать оформление и анимацию появления на странице. Клиенты довольны. Очень удобно, очень довольны.

Клиенты спрашивают: а почему, собственно, нельзя все сделать таскаемыми блоками? модули не пригодились…

История 2: модули и виджеты Решение: создание библиотеки виджетов. – SWF-библиотека с внедренными классами; – 2 класса на виджет – собственно, визуальный блок, и его редактор. – Блок и редактор принимают на вход конфигурационный XML. – Редактор может включать в себя компоненты Fuzzle: выбор файла, ссылок и т.д.

История 2: модули и виджеты

Пример виджета (Картинка/SWF)

История 2: модули и виджеты Пример редактора виджета (Картинка/SWF)

История 2: модули и виджеты Как загружать библиотеки? – К каждой библиотеке приписан конфигурационный XML. В нем может быть задано несколько виджетов, например: Standart com.fuzzle.standart.BlockText com.fuzzle.standart.BlockTextEditor Text block

История 2: модули и виджеты Плюсы решения: – Разработка сторонними разработчиками виджетов и «прозрачное» их подключение; Бонус для разработчиков: можно зашифровать виджет так, чтобы библиотека работала только на определенном сайте. – Простота разработки (два Flex-класса); – Унификация интерфейса для пользователя. Минусы: – Необходимость подгружать ряд дополнительных файлов после загрузки движка; Одно из решений: уменьшение объема путем исключения (External) стандартных Flex-библиотек. – Хуже работает DeepLinking, например, на фотогалереях (внутри блока изменения строки не предусмотрено) – Не работает стандартная локализация.

История 3: как подключать дизайн? (и тут мы промахнулись) Идея 1: каждый Flash-сайт уникален, и под каждый создается отдельный Flex-загрузчик с соответствующими меню, местом подгрузки модулей и т.д. – При этом поддерживаются «растягивающийся» дизайн.

История 3: как подключать дизайн? На практике: – Появился Template1Loader, подгружающий «в себя» SWF-файл на задний план; – Он очень всем понравился, поскольку можно было создавать дизайн отдельно от Flex. – Template1Loader разрастался фичами, которые желательно было поддерживать и другими загрузчиками. – Код инициализации постоянно обновлялся, что требовало обновления всех загрузчиков и занимало кучу времени. – (Последнее) Идеология расстановки блоков вынудила отказаться от «растягивающихся» дизайнов.

Результат? Остался только один загрузчик, у которого мы решили сделать много параметров конфигурации

История 3: дизайн

История 3: как подключать дизайн? Как устроен дизайн? фон основной дизайн место подгрузки модулей

История 3: как подключать дизайн? Как происходит взаимодействие с кодом? – Как сделать кнопку? – а) Делаем кнопку средствами Flash – б) Пишем следующий обработчик: getClassByAlias("aliasXmLoader").xmLoader.goToURL( "thissite://XmAdvPage-main/TestPage"); Ядро доступно через getClassByAlias. Соответственно, доступны и разные его возможности.

История 3: как подключать дизайн? Плюсы: – Простота разработки дизайна; Минусы: – Наличие двух слоев (дизайна и содержимого страницы) приводит к тому, что вывод поверх содержимого страницы затруднен (например, при разработке выпадающего меню) – Сложность отслеживания разных событий (начала и конца анимации между страницами и т.д.)

Архитектура (целиком)

Результаты Три истории: – Генерация клиентских классов позволяет здорово экономить время; – Людям нравится удобство и простота при создании: Дополнительных модулей; Дизайна. – Ради удобства они готовы поступиться функциональностью.

Полезные ссылки Сайт системы: Создание и установка виджетов: – - документация программисту – cms.ru/Programmistu/Sozdanievidzhetov - пример Flex-виджета cms.ru/Programmistu/Sozdanievidzhetov Интеграция дизайна: – - документация дизайнеру