Работа с веб-приложением Adobe Flex и настольным приложением - PullRequest
0 голосов
/ 28 января 2011

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

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

Итак, вот мой план для этого:

  1. создать проект библиотеки.
  2. написать класс, подобный httpservice для взаимодействия с локальной базой данных в воздухе.
  3. серединауровень, который заботится о вызове правильной службы (httpservice или пользовательской службы).
  4. Пользовательский интерфейс, который взаимодействует только с указанным выше средним уровнем для данных.

Может кто-нибудь подсказать, если этовыполнимо или можете поделиться своим предыдущим опытом или есть какая-то другая идея?

Ответы [ 2 ]

1 голос
/ 28 января 2011

Ваш подход правильный. Вам нужно будет создать абстракцию сервисов, с которыми приложение будет взаимодействовать, а затем предоставить 2 различные реализации: 1 для веб-приложения, которое может использовать удаленное взаимодействие через AMF, веб-службы или службы http, и 1 для настольного приложения, иметь реализацию SQLite.

Этот подход является в основном реализацией шаблона стратегии, который является базовым шаблоном в фреймворке Spring ActionScript . Включен Operation API , который поможет вам в создании интерфейсов для классов обслуживания, так как они будут иметь асинхронные подписи. Приятно то, что есть также поддержка создания реализаций заглушки, так что вы можете протестировать свое приложение, не полагаясь на реальную реализацию для веб-клиента или клиента рабочего стола. Платформа также предоставляет другой механизм конфигурации, так что вы можете развернуть свое приложение и предоставить стратегию, которую необходимо использовать во время выполнения.

Я говорил о Spring ActionScript, в котором я обсуждаю Operation API: http://parleys.com/#sl=25&st=5&id=1566

В коде ваш сервисный код может выглядеть примерно так:

// interface
public interface IUserService {
  function getUserByID(id:String):IOperation;
}

// implementation A
public class UserServiceA implements IUserService {
  public function getUserByID(id:String):IOperation {
    // return implementation specific operation
  }
}

// implementation B
public class UserServiceB implements IUserService {
  public function getUserByID(id:String):IOperation {
    // return implementation specific operation
  }
}

Конечным результатом является то, что ваше приложение общается с IUserService и ничего не знает о реальных реализациях. Реализации могут быть сконфигурированы и управляться в контейнере Spring ActionScript и автоматически вводиться для вас.

0 голосов
/ 28 января 2011

Это хорошее начало. Вам также необходимо изолировать зависимый от платформы код.

См. Этот пост для некоторых деталей:

File () FileStream в веб-приложении

...