Рейтинг
0.00
голосов:
0
avatar

Флексология  

0xF0, UTF и AMF

Что будет если строку, которая содержит в себе 0xF0, передать на сервер из клиента? Все строки которые прийдут на сервер, по спецификации AMF0 (AMF3) будут c UTF кодировкой.

Когда BlazeDS «парсит» сообщение, из DataInput читается строка следующим образом:


( Читать дальше )

Простой пример.

Я не хочу писать о том как установить Flex Builder и как его сконфигурировать. Причина не в моей лени, причина в том что если это человеку интересно он откроет гугл и получит тысячи ссылок как это сделать. Также писать пример использования какой либо компоненты просто скучно — есть TourDeFlex в котором подробно рассказано как пользоваться компонентами.

Мой коллега, архитектор и ведущий разработчик в крупнейшем проекте нашей компании как то попросил меня посмотреть материал который он подготовил для собеседования претендента на должность разработчика. Это был код и вопрос заключался в следующем — объясни мне пожалуйста что происходит в коде и чтобы ты изменил. Ответ подразумевал подробный анализ и, если это необходимо, рефакторинг кода. Пример приводить я не буду по двум причинам — я не могу выносить конкретные примеры из моей работы и само по себе задание достаточно сложное и подразумевает наличия не только знаний Flex, но и в общем практики программирования. Но сейчас вспомнив это задание я подумал что для человека который только начинает и которому это действительно интересно нужен совет. Как и что сделать. Не кусок кода, а обсуждение и выяснение причин и следствия.

( Давайте поиграем )

Вопрос сериализации.

Серверная сторона- Java, клиент — Flex.
Сериализация — процесс представления объекта в виде массива байтов.
Дисериализация — процесс обратный сериализации, т.е. восстановление объекта из набора байтов.

Для сериализации обьекта необходимо чтобы класс, инстансом которого является обьект, реализовывал интерфейс java.io.Serializable.

( В коде это выглядит так )

Прикольная задачка. Чисто на заметку для собеседований )

В общем ситуация такая. Сегодня по работе столкнулся. Если очень просто, то есть клиент флексовый и есть сервер (кажется .NET).

На клиенте происходит что то типа такого


  .....
   for (var i:int=0; i < 100; i++)
   {
     .....
     remoteObject.getResultFromService(new mx.rpx.Responder(resultHandler, faultHandler);
   ....
   }
   ....


То есть заходим в цикл, что то там делаем и инвокаем по результату этого того что то там на сервере ))))

Внимание знатоки ))) Сколько будет http/amf запросов )? Для тех кто знает что такое флеш — ответ скорее всего очевиден, но для того кто плавает, как показала практика, это ловушка которая очень сильно влияет на производительность всей системы.

special for PigmaLion (About Flex)

Adobe Flex — технология для создания Rich Internet Applications. Flex — это родственная Flash технология, основанная на описании интерфейса приложения (и обработчиков событий, связи источников данных с объектами и т. п.) с помощью диалекта XML — MXML. Flex приложение может компилироваться на сервере (для этого потребуется mod_flex.so или mod_flex.dll в зависимости от ОС и вебсервера), а может — из IDE или непосредственно из командной строки с помощью компилятора mxmlc (начиная с Flex 2), как и во Flash, результатом является файл swf, исполняемый Flash Player.

Flex — это большой набор классов (Flex SDK), содержащий многие не вошедшие во Flash компоненты. Достоинства Flex тесно связаны с его спецификой, MXML. Например, Flex компоненты для построения графиков сделаны удобными для использования и выглядят очень приемлемо для использования «как есть».

Интегрированная среда разработки Flex Builder 2, которая обеспечивает более высокую производительность, создана на свободно распространяемой платформе разработки Eclipse. Поскольку многие разработчики уже используют Eclipse при программировании на Java, Flex Builder 2 предоставляет им знакомую среду для создания и Java-приложений, и полнофункциональных клиентов.

Кроме того, возможна разработка Flex (ActionScript 3) проектов с помощью средств OpenSource — в частности, FlashDevelop (Windows), axdt, flex2ant (оба последних средства являются плагинами Eclipse и кроссплатформенны, однако по удобству работы с ними значительно уступают FlashDevelop).

Flex 2, помимо скорости разработки, предоставляет полные мультимедийные возможности Flash Platform: включая потоковое видео, звук (в том числе и программный), бинарные сокеты и большое число прочих новых возможностей ActionScript 3.

Благодаря Flex 2, веб-сервисы могут использоваться для связи с сервером при частом обращении к данным при небольшой полезной нагрузке. Для более ресурсоемких приложений Adobe предлагает программное обеспечение Flex Data Services 2 Express, которое может поддерживать связь между источником данных и уровнем представления. Flex Data Services 2 способен передавать данные с сервера на клиент. Серверный компонент может, например, извлечь данные из серверного приложения SAP и переслать их клиенту. Теперь функции Flex Presentation Server встроены в Flex Data Services.

Ещё одно неоспоримое достоинство технологии Flex, тесно связанное с достоинствами ActionScript 3 — это возможность OpenSource разработки Flash-проектов без использования Adobe Flash IDE, с помощью «чистого» программирования. При этом Flash-разработка становится принципиально доступна в том числе и на платформе Линукс. (Первые возможности такого рода были предоставлены при создания компилятора ActionScript 2 [mtasc mtasc.org/], но ActionScript 3 позволил сделать Flash-программирование гораздо более стройным и логичным).

Flex является высокоэффективной средой разработки с открытым кодом для создания и обслуживания веб-приложений, совместимых со всеми наиболее распространенными обозревателями, платформами персональных компьютеров и версиями операционных систем. Создание приложений Flex возможно только в среде Flex, однако ПО Adobe Flash Builder™ (ранее известное, как Adobe Flex® Builder™) позволяет ускорить разработку программного обеспечения при помощи таких функции, как интеллектуальное создание кода, интерактивная пошаговая отладка и визуальное проектирование макета интерфейса пользователя.

Policy file logging for the Flash player

Ошибка

Server reported an error Send failedChannel.Security.Error error Error #2048: Security sandbox violation:

многим кто сталкивался с Flex/Flash знакома. 2 минуты поиска в гугле и причина будет установлена. В 98% случаев будет проблема или с отсутствием crossdomain.xml или же с его неправильной конфигурацией. Но в 2% случаев — нейросекс. И тут на подмогу приходит Policy file logging for the Flash player.

Как включить?

Установите дебаггер версию Флеш плеера от 9,0,115,0. Найдите файл конфигурационный файл mm.cfg. Этот основной конфиг для дебаг версии флеш плеера инициализируется при запуске. Как правило этот файл находится в корневой директории пользователя.

Windows: C:\Documents and Settings\username
Windows Vista: C:\Users\username
Macintosh: /Users/username
Linux: /home/username

Если же его нет, просто создайте его и добавьте следующие строки:

PolicyFileLog=1 # Enables policy file logging
PolicyFileLogAppend=1 # Optional; do not clear log at startup

Если PolicyFileLogAppend стоит как 0, каждый новый запуск SWF файла будет перезаписывать содержимое лога.

Теперь собственно файл с логами — policyfiles.txt. Он не обязательно существует и плеер после включения логирования создаст его. Предполагаемые пути:

Windows: C:\Documents and Settings\username\Application Data\Macromedia\Flash Player\Logs
Windows Vista: C:\Users\username\AppData\Roaming\Macromedia\Flash Player\Logs
Macintosh: /Users/username/Library/Preferences/Macromedia/Flash Player/Logs
Linux: /home/username/.macromedia/Flash_Player/Logs

Запускаем любую флешку в дебаг плеере, закрываем плеер и идем в директорию с логами (см. выше).

Полезная фича. Подробная документация — www.adobe.com/devnet/flashplayer/articles/fplayer9_security_05.html
Не забываем смотреть статистику:

Яндекс цитирования