PivotViewer - Parte 1
Este artigo mostra como criar coleções dinâmicas com o PivotViewer, o novo controle do Silverlight que permite realizar pesquisas no estilo Pivot, com a utilização de imagens e usando o famoso recurso de DeepZoom. Mostra também como criar coleções a partir de fontes de dados externas, como por exemplo, um banco de dados do SQL Server.
Para que serve
Se o leitor já conhece o Pivot Viewer e já sabe fazer coleções estáticas com a ajuda do plug-in do Excel (ver artigo introdutório sobre o Pivot Viewer na edição 79), esta é uma ótima oportunidade para aprender como criar coleções dinâmicas, em diversas fontes de dados.
Em que situação o tema é útil
Esse tema é especialmente útil para desenvolver aplicações que oferecem recursos de pesquisa e análise avançadas em bases de dados. Com ele as aplicações analíticas ganham uma enorme qualidade visual e de interação com o usuário.
Resumo do DevMan
O PivotViewer é uma das grandes novidades do momento, no que se diz respeito ao desenvolvimento de aplicações com alta interatividade do usuário. Esse controle do Silverlight permite criar coleções de dados que possam ser manipuladas visualmente. É basicamente uma evolução das ferramentas de consulta OLAP, como as tabelas dinâmicas do próprio Excel. Este artigo mostra a criação de coleções dinâmicas e a apresentação com o PivotViewer do Silverlight. É possível criar coleções de qualquer fonte de dados externa, basta ter uma imagem de exibição para cada item e dados para categorizá-los.
Na edição de número 79 da .NET Magazine, foi publicado um artigo introdutório sobre o controle PivotViewer do Silverlight. Se o leitor ainda não conhece esse novo controle do Silverlight, sugiro fortemente a leitura do artigo da edição 79, antes de continuar a ler este aqui. Lá são abordados todos os conceitos básicos do PivotViewer, bem como onde baixar e instalar o controle.
Este artigo tenta ser bem mais prático, já que toda a teoria que envolve o PivotViewer já foi bastante explorada no artigo anterior. Só para refrescar a memória, o funcionamento do controle pode ser visto em http://algorama.selfip.net/Filmoteca (Figura 1).
Figura 1. Coleção de filmes exibida no PivotViewer
No artigo anterior a esse, foi demonstrada a criação dessa coleção de filmes e como exibí-la no PivotViewer. Cada filme dessa coleção é representado por uma imagem, que é rearranjada dentro do Pivot, de acordo com as mudanças e escolhas feitas nas categorias (lado esquerdo), ordenação e tipos de exibição (lado superior direito).
Pode-se ainda fazer um zoom em qualquer imagem, a fim de visualizá-la por inteiro e consultar os detalhes de cada filme. Esse recurso de Zoom é realizado através do DeepZoom, antigo conhecido de aplicações Silverlight.
O DeepZoom é uma implementação para o Silverlight de uma tecnologia da Microsoft chamada Seadragon. Tanto o Seadragon quanto a ideia por trás do PivotViewer fazem parte de um programa da Microsoft chamado Microsoft Live Labs.
O DeepZoom permite navegar facilmente através de uma grande imagem, ou de um conjunto de imagens colocadas em conjunto. Essa navegação é feita simplesmente arrastando a superfície onde se encontram as imagens. Além disso, o principal recurso do DeepZoom é a possibilidade de fazer um Zoom In e um Zoom Out com a ajuda do botão de rolagem do mouse. Todo o mecanismo de renderização e carga das imagens em memória é controlado pelo DeepZoom.
O Controle PivotViewer do Silverlight possibilita as mesmas funcionalidades do DeepZoom nas imagens que compõem a coleção que está sendo visualizada no controle.
No exemplo da coleção de Filmes, foi criado o que é chamado de coleção estática (ou coleção simples). Nesse tipo de coleção é criado manualmente o arquivo XML que contém todos os dados da collection. Esse arquivo possui a extensão .CXML, um arquivo no formato XML que define como os itens de uma coleção são organizados.
Na verdade, não é necessário criar este arquivo “na mão”, mas com a ajuda de um plug-in do Excel, que permite montar as coleções e gerar os arquivos necessários. Para a criação de coleções para o PivotViewer, temos três estratégias possíveis, como você pode ver na Figura 2.
Figura 2. Três tipos de coleções que podemos criar
As Simple Collections são as que podem ser geradas com a ajuda do Excel, e que na verdade são chamadas de simples ou estáticas, pois a coleção é previamente criada e só será atualizada se houver uma intervenção futura.
As Linked Collections são várias coleções simples conectadas entre si. O controle PivotViewer permite a chamada de uma coleção a partir de links relacionados aos itens da coleção.
Por fim as Dynamic Collections, ou coleções dinâmicas, chamada assim porque ela é criada em tempo de execução. Isso permite gerar coleções por demanda, consultando as mais diversas fontes de dados.
Enquanto a Simple Collection é uma ótima solução para a coleção de Filmes, para uma coleção que precisa estar sempre atualizada, é necessária a utilização de uma coleção dinâmica. O que será visto nos próximos capítulos deste artigo é a criação de uma coleção dinâmica que irá expor dados de um banco de dados do SQL Server.
Álbum de fotos
O exemplo do artigo mostra no PivotViewer um Álbum de Fotos, que estão armazenadas em um banco de dados do SQL Server. São utilizados recursos para a criação de coleções dinâmicas do PivotViewer. O NHibernate cuida do acesso e persistência no BD. Uma página ASP.NET faz o upload das imagens.
A solução chamada AlbumFotos contém dois projetos, um chamado AlbumFotos.Dominio e outro AlbumFotos.Repositorio. Em AlbumFotos.Dominio estão as entidades EntidadeBase e Foto (Listagem 1).
Listagem 1. EntidadeBase e Foto
namespace AlbumFotos.Dominio.Entidades
{
public class EntidadeBase
{
public long Id { get; set; }
}
public class Foto : EntidadeBase
{
public string Caminho { get; set; }
public short Ano { get; set; }
public string Mes { get; set; }
public string Categoria { get; set; }
public string Evento { get; set; }
public string Cidade { get; set; }
public string Pessoas { get; set; }
public string Observacao { get; set; }
}
}
...
Confira outros conteúdos:
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,00
Total: R$ 708,00
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 64,00 /mês
Total: R$ 768,00
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.