logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Fev 23

Primeira aplicação WP7 com Expression Blend

Escrito por Alexandre Tadashi em .NET, 1, 3d, 4, 6, Air, Animação, Animações, Aplicativos, app, AR, Artigo, auto, back, bar, BI, Blend, botão, Botões, browser, C#, carregar, checkBox, código, control, Controles, Controls, Curso, Cursos, dados, demo, Desenvolvimento, Design, designer, Desktop, developer, Diversos, DRE, err, event, Evento, events, exemplo, expression, Expression Blend, Ferramenta, Flex, for, fundo, git, gratuito, html, ide, IE, if, image, imagens, int, interface, Introdução, layout, lista, menu, mg, mobile, movimento, O, on, Orientação, Outros, Partilha, processo, produtividade, programação, Projetos, RIA, Ria’s Geral, Scroll, silverlight, tag, Tecnologia, Tema, Teste, tool, Tutorial, UI, UX, Vários, Ved, Vídeo, Visual Studio, Visual Studio 2010, web, window, windows, WPF, XAML, XML, XP @ 02 23rd, 2011 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

imageNeste tutorial vou criar uma pequena aplicação utilizando o Expression Blend 4,  será implementado o básico para quem está começando com o desenvolvimento de projetos para o Windows Phone 7 utilizando o Expression Blend 4.

No artigo anterior, vimos como preparar o ambiente gratuito de desenvolvimento para criar aplicações mobile utilizando o Windows Phone 7, o Expression Blend é instalado junto com o Windows Phone Developer Tools, saiba mais em Introdução ao Windows Phone 7.

Se você ainda não conhece o Expression Blend 4, talvez tenha uma dúvida, quando utilizar o Visual Studio 2010 e quando utilizar o Expression Blend ?

Tudo que é produzido em XAML pelo Expression Blend também pode ser reproduzido no Visual Studio 2010, porém, a criação de aplicativos visualmente ricos com as novas tecnologias trouxe novas possibilidades ao programador, como o suporte a elementos multimídias e animações, a possibilidade de modificar como as informações são apresentadas nos elementos visuais e outros diversos recursos, com isso houve a necessidade de ter uma ferramenta voltada ao designer da aplicação, onde o foco seria a camada visual.

O Expression Blend chegou para suprir essa necessidade, dessa forma o designer da aplicação tem uma ferramenta com recursos mais sofisticados e visuais, com o Blend a maioria das tarefas são executadas de forma visual, sem que seja necessário digitar dezenas de códigos, por exemplo, o Expression Blend tem total suporte a criação de animações, possuindo uma timeline, onde o designer poderá acionar a animação e gravar todos os movimentos que fizer com o mouse na aplicação, quando finalizar, todo o código XAML é gerado automaticamente pelo Blend, esse é somente um exemplo do qual a ferramenta gera produtividade quanto à criação visual da interface.

O Expression Blend é totalmente integrado ao Visual Studio 2010, é possível trabalhar com as duas ferramentas abertas com o mesmo projeto, que as modificações são atualizadas em cada ferramenta.

Criando uma aplicação no Expression Blend

A aplicação do tutorial vai listar algumas urls em um ListBox, quando o usuário clicar em um item, a aplicação será redirecionada para outra página em XAML, essa página vai  conter um browser e receberá o link a ser carregado.

Inicie o Expression Blend e crie uma aplicação do tipo Windows Phone Application, Figura 1, na aba Projects, temos os arquivos iniciais da aplicação gerados pelo Expression Blend, a aplicação tem três arquivos de imagens, e dois arquivos do tipo XAML, o XAML (eXtensible Application Markup Language), é uma marcação similar a marcação XML, é utilizada no Silverlight tanto para aplicações WEB como para o WP7, e também é utilizada para criar aplicações desktop com o WPF para o ambiente Windows.

Com a marcação XAML podemos criar layouts de telas separadas do código da linguagem de programação C#, possibilitando assim, um menor acoplamento entre o design e a programação, dessa forma um designer poderia trabalhar no design das telas utilizando somente o XAML, enquanto o programador faz o modelo da aplicação.

Resumidamente o arquivo App.xaml é usado pela aplicação silverlight para declarar recursos compartilhados no projeto, já o arquivo MainPage.xaml é o arquivo principal da aplicação, sua representação visual é a que aparece no centro da tela, mostrando uma interface com um layout inicial de um aplicativo WP7.

clip_image002

Figura 1 – Windows Phone Application

Layout Control

Na aba Objects and Timeline, temos a hierarquia dos elementos visuais da aplicação, em nosso projeto, inicialmente vemos 3 itens, o PhoneApplicationiPage, que é a pagina principal do layout, onde todos os elementos serão inseridos, o ApplicationBar, é uma área reservada para um barra onde podemos personalizar botões e menus para serem usados na aplicação, em seguida temos o LayoutRoot, este é o nome dado ao Layout Control Grid da aplicação default.

Um Layout Control serve para auxiliar no posicionamento de elementos na tela, existem vários controles de layout disponíveis em Silverlight, cada layout control tem sua utilidade dependendo do objetivo, o layout control Grid é um dos mais flexíveis, semelhante a uma tabela HTML, esse controle permite que seja criado linhas e colunas,  além de definir o tamanhos e a altura de cada linha e coluna.

Abaixo segue os tipos de Layouts disponíveis para serem utilizados no Windows Phone 7:

  • Grid – Layout mais flexível , é possível inserir os elementos dentro de linhas e colunas.
  • Canvas – permite posicionar os elementos em posições fixas dentro do Layout Control, ou seja, você pode definir uma posição exata que o elemento deve ficar no Canvas, fornecendo suporte ao posicionamento absoluto dos elementos filhos.
  • StackPanel – Adiciona os elementos em uma pilha, com orientação vertical ou horizontal.
  • ScrollViewer – Habilita barras de rolagens vertical e horizontal
  •  Border – Insere uma borda em um único elemento interno.

 Veja neste link os Layout Controls na prática, para facilitar o entendimento eu digitei o código XAML abaixo da tela principal, refletindo as modificações, conforme digitadas. (video wmv ).

Conhecendo o MainPage.xaml

A tela inicial da aplicação contém um layout Grid principal, chamado de LayoutRoot , com um fundo transparente. Em seguida temos a definição de duas linhas dentro do layout. Dentro do layout control Grid chamado LayoutRoot temos outro layout control do tipo StackPanel, note que o StackPanel está definido na linha zero do Layout Control Grid acima, utilizando a propriedade Grid.Row = ”0”. Dentro do Stackpanel temos três elementos, um TextBlock chamado ApplicationTitle, onde na propriedade Text você poderá modificar o nome da aplicação para qualquer nome que desejar , em seguida temos outro TextBlock com nome de PageTitle, onde podemos também na propriedade Text  modificar o título da página. O Terceiro elemento é outro Layout Control do tipo Grid com o nome de ContentPanel, é nele que o conteúdo da sua aplicação será criado no projeto.

Listagem 1. XAML do código default

clip_image002[15]

Mas tudo isso não é uma regra, em nossa aplicação de exemplo queremos aproveitar o máximo da tela do Windows Phone 7, vamos remover todo o conteúdo do primeiro layout Grid, o LayoutRoot, em seguida troque o tipo de layout, para isso, selecione com o botão direito do mouse no layout control e em Objects and Timeline, clique em Change Layout Type, Figura 3, e altere para um StackPanel. Adicione um ListBox no StackPanel,  o código completo está na Listagem 2.

Vamos também remover a barra do system tray do WP7, onde aparece o nível da bateria, sinal e hora, para isso, selecione o item PhoneApplicationPage na aba Objects and Timeline e nas propriedades, remova o checkbox Show SystenTray, Figura 2, com isso temos todo o espaço disponível da tela para utilizar em uma aplicação.

clip_image004

Figura 2 – Removendo o SystemTray

clip_image006

Figura 3 – Alterando o Layout Control

Listagem 2. XAML da aplicação

clip_image008

Inserindo dados de exemplo

Para criar o nosso exemplo seria necessário carregar informações de algum provedor de dados, o designer da aplicação não precisa conhecer como esses dados serão implementados, pois o ideal é que eles sejam ligados de forma menos acopladas possível, ou seja, que cada camada tenha suas responsabilidades bem definidas, para facilitar essa tarefa ao designer, e para auxiliar nos testes de dados em interfaces XAML, o Expression Blend disponibiliza uma forma de criar dados de exemplo,  deixando ainda os elementos visuais corretamente ligados as objetos que contém os dados.

Para criar uma coleção de dados de exemplo e ligar ao ListBox , clique na aba Data e no ícone Create Sample Data, digite o nome do DataSource, clique nas propriedades e modifique conforme desejar, depois arraste e solte a coleção para dentro do ListBox e você terá uma ListBox ligada a uma coleção de dados. Como esse passo é 100% visual no Expression Blend, veja neste vídeo rápido o processo passo a passo.

 ( video wmv) – Create Sample Data

clip_image002[17]

Figura 4 – ListBox com dados de exemplo

Navegação de Páginas

Para finalizar o exemplo, vamos inserir um evento SelectionChanged no ListBox, assim quando o usuário selecionar um item no Listbox vai abrir outra página com o link selecionado carregado no browser, para inserir o evento, selecione o ListBox, na aba properties, clique  no ícone Events e dê um duplo click no evento SelectionChanged, Figura 5.

clip_image002[19]

Figura 5 – ListBox – Criando um evento SelectionChanged

Dentro do evento SelectionChanged do ListBox,  primeiro vamos obter o item selecionado no ListBox através da propriedade SelectedItem, depois através do recurso NavigationService.Navigate, vamos navegar até a outra página, passando como parâmetro a url que será carregado no Browser, Listagem 3. Adicione uma página em seu projeto com o nome de PhonePageBrowser, adicione um elemento WebBrowser e o método onNavigatedTo, esse método será responsável por obter a url e carregar o browser com o link passado, Listagem 4.

Listagem 3. XAML da aplicação

clip_image004[7]

Listagem 4. XAML da aplicação

clip_image006[7]

Conclusão

O Expression Blend é um poderoso aliado para a criação de aplicativos para o Windows Phone 7 com Silverlight,  vimos de forma superficial como criar uma aplicação na ferramenta, além de conhecer um pouco sobre os layout controls, sample data e navegação de páginas.

Jan 29

Resolvendo problemas com Rails, RVM, openssl e readline no Ubuntu

Escrito por Elvis Fernandes em 1, 2009, 4, 6, aplicacao, app, AR, arte, BI, checkBox, checkboxes, configuração, CRUD, Desenvolvimento, Dica, DRE, err, erro, error, exemplo, for, habtm, IE, instalação, int, Introdução, live, NaN, O, on, permalink, problema, problemas, pt, rails, rest, restfulx, RIA, Ria’s Geral, RoR, ruby, ruby on rails, screen, Screencast, site, ssl, tag, UI, uint, update, XML @ 01 29th, 2011 | via http://www.elvis.eti.br | Sem comentários
Elvis Fernandes
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Se você está começando a trabalhar com RVM no Ubuntu, pode encontrar alguns problemas de configuração quando tentar executar o script/console (Rails 2.x), como por exemplo:

no such file to load -- readline (LoadError)

ou ainda

no such file to load -- openssl (LoadError)

O site oficial do RVM oferece uma solução, mas que não se aplica a todos os ambientes.

Para resolver esse problema é necessário fazer o seguinte:

1) Instale as bibliotecas do openssl e do readline via apt:

$ sudo apt-get install libreadline6 libreadline6-dev openssl libssl0.9.8 libssl-dev libopenssl-ruby

2) Remova a versão instalada do Ruby via RVM e reinstale indicando os diretórios do readline e do openssl:

$ cd 
$ rvm remove 1.8.7
$ rvm install 1.8.7 --with-readline-dir=/usr/include/readline/ --with-openssl-dir=/usr/include/openssl/

Este exemplo aplica-se à versão 1.8.7 do Ruby no Ubuntu 10. Faça as adaptações necessárias para adequar ao seu ambiente. Esta solução foi testada com a versão 2.3.10 do Rails – acredito que pode ser aplicada a outras versões também.

Funcionou com você em outras configurações? Deixe um comentário!

Posts relacionados

  • Instalando sua aplicação Rails/RestfulX (e as gems) na DreamHost Installing your Rails/RestfulX app (and its gems) at Dreamhost“>Instalando sua aplicação Rails/RestfulX (e as gems) na DreamHost Installing your Rails/RestfulX app (and its gems) at Dreamhost (2)
  • CRUD com o RestfulX – aplicação funcionandoCRUD with RestfulX – live application“>CRUD com o RestfulX – aplicação funcionandoCRUD with RestfulX – live application (2)
  • CRUD com o RestfulX: Parte 2/2 – Create, Update e DeleteCRUD with RestfulX: Part 2/2 – Create, Update, and Delete“>CRUD com o RestfulX: Parte 2/2 – Create, Update e DeleteCRUD with RestfulX: Part 2/2 – Create, Update, and Delete (2)
  • Instalação “avançada” do RestfulX no seu projeto Rails“Advanced” installation of RestfulX into your Rails app“>Instalação “avançada” do RestfulX no seu projeto Rails“Advanced” installation of RestfulX into your Rails app (0)
  • Introdução ao RestfulXIntroduction to RestfulX“>Introdução ao RestfulXIntroduction to RestfulX (0)
  • Screencast: desenvolvendo uma aplicação com RestfulX em menos de 5 minutos“>Screencast: desenvolvendo uma aplicação com RestfulX em menos de 5 minutos (8)
  • Usando checkboxes em uma relação habtm no Rails“>Usando checkboxes em uma relação habtm no Rails (6)
  • Instalando o Rails 2 no Debian“>Instalando o Rails 2 no Debian (3)
  • Criando XML no Rails com caracteres acentuados“>Criando XML no Rails com caracteres acentuados (0)
  • RestfulX – Introdução, instalação, configuração e primera aplicação em 5 minutos“>RestfulX – Introdução, instalação, configuração e primera aplicação em 5 minutos (16)

© Elvis for Elvis Fernandes, 2011. |
Permalink |
Nenhum comentário |
Adicione ao
del.icio.us


Tags: openssl, Rails, readline, ruby on rails, rvm, ubuntu

Set 7

Princípios do Pensamento Lean

Escrito por Edgard Davidson em 1, 4, 6, Access, Agile, análise, api, app, AR, Arquitetura, arte, auto, back, Banco de Dados, bar, BI, business, checkBox, class, cliente, control, Curso, dados, desempenho, Desenvolvimento, Desenvolvimento de Software, Design, development, Dica, Documentação, Download, economia, Excel, exemplo, flash, Flex, for, function, fundo, git, gmail, Google, html, ide, IE, if, image, int, Java, Javascript, kit, lista, live, Livro, Mac, Mestrado, mg, mudanças, NaN, O, on, oop, player, problema, problemas, processo, produto, Projetos, pt, RIA, Ria’s Geral, site, Software, swf, TAT, Tecnologia, Tema, tool, toolkit, UI, usabilidade, UX, wave, web, XP, zend @ 09 7th, 2010 | via http://edgarddavidson.com | Sem comentários
Edgard Davidson
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

O nome “Pensamento Lean” nasceu nos anos 90 com o lançamento do best seller The Machine That Changed the World : The Story of Lean Production.  Os princípios de demanda puxada, just-in-time, qualidade total, melhoria contínua e flexibilidade aplicados na indústria japonesa, mais precisamente na Toyota e conhecidos como Toyota Way inspiraram também a indústria de software e fez surgir a abordagem do Lean Software Development

O Lean Software Development provê uma série de princípios sobre a aplicação de um conjunto de técnicas oriundas da indústria e aplicadas em desenvolvimento de software. Esses princípios foram amplamente adotados na manufatura japonesa onde vieram a ser conhecidos como “Lean Production“.

Nesse contexto, Mary e Tom Poppendieck identificaram sete princípios fundamentais denominados “Lean Principles” e mostraram como eles podem ser aplicados em abordagens de desenvolvimento de software ágil.  Ao longo dos princípios, eles introduziram também e vinte e dois “thinking tools” para traduzir cada princípio em práticas ágeis, em particular eles apresentaram um toolkit para gerentes, lideres técnicos e gerentes de tecnologia que esperam adicionar valor ao invés de criarem barreiras para suas equipes de projetos, como os a seguir:

  • Melhoria contínua em direção à excelência: desenvolvimento de software é como um exercício de descoberta.
  • Gerenciando incertezas: “decidir o mais tardio possível” para adicionar mudanças dentro do sistema.
  • Reduzindo o fluxo de valor: desenvolvimento rápido, feedback, e melhorias contínua.
  • Dê autonomia ao time e ao indivíduo sem coordenação e comando-controle.
  • Software com qualidade: promovendo coerência, usabilidade, alta coesão, manutenabilidade e adaptabilidade.

Princípio 1: Elimine o Desperdício

Elimine qualquer coisa que não agrega valor ao produto e que não são percebidos pelo cliente. No pensamento Lean, o conceito de desperdício é um grande obstáculo. Se um programador implementa mais funcionalidades do que o necessário de imediato, isso é um desperdício.  Se a equipe produz documentação de análise apenas para estar em concordância com o processo, isso é um desperdício. Se o time entrega funcionalidades incompletas, isso é um desperdício. O ideal é perceber o que os clientes precisam para então fazer ou desenvolver e entregar exatamente o que eles querem, o mais rápido possível. Qualquer outra coisa que fica que não satisfaça as necessidades do cliente é um desperdício.

Princípio 2: Amplifique o Aprendizado

Desenvolvimento é um exercício de descoberta, enquanto produção é um exercício de redução de variações, e por essa razão, aprender a abordagem de desenvolvimento resultam em práticas que são bastante diferentes do que aprender abordagens de práticas de produção.

Desenvolvimento é como fazer uma nova receita, enquanto produção é como fazer um prato. Receitas são formuladas a partir da experiência de chefes de cozinha. Desenvolver uma receita é um processo de descoberta, onde o chefe utilizando de toda sua experiência e dos ingredientes a sua disposição faz iterações, experimentações, até encontrar a melhor combinação de ingrediente para o melhor sabor. Não se espera que os chefes obtenham uma receita perfeita na primeira tentativa; espera-se produzir diversas variações como parte do processo de aprendizagem. Desenvolvimento de software é concebido de forma melhor com um processo de aprendizado similar ao de criar uma nova receita. A melhor abordagem para melhorar o ambiente de desenvolvimento de software é pelo conhecimento amplificado, em um espiral de criação do conhecimento.

Princípio 3: Decida o Mais Tarde Possível

Práticas de desenvolvimento que assegurem a tomada de decisão tardia são mais eficazes em domínios que envolvem incertezas. Decidir o mais tarde possível significa manter suas opções aberta o maior tempo possível. O principal conceito deste princípio é diminuir as incertezas retardando as decisões até que possam serem feitas com base em acontecimentos mais firmes, previsíveis e conhecidos. Decisões tardias tendem a ser mais acertadas porque as melhores decisões são feitas baseadas em fatos, e não em suposições ou especulações. A principal estratégia de atrasar as decisões em um desenvolvimento de um sistema complexo é construí-lo com a capacidade de suportar mudanças.

Princípio 4: Entregue o Mais Rápido Possível

Sem entregas rápidas é impossível haver decisões tardias durante o desenvolvimento. Sem entregas rápidas não haverá feedbacks confiáveis no curto prazo.  No desenvolvimento o ciclo de descoberta é fundamental para a aprendizagem: estórias, implementação, feedback e melhorias. Quanto menor esse ciclo, mais pode ser aprendido.

Uma vez que os clientes decidam o que querem, seu objetivo deve ser para criar esse valor tão rapidamente quanto possível. Entregas rápidas garante que o cliente vai ter o que ele precisa hoje, e não o que ele precisa amanhã.

Em uma organização madura em desenvolvimento de software, tudo isso acontece em um fluxo rápido em resposta a uma necessidade dos clientes.

Princípio 5: Dê autonomia à Equipe

“Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho.” Esse já é um dos doze princípios por atrás do manifesto ágil. A equipe de trabalho deve ter autonomia para adequar seus próprios processos de engenharia, fazer os seus próprios compromissos e reunir as informações necessárias para alcançar seus objetivos e cumprir as suas metas. Equipes autônomas são multidisciplinares, possuem indivíduos multidisciplinares, trabalham bem com a interdisciplinaridade  e promovem a autor organização. Nesse tipo de equipe mais um princípio ágil é adicionado: “em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.”

Nesse ambiente, a equipe de desenvolvimento está em melhor posição para saber responder a problemas difíceis e a pedidos urgentes. A melhor maneira de ter certeza de estar fazendo as coisas corretas é trabalhar diretamente com o cliente para entender suas necessidades, colaborar com os colegas para descobrir como satisfazer essas necessidades, e, frequentemente apresentar os resultados aos interessados para ter certeza de que estamos no caminho certo.

Princípio 6: Construa com Integridade

Qualidade é inegociável. Entregue qualidade intrínseca e explícita aos seus cliente, se eles perceberem isso, significa que foi uma entrega de qualidade. Mary e tom Poppendieck em seu livro identificaram duas dimensões de integridade: integridade percebida e integridade conceitual. A integridade percebida significa que a totalidade do produto alcança um equilíbrio entre as funções, usabilidade, confiabilidade, economia e isso encanta o cliente. A integridade conceitual significa que os conceitos centrais do sistema de trabalho em conjunto são facilitados e coeso. Ela é fator crítico de sucesso para a integridade percebida.

Um produto é considerado ter integridade percebida quando o cliente experimenta o produto e diz: Isso! Era exatamente isso que eu queria! Esse exemplo acontece com frequencia em aplicações do google. Eu particularmente senti isso quando experimentei o novo recurso de caixa prioritária do gmail.

Um produto de software deve estar sempre adicionando integridade. Isso prolonga o seu ciclo de vida operacional. Software com integridade possuem boas arquiteturas, possuem um alto nível de usabilidade e facilidade de uso, são fáceis de dar manutenção, de adaptar e de estender.

Princípio 7: Visualize o Todo

Integridade em sistemas complexo exigem um conhecimento holístico e profundo em diversas áreas. Um dos problemas mais intratáveis com o desenvolvimento do produto é que especialistas em qualquer área (por exemplo, banco de dados ou design) têm uma tendência natural em maximizar o desempenho da parte do produto que representa a sua própria especialidade, ao invés de focar no desempenho do sistema como um todo. Muitas vezes, a integridade do produto como um todo pode ser prejudicado se as pessoas atenderem aos seus próprios interesses especializados em primeiro lugar.

Digite um texto ou endereço de um site ou traduza um documento.
Cancelar
Ouvir

Tradução do inglês para português

práticas de desenvolvimento que assegurem a tomada de decisão tardia são eficazes em domínios que envolvem incerteza

Ago 22

Dica Silverlight #1: Abrindo arquivos no Microsoft Word

Escrito por Alexandre Tadashi em 1, 4, 6, app, AR, Artigo, auto, blog, Blogs, botão, browser, checkBox, class, código, Curso, Dica, Dicas, DRE, dynamic, event, Evento, for, Google, ide, IE, if, image, int, mg, Microsoft, O, object model, Office, on, out-of-browser, Reflection, RIA, Ria’s Geral, silverlight, Silverlight 4, Tutoriais, Twitter, UI, Visual Studio, Visual Studio 2010, XP @ 08 22nd, 2010 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

O Silverlight 4 permite acessar objetos COM (Component Object Model), com esse recurso se tornou possível interagir com o Microsoft Office, nesta dica, vou mostrar como abrir um arquivo com extensão rtf no Microsoft Word.

Abra o Visual Studio 2010, crie um projeto Silverlight e arraste um botão, no evento Click do botão vamos codificar para abrir o documento no Word.

Para conseguir acessar o Microsoft Word, a aplicação deverá rodar fora do Browser (OOB),  clique com o botão direito do mouse em seu projeto, e em seguida clique nas propriedades (Properties).

Na aba Silverlight, marque o checkbox “Enable running application out of the browser” e em seguida clique no botão “Out-of-Browser Setting…”.

Marque a opção “Require elevated trust when running outside the browser”, assim sua aplicação poderá acessar o Microsoft Word através de COM Interop.

Adicione o código abaixo no evento Click do botão, o código está comentado para melhor entendimento da rotina :

            //Verifica se o objeto COM está disponível, é confiável            //e se executando em modo OOB(Out-Of-Browser)            if (AutomationFactory.IsAvailable &&                Application.Current.HasElevatedPermissions &&                Application.Current.IsRunningOutOfBrowser)            {   

                    //Criando um objeto COM com acesso ao Word                 dynamic word =                  AutomationFactory.CreateObject("Word.Application");

                    //Caminho do arquivo rtf                   object fileName;                   fileName = "c:\alexandre\artigoX.rtf";

                   object missing = System.Reflection.Missing.Value;                   object readOnly = true;                   object isVisible = true;

                    //Abre o Documento                    word.Documents.Open(ref fileName,                                        ref missing,                                        ref readOnly,                                        ref missing,                                        ref missing,                                        ref missing,                                        ref missing,                                        ref missing,                                        ref missing,                                        ref missing,                                        ref missing,                                        ref isVisible);

                    //Mostra no Word                    word.Visible = true;

            }

Twitter: @atsh2

Abr 18

ComboBox, CheckBox e DateField

Escrito por Gabriel Versallini em .NET, 1, 4, 6, Action Script, Adobe, Adobe Flex, AR, Banco de Dados, BI, blog, checkBox, class, Componente, Componentes, dados, Desenvolvedor, Download, Flex, if, image, mg, O, on, problema, problemas, redeRIA, RIA, Ria’s Geral, UI, Ved, Wordpress @ 04 18th, 2010 | via http://www.versallini.com.br | Sem comentários
Gabriel Versallini
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Galera, durante meu aprendizado em Adobe Flex encontrei alguns problemas para utilizar os componentes acima quando os dados resultam de um banco de dados. Não vou comentar os problemas porque o tempo é curto, tenho que voltar ao trabalho. Pleno domingo, vida de desenvolvedor é assim!

Ou acesse aqui: http://pastebin.com/36stQS08

Até a próxima!

Abr 7

Agrupando e desagrupando dados na AdvancedDataGrid

Escrito por Leonardo França em 1, 4, 6, action, Actionscript, Actionscript 3.0, Actionscript3, Adobe, api, app, AR, back, bar, BI, Bindable, camp, checkBox, class, classe, collection, control, dados, DataGrid, DataProvider, demo, DRE, english, err, event, EventListener, Evento, exemplo, Exemplos, Flex, for, function, gc, handle, html, ide, IE, if, image, int, Java, Javascript, label, layout, lite, live, Mate, mg, MXML, NaN, O, on, override, PHP, pt, referencia, refresh, RIA, Ria’s Geral, servidor, tag, UI, Ved, XML @ 04 7th, 2010 | via http://www.leonardofranca.com.br | Sem comentários
Leonardo França
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »



Precisei implementar uma AdvancedDataGrid em uma funcionalidade que hora ordenava os dados pela primeira letra, hora não. Em primeiro momento achei que fosse bem complicado, já que tinha feito algo semelhante em outro projeto onde deveria agrupar por exemplos hora os servidores, hora as instancias dos servidores.
Ao olhar esse projeto antigo, achei que estava muito complicado e de dificil entendimento, voltei ao livedocs para estudar um pouco mais.
Usei o exemplo basico da Adobe e com algumas adaptações, vi que o que eu queria fazer era mais simples do que imaginava.
Tenho uma camada de dados simples para demonstração, e de inicio, alimento minha grid com ela.

PLAIN TEXT
ACTIONSCRIPT3:

  1. [Bindable]
  2.  private var dpFlat:ArrayCollection = new ArrayCollection([
  3.  {Region:"Southwest", Territory:"Arizona",
  4.      Territory_Rep:"Barbara Jennings", Actual:38865, Estimate:40000},
  5.  {Region:"Southwest", Territory:"Arizona",
  6.      Territory_Rep:"Dana Binn", Actual:29885, Estimate:30000},  
  7.  {Region:"Southwest", Territory:"Central California",
  8.      Territory_Rep:"Joe Smith", Actual:29134, Estimate:30000},  
  9.  {Region:"Southwest", Territory:"Nevada",
  10.      Territory_Rep:"Bethany Pittman", Actual:52888, Estimate:45000},  
  11.  {Region:"Southwest", Territory:"Northern California",
  12.      Territory_Rep:"Lauren Ipsum", Actual:38805, Estimate:40000},
  13.  {Region:"Southwest", Territory:"Northern California",
  14.      Territory_Rep:"T.R. Smith", Actual:55498, Estimate:40000},  
  15.  {Region:"Southwest", Territory:"Southern California",
  16.      Territory_Rep:"Alice Treu", Actual:44985, Estimate:45000},
  17.  {Region:"Southwest", Territory:"Southern California",
  18.      Territory_Rep:"Jane Grove", Actual:44913, Estimate:45000}
  19.             ]);

Um CheckBox foi adicionando um listener para me dizer quando ele esta selecionado ou não.

PLAIN TEXT
MXML:

  1. <mx:CheckBox id="ckGroup" label="Checkbox"/>

Minha função que trata o evento do CheckBox fará o trabalho de agrupar e desagrupar os dados.

PLAIN TEXT
ACTIONSCRIPT:

  1. private function handlerCheck(evt:Event):void
  2. {
  3.     if(ckGroup.selected)
  4.         {
  5.         trace("selected");
  6.         gc.source = dpFlat;
  7.         gc.refresh();
  8.         hView = new HierarchicalCollectionView(gc);
  9.         myADG.dataProvider = hView;
  10.     }
  11.     else
  12.         {
  13.         trace("no selected");
  14.         myADG.dataProvider = dpFlat;
  15.     }
  16.  }

Estou usando a classe GroupCollection que é responsavel por agrupar meus dados por um determinado campo para ser mostrado na AdvancedDataGrid.

PLAIN TEXT
MXML:

  1. <mx:GroupingCollection id="gc" source="{dpFlat}">
  2.         <mx:grouping>
  3.             <mx:Grouping>
  4.        <!–         <mx:GroupingField name="Region"/>–>
  5.                 <mx:GroupingField name="Territory"/>
  6.             </mx:Grouping>
  7.         </mx:grouping>
  8.     </mx:GroupingCollection>

Passando depois para a HierarchicalCollectionView que fornece uma visão hierárquica dos meus dados.

PLAIN TEXT
ACTIONSCRIPT:

  1. gc.source = dpFlat;
  2. gc.refresh();
  3. hView = new HierarchicalCollectionView(gc);
  4. myADG.dataProvider = hView;

O exemplo completo:

PLAIN TEXT
MXML:

  1. <?xml version="1.0"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
  3.     <mx:Script>
  4.        <![CDATA[
  5.             import mx.collections.HierarchicalCollectionView;
  6.            import mx.collections.ArrayCollection;
  7.                  
  8.            [Bindable]
  9.            private var dpFlat:ArrayCollection = new ArrayCollection([
  10.              {Region:"Southwest", Territory:"Arizona",
  11.                  Territory_Rep:"Barbara Jennings", Actual:38865, Estimate:40000},
  12.              {Region:"Southwest", Territory:"Arizona",
  13.                  Territory_Rep:"Dana Binn", Actual:29885, Estimate:30000},  
  14.              {Region:"Southwest", Territory:"Central California",
  15.                  Territory_Rep:"Joe Smith", Actual:29134, Estimate:30000},  
  16.              {Region:"Southwest", Territory:"Nevada",
  17.                  Territory_Rep:"Bethany Pittman", Actual:52888, Estimate:45000},  
  18.              {Region:"Southwest", Territory:"Northern California",
  19.                  Territory_Rep:"Lauren Ipsum", Actual:38805, Estimate:40000},
  20.              {Region:"Southwest", Territory:"Northern California",
  21.                  Territory_Rep:"T.R. Smith", Actual:55498, Estimate:40000},  
  22.              {Region:"Southwest", Territory:"Southern California",
  23.                  Territory_Rep:"Alice Treu", Actual:44985, Estimate:45000},
  24.              {Region:"Southwest", Territory:"Southern California",
  25.                  Territory_Rep:"Jane Grove", Actual:44913, Estimate:45000}
  26.            ]);
  27.            private var hView:HierarchicalCollectionView;
  28.            
  29.            override protected function childrenCreated():void
  30.            {
  31.                 super.childrenCreated();
  32.                 ckGroup.addEventListener(Event.CHANGE,handlerCheck);
  33.                 myADG.dataProvider = dpFlat;
  34.            }
  35.            
  36.            private function handlerCheck(evt:Event):void
  37.            {
  38.                 if(ckGroup.selected)
  39.                 {
  40.                     trace("selected");
  41.                     gc.source = dpFlat;
  42.                     gc.refresh();
  43.                     hView = new HierarchicalCollectionView(gc);
  44.                     myADG.dataProvider = hView;
  45.                 }
  46.                 else
  47.                 {
  48.                     trace("no selected");
  49.                     myADG.dataProvider = dpFlat;
  50.                 }
  51.            }
  52.        ]]>
  53.    </mx:Script>
  54.     <mx:GroupingCollection id="gc" source="{dpFlat}">
  55.         <mx:grouping>
  56.             <mx:Grouping>
  57.        <!–         <mx:GroupingField name="Region"/>–>
  58.                 <mx:GroupingField name="Territory"/>
  59.             </mx:Grouping>
  60.         </mx:grouping>
  61.     </mx:GroupingCollection>
  62.     <mx:Panel title="AdvancedDataGrid Control Example" height="75%" width="75%" layout="horizontal" paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10">
  63.         <mx:AdvancedDataGrid id="myADG" width="100%" height="100%" initialize="gc.refresh();">        
  64.             <mx:columns>
  65.                 <!–<mx:AdvancedDataGridColumn dataField="Region"/>–>
  66.                 <mx:AdvancedDataGridColumn dataField="Territory"/>
  67.                 <mx:AdvancedDataGridColumn dataField="Territory_Rep" headerText="Territory Rep"/>
  68.                 <mx:AdvancedDataGridColumn dataField="Actual"/>
  69.                 <mx:AdvancedDataGridColumn dataField="Estimate"/>
  70.             </mx:columns>
  71.        </mx:AdvancedDataGrid>
  72.         <mx:ControlBar>
  73.             <mx:CheckBox id="ckGroup" label="Checkbox"/>
  74.         </mx:ControlBar>
  75.     </mx:Panel>
  76. </mx:Application>

referencias:
http://livedocs.adobe.com/flex/3/html/help.html?content=advdatagrid_06.html

Translations:
English Version

Mar 5

Alterando a aparência de um CheckBox com WPF e C#

Escrito por Alexandre Tadashi em 1, 4, 6, api, AR, BI, bitmap, Blend, Blend 3, blog, Blogs, botão, C#, carregar, checkBox, class, código, código fonte, control, css, demo, Design, Desktop, Diversos, efeito, event, Evento, Eventos, exemplo, expression, Expression Blend, Expression Blend 3, fonte, for, fundo, Google, HCI, IE, if, image, imagens, int, layout, lista, map, mg, Microsoft, Microsoft Expression, NaN, O, on, Outros, padrão, processo, RIA, Ria’s Geral, silverlight, Storyboard, tag, Tema, Tutoriais, Tutorial, UI, UX, Visual Studio, Visual Studio 2008, WPF, XAML, XP @ 03 5th, 2010 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

   Neste tutorial vou criar um UserControl simples com um CheckBox e modificar a aparência inserindo uma imagem no lugar do layout padrão do CheckBox, dessa forma podemos utilizar qualquer imagem e criar CheckBox com um apelo visual mais sofisticado. O conceito pode ser aplicado em diversos outros objetos WPF.
     No exemplo vou utilizar o Microsoft Expression Blend 3 para auxiliar no design do tutorial, vou carregar duas imagens png, a primeira com o desenho de uma lâmpada ligada e a segunda com outra lâmpada desligada, quando o checkbox for clicado a lâmpada vai acender e um efeito de luz suave vai aparecer.

     Primeiro crie uma aplicação em WPF e adicione um UserControl com o nome de UserControlCheckBox.xaml, modifique a altura e o tamanho para 100: Height=”100″ Width=”100″ e altere o fundo do layout GRID para “Black”. Dentro do layout GRID adicione uma Ellipse com o tamanho e altura de 20.

     Agora vamos criar um Style herdando as propriedades de um objeto CheckBox, selecione a Ellipse com o botão direito do mouse e clique em Make into Control… conforme a figura abaixo:

     Selecione o CheckBox e dê o nome do Style de CheckBoxStyle1:

     Localize o resources do UserControl e adicione um ImageBrush que vai “pintar” a Ellipse com uma imagem que iniciamente será a lâmpada apagada:

     Agora vamos adicionar Triggers que vão habilitar os eventos check e uncheck acionando Storyboards que vão animar as propriedades Opacity e Radius da Ellipse e criar um efeito interessante simulando uma luz. Clique em Triggers, depois em Event para adicionar um evento, selecione o objeto Checkbox e depois Checked e por fim clique no sinal de + para adicionar uma Storyboard, conforme a figura abaixo:

     Repita o processo para o evento Unchecked, neste momento temos o trigger conforme a listagem abaixo:

     Duas Storyboards foram criadas, para  trocar a imagem quando o CheckBox é acionado adicione o evento Completed na Storyboard OnChecked1 e adicione o código C# abaixo:

ImageBrush brush = (ImageBrush)this.Resources["imgb"];
Image image1 = new Image();
brush.ImageSource =
new BitmapImage(new Uri(“luz_apagada.png”, UriKind.Relative));

    Repita o processo no evento Completed da Storyboard OnUnchecked1 mudando somente a imagem:

brush.ImageSource = new BitmapImage(new Uri(“luz_ligada.png”, UriKind.Relative));

     Para finalizar o tutorial vamos animar as propriedades Opacity e Radius para simular uma luz no CheckBox inserindo um novo efeito ao controle, na Storyboard OnChecked1 adicione o código:

     E adicione o código abaixo na Storyboard OnUnchecked1:

     Adicione uma Ellipse entre o GRID Layout e o CheckBox e utilize o efeito BlurEffect que vai dar o efeito de luz no CheckBox:

    Agora é só adicionar o UserControl em seu projeto e testar.

Código fonte do tutorial : Clique aqui
Expression Blend 3 / Visual Studio 2008

Fev 23

Flex Datagrid: salvar valor modificado por um item renderer

Escrito por Ved em AR, checkBox, checkboxes, DataGrid, DataProvider, explicação, Flex, for, Formação, ide, itemRenderer, Motivação, O, Ria’s Geral, screen, Screencast, tag, UI, XP @ 02 23rd, 2010 | via http://www.vedovelli.com.br | Sem comentários
Ved
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Eu ia gravar um screencast mas não rolou motivação. Então, como o moço que me pediu essa explicação tava na urgência, decidi fazer um projeto e mandar para ele (não se acostumem).
Clique aqui para baixar o projeto.

É algo muito simples e serve para manipular o dataProvider ao marcar/desmarcar os checkboxes no dataGrid, deixando a informação [...]

Jan 23

CRUD com o RestfulX – aplicação funcionando

Escrito por Elvis Fernandes em 1, 2009, 4, 6, aplicacao, app, AR, arte, Artigo, Artigos, Balsamiq, Balsamiq Mockups, BI, botão, checkBox, checkboxes, class, código, código fonte, configuração, CRUD, Desenvolvimento, err, erro, exemplo, Flex, fonte, for, git, habtm, html, ide, IE, instalação, int, Introdução, Mac, mockup, mysql, NaN, O, on, permalink, programação, protótipo, pt, rails, rest, restfulx, Ria’s Geral, RoR, ruby, ruby on rails, screen, Screencast, tag, Teste, UI, update @ 01 23rd, 2010 | via http://www.elvis.eti.br | Sem comentários
Elvis Fernandes
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Há alguns dias eu escrevi dois artigos sobre como realizar as operações de CRUD com o RestfulX – um falando sobre o retrieve e outro sobre o create, update e delete.

Quando escrevi o segundo artigo eu fiquei devendo mostrar para vocês a aplicação de exemplo funcionando. Pois aqui está: veja a aplicação rodando e faça seus testes!

Para ver o código fonte basta clicar com o botão direito na aplicação e escolher “View source”.

Posts relacionados

  • CRUD com o RestfulX: Parte 1/2 – RetrieveCRUD with RestfulX: Part 1/2 – Retrieve“>CRUD com o RestfulX: Parte 1/2 – RetrieveCRUD with RestfulX: Part 1/2 – Retrieve (3)
  • CRUD com o RestfulX: Parte 2/2 – Create, Update e DeleteCRUD with RestfulX: Part 2/2 – Create, Update, and Delete“>CRUD com o RestfulX: Parte 2/2 – Create, Update e DeleteCRUD with RestfulX: Part 2/2 – Create, Update, and Delete (1)
  • Instalação “avançada” do RestfulX no seu projeto Rails“Advanced” installation of RestfulX into your Rails app“>Instalação “avançada” do RestfulX no seu projeto Rails“Advanced” installation of RestfulX into your Rails app (0)
  • Introdução ao RestfulXIntroduction to RestfulX“>Introdução ao RestfulXIntroduction to RestfulX (0)
  • Screencast: desenvolvendo uma aplicação com RestfulX em menos de 5 minutos“>Screencast: desenvolvendo uma aplicação com RestfulX em menos de 5 minutos (4)
  • RestfulX – Introdução, instalação, configuração e primera aplicação em 5 minutos“>RestfulX – Introdução, instalação, configuração e primera aplicação em 5 minutos (8)
  • Usando checkboxes em uma relação habtm no Rails“>Usando checkboxes em uma relação habtm no Rails (3)
  • Instalando o Rails 2 no Debian“>Instalando o Rails 2 no Debian (2)
  • Balsamiq Mockups: solução entre protótipos de alta e baixa fidelidade“>Balsamiq Mockups: solução entre protótipos de alta e baixa fidelidade (4)
  • Erro “bad line length character” no Git“>Erro “bad line length character” no Git (1)

© Elvis for Elvis Fernandes, 2010. |
Permalink |
Nenhum comentário |
Adicione ao
del.icio.us


Tags: Desenvolvimento, exemplo, Flex, mysql, programação, Rails, restfulx, RoR, ruby on rails

Jul 21

Flex: itemRenderers e a reciclagem de componentes

Escrito por Ved em Actionscript3, checkBox, Flex, itemRenderer @ 07 21st, 2009 | via http://www.vedovelli.com.br | Sem comentários
Ved
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Uma questão que tira o sono de muitos desenvolvedores Flex é a questão da reciclagem de componentes. Vou explicar.
Supondo que vc tenha um DataGrid com 1000 registros. Em uma das colunas vc tem um checkbox, que aparece selecionado ou não, conforme um dos valores do seu objeto que é mostrado no registro. Você carrega o [...]

|

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2755 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com