FLEX 3: Devo fornecer dados preparados ao meu componente ou fazê -lo processar dados antes da exibição?

StackOverflow https://stackoverflow.com/questions/2511796

  •  22-09-2019
  •  | 
  •  

Pergunta

Estou começando a aprender um pouco de flexão apenas por diversão e talvez para provar que ainda posso aprender algo novo :) Tenho uma ideia para um projeto e uma de suas partes é um componente de árvore que pode exibir dados de maneiras diferentes, dependendo de configuração.

A ideia

Há uma lista de objetos com propriedades como ID, data, hora, nome, descrição. E às vezes a lista deve ser exibida assim:

  1. Primeiro nível: data
  2. Segundo nível: tempo
  3. Terceiro Nível: Nome

E às vezes assim:

  1. Primeiro nível: ano
  2. Segundo nível: mês
  3. Terceiro Nível: Dia
  4. Quarto nível: tempo e nome

Por nível, quero dizer nível de ninho, é claro. Então, podemos ter anos, que têm meses, que têm dias, que têm horas e assim por diante.

O problema

Qual poderia ser a melhor maneira de fazer isso? Quero dizer, devo preparar dados para diferentes maneiras de nidificar fora do componente ou mesmo fora do Flex? Posso fazer isso no nível de serviço da Web em C#, onde pretendo ter a camada de acesso ao banco de dados e enviar para flexionar o Flex e pronto para exibir XML ou matriz de objetos. Mas eu me pergunto se isso não causará tráfego de rede adicional e talvez desnecessário.

Tentei invadir algum código no meu componente para converter meus objetos de dados em XML ou ArrayCollection, mas não conheço o suficiente e fiquei preso na eliminação de duplicatas ou obtendo dados específicos por algum valor chave. Geralmente, para fazer essas coisas, tenho STL com mapas, conjuntos e vetores e encontro matrizes flexíveis e até mesmo dicionário um pouco confusos (li referência de idiomas e pesquisei no Google sem nenhuma sorte significativa).

A questão

Então, para resumir as coisas: devo fornecer aos meus dados de componentes de árvore preparados apenas para o tipo de exibição escolhido ou devo tentar fazê -lo internamente com o componente interno (ou alguma classe auxiliar escrita no ActionScript)?

Pergunta adicional

Seria uma boa abordagem preparar modelos de dados separados para cada maneira de exibição e algum conversor para transferir dados entre eles e o modelo resultante seria o componente como um DataProvider? Ou talvez haja outra maneira inteligente de fazer isso e meus dados reorganizam automaticamente por si mesmos? :)

Foi útil?

Solução

Eu favoreceria o recebimento de um fluxo bruto de dados do seu serviço da Web e o processaria de várias maneiras dentro do cliente Flex (em uma classe de ações auxiliares). Aqui estão as vantagens que vejo:

1) Isso fornece uma boa separação de responsabilidades. Por exemplo, o serviço da web deve saber sobre os dados, mas não de que maneira eles serão exibidos.

2) Processamento mais rápido e capacidade de resposta ao cliente. As visualizações de troca não envolverão ligar para o seu serviço da web e o cliente flexível provavelmente será mais rápido processando os dados em si do que o tráfego extra na web

3) Maior disponibilidade. Sem chamadas extras para o seu serviço da Web, há menos chance de uma falha de rede.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top