Flex 3: я должен предоставить подготовленные данные для моего компонента или сделать его для обработки данных перед отображением? - PullRequest
0 голосов
/ 25 марта 2010

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

Идея

Существует список объектов, имеющих свойства, такие как идентификатор, дата, время, имя, описание.И иногда список должен отображаться так:

  1. первый уровень: дата
  2. второй уровень: время
  3. третий уровень: имя

и иногда так:

  1. первый уровень: год
  2. второй уровень: месяц
  3. третий уровень: день
  4. четвертый уровень: время иимя

Под уровнем я подразумеваю уровень вложенности, конечно.Таким образом, у нас могут быть годы, у которых есть месяцы, у которых есть дни, у которых есть часы и т. Д.

Проблема

Что может быть лучшим способом сделатьЭто?Я имею в виду, должен ли я подготовить данные для различных способов вложения за пределы компонента или даже за пределы flex?Я могу сделать это на уровне веб-сервисов в C #, где я планирую создать слой доступа к базе данных и отправить его в удобное для работы и готовое к отображению XML или массив объектов.Но мне интересно, не вызовет ли это дополнительный и, возможно, ненужный сетевой трафик.

Я пытался взломать некоторый код в моем компоненте, чтобы преобразовать мои объекты данных в XML или ArrayCollection, но я недостаточно знаком с Flex и застрял на удалении дубликатов или получении определенных данных по некоторому значению ключа.Обычно для таких вещей у меня есть STL с картами, наборами и векторами, и я считаю, что Flex-массивы и даже словарь немного сбивают с толку (я читал справочник по языку и гуглил без особой удачи).

Вопрос

Итак, подведем итог: я должен предоставить данные своего компонента дерева, подготовленные только для выбранного типа отображения, или я должен попытаться сделать это внутренне внутри компонента (или некоторый вспомогательный класс, написанный на ActionScript)?

ДОПОЛНИТЕЛЬНЫЙ ВОПРОС

Было бы хорошим подходом подготовить отдельные модели данных для каждого способа отображения и некоторый преобразователь для передачи данных между ними, и полученная модель будетбыть привязанным к компоненту как dataProvider?Или, может быть, есть какой-то другой умный способ сделать это, и мои данные автоматически реорганизуются?:)

1 Ответ

0 голосов
/ 25 марта 2010

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

1) Это дает хорошее разделение обязанностей. Например. веб-сервис должен знать о данных, а не о том, как они будут отображаться.

2) Более быстрая обработка и отзывчивость клиента. Обмен представлениями не потребует вызова вашего веб-сервиса, и клиент Flex, скорее всего, будет быстрее обрабатывать сами данные, чем дополнительный веб-трафик

3) Увеличение доступности. Без дополнительных звонков на ваш веб-сервис вероятность сбоев в сети будет меньше.

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