Flex Databinding Array к Canvas как объектам, общая архитектура клиента - PullRequest
0 голосов
/ 28 мая 2009

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

Чтобы изо всех сил пытаться правильно спроектировать приложение, я хочу иметь службу синхронизации, которая опрашивает веб-сервер на предмет изменений и обновляет объекты массива заметок. Проблема в том, что моя заметка соответствует компоненту mxml, также известному как компонент SingleNote. Есть четыре разных случая, когда а. заметка обновляется из опроса сервера, в этом случае я хочу singlenote для обновления настроек б. заметка добавляется в массив с сервера, в этом случае необходимо создать новый SingleNote с. SingleNote добавляется от клиента, в этом случае примечание добавляется в массив и отправляется обратно на сервер д. SingleNote - это изменение от клиента, в этом случае примечание обновляется в массиве и отправляется обратно на сервер

Свойства: SingleNote (ширина, X, Y, текст).

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

1 Ответ

1 голос
/ 20 июля 2009

Как выглядит ваша база данных? Есть ли в нем таблица заметок?

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

В лучшем случае, если у вас уже есть DTO / VO, который отображает сущность заметки из вашей базы данных в класс. На стороне клиента вы можете использовать поле id каждого объекта, чтобы узнать, сохранено ли оно в базе данных или нет.

Итак, что бы я сделал:

Создайте NoteManager на стороне клиента, который:

  1. хранит ваш массив объектов Note
  2. имеют методы, которые управляют состоянием этого массива: hasNote (idNote: int), addNote (note: Note), removeNote (idNote: int), updateNote (idNote: note), ...

Когда вы изменяете состояние этого массива, вы должны обновить ваши представления. В зависимости от того, какую платформу вы используете (если вы ее используете), это можно сделать разными способами, но общая идея заключается в использовании шаблона Observable для обновления вашего представления после изменения модели. (Где-то у вас также может быть карта, отображающая объект заметки на отображение его компонента)

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