Pesquisar no Programero

quinta-feira, 26 de novembro de 2009

Iniciando com o Silverlight: Parte 1 – Ferramentas e o Hello World

 

Essa é a primeira parte de uma série de posts que pretendo publicar, elas foram inicialmente feitas por Tim Heuer do Method of failed. Irei traduzir seus artigos e tentarei simplificar ao máximo esse ótimo trabalho.

O sistema que será construido tem a finalidade de procurar mensagens do twitter por meio de termos digitados pelo usuário, mas antes vamos reforçar o que será necessário para darmos inicio ao desenvolvimento.

Ferramentas

Nem todas as ferramentas sugeridas são necessárias, algumas delas não são gratuitas mas acreditamos que elas sejam as melhores para o desenvolvimento.

Visual Studio 2008

Será necessário ter o Visual Studio atualizado com o spk1, para aqueles que ainda não o tem e que não pretendem comprar uma licenca ou baixar um piratão recomendamos a versão Express que é gratuita e serve perfeitamente bem.

Silverlight Tools for Visual Studio

O Silverlight Tools for Visual Studio é tudo o que precisamos para iniciar nosso desenvolvimento, os objetos, modelos e afins.

Expression Blend

O Expression Blend é uma ferramenta de desenvolvimento interativo. É um designer visual para XAML, a tecnologia subjacente para apresentação do Silverlight e Windows Presentation Foundation (WPF). Permite fácil manipulação de layout, animações, estilos e modelos. Esta ferramenta, entretanto, não está disponível a custo zero, pode ser adquirido como parte do Expression Studio. É possível baixar uma cópia de avaliação do Expression Blend 3 aqui para começar.

Silverlight Toolkit

O Silverlight Toolkit é um conjunto de controles adicionais que estão disponíveis fora do conjunto de controle do núcleo. Estes incluem controles gráficos, controles de tempo, acordeões e muito mais. O melhor de tudo, o código fonte para esses controles (assim como todos os controles centrais) estão incluídos para que você possa aprender e extendelos.

Entendendo o ambiente de desenvolvimento

Depois de instalar o Visual Studio e o Silverlight Tools você notará um novo agrupamento na caixa de diálogo Novo Projecto VS:

New Project Dialog Box

Você verá alguns dos novos modelos sob a categoria Silverlight  que inclui, pelo menos, Silverlight Application, Silverlight Class Library e Silverlight Navigation Application. Outros podem aparecer, tudo depende do que você tiver instalado.

Inicialmente iremos escolher o template Silverlight Navigation Application e o chamaremos de TwitterSearchMonitor.
A próxima janela perguntará se desejamos criar um projeto web:

New Silverlight Application Dialog Box

É altamente recomendado criar um projeto web, já que no nosso caso estamos criando um projeto do zero, com isso evitaremos erros comuns de depuração.

A estrutura do projeto

Depois da aplicação criada termos a seguinte estrutura:

Silverlight project structure

Isso mostra nossa aplicação web (que irá hospedar o aplicativo do Silverlight) com páginas de teste pré-criadas para a aplicação, e a aplicação Silverlight em si. Vamos nos concentrar primeiro no projeto do Silverlight.
Existem alguns arquivos-chave que devemos estar cientes, e que vamos explorar nesta série:

  • App.xaml – este é o arquivo de recursos da aplicação. Se colocarmos recursos aqui (será explorado nos próximos artigos) ou eventos globais na inicialização, eles acontecerão aqui.  Esse arquivo é o ponto de entrada de nossa aplicação que diz ao Silverlight o que deve ser feito.
  • MainPage.xaml – esta página faz parte do modelo que escolhemos.  Não tem que necessariamente possuir esse nome, mas é o default, ela representa a interface inicial de nossa aplicação.
  • Assets/Views folders – Diretórios que contém arquivos, imagens, estilos e outras páginas de nossa aplicação.

Os arquivos XAML compões a interface do usuário. São apenas arquivos XML com linguagem de marcação e serão editados em breve.

Quando compilarmos a solução veremos na pasta ClientBin um novo arquivo com uma extensão XAP. Esta é a sua aplicação Silverlight compilado. É realmente um arquivo compactado (como um zip). Se renomearmos ele para . ZIP e abrirmos usando uma ferramenta de descompactação de arquivo poderemos ver o conteúdo.

O arquivo XAP é o que é entregue ao browser, o que é hospedado no servidor até ser entregue aos usuários.  Ele fica em uma página HTML padrão que hospeda a aplicação Silverlight usando a instanciação tag <object>. 

NOTA: O Silverlight é uma tecnologia de cliente e pode ser hospedado em qualquer servidor web. Pode ser qualquer tipo de servidor Web que seja capaz de entregar o arquivo XAP junto com o tipo correto de conteúdo MIME do servidor (application / x-Silverlight-app).

Páginas de teste são criadas no modelo padrão (ASP.NET e HTML), apenas uma delas é necessária, sendo assim podemos excluir a que desejarmos.

Adicionando UI para as páginas XAML

O modelo que escolhemos é uma aplicação de navegação, o que significa que tem algumas características de navegação incorporada. Esse é um recurso relativamente novo para o Silverlight e permite que tenhamos uma página "mestre". Se repararmos na pasta View, veremos About.xaml, ErrorWindow.xaml e Home.xaml. Por enquanto vamos nos concentrar em Home.xaml pois essa é a primeira página, a que é carregada.

Ao abrirmos a página Home veremos o código XAML definido com uma visão em Grid usando outros elementos de layout como o StackPanel e os TextBlocks.  Todos esses elementos fazem parte do que é oferecido pelo Silverlight. Ao executarmos a aplicação(F5 para rodar em modo debug – modificando o web.config para habilitar o debug) teremos apresentado em nosso browser o seguinte resultado:

Running Silverlight application

Em Home.xaml,  depois do segundo TextBlock, adicione um Button ussando o seguinte código XAML:

   1: <Button Content="Click me" x:Name="MyButton" FontSize="18" Width="150" Height="45" />




Observe o atributo x: Name, ele é o identificador exclusivo para esse elemento e nos ajuda a referência-lo no código. Pense nisso como o atributo de identificação do controle. Agora vamos fazê-lo executar uma ação quando clicado. No XAML para o botão em si, podemos acrescentar um atributo Click e veremos o VS IntelliSense perguntando se queremos gerar um novo manipulador de eventos:

















Podemos também conectar o manipulador de eventos no código diretamente e mantê-lo fora do nosso XAML usando este código na página Home.xaml.cs:





   1: public Home()



   2:  



   3:  



   4: {



   5:  



   6:  



   7:     InitializeComponent();



   8:  



   9:  



  10:     MyButton.Click += new RoutedEventHandler(MyButton_Click);



  11:  



  12:  



  13: }







Ambas as formas funcionam. Agora vamos finalizar nosso Hello World alterando o TextBlock HeaderText para “Hello World” quando clicarmos no botão criado:





   1: void MyButton_Click(object sender, RoutedEventArgs e)



   2:  



   3:  



   4: {



   5:  



   6:  



   7:     HeaderText.Text = "Hello World!";



   8:  



   9:  



  10: }










O resultado será esse:









finished product animation









Próximos passos



Nossa primeira aplicação nos deu uma idéia do significado de alguns novos elementos e também nos mostrou como pode ser relativamente simples desenvolver aplicações com o Silverlight.



Aguardem o próximos posts e fiquem a vontade para sugerir e comentar.



Só para finalizar vamos prestigiar esse ótimo trabalho de Tim Heuer, autor dessa série de artigos de introdução ao Silverlight.



Parte 1Parte 2





Fonte



Method ~of ~failed

terça-feira, 24 de novembro de 2009

Silverlight

image

 

Olá a todos, daremos inicio hoje ao assunto Silverlight. Pretendo publicar alguns tutoriais a respeito para todos os interessados em desenvolver aplicações com esse poderoso plug-in.

O que ele é?

Silverlight é um plug-in cross-browser, cross-platform e cross-device (roda em qualquer  lugar) com a finalidade de simplificar o design, desenvolvimento e distribuição de aplicações ricas na web.

Ele oferece o melhor dos dois mundos. Ao aproveitar a estrutura .Net, ele permite criar aplicações visualmente ricas, com todo o suporte ao rápido desenvolvimento que já estamos acostumados.

Beleza mas e agora?

Para iniciar os trabalhos com o Silverlight precisaremos do developer tools for Visual Studio 2008 spk1, Silverlight Tool Kit (projeto do Microsoft Silverlight contendo controles, componentes e utilitários que pode ser baixado e utilizado em suas aplicações Silverlight. Ele inclui código fonte completo), Expression Blend3(permite aos projetistas criar interface gráfica para aplicações Silverlight 3) e WCF Ria Services (simplifica o tradicional padrão de camada de aplicativo, reunindo o ASP.NET e plataformas Silverlight. Os Serviços RIA fornece um padrão para escrever a lógica do aplicativo que roda no mid-tier e controla o acesso aos dados para consultas, alterações e as operações de costume).

Aguardem…

Em breve iniciarei uma série de posts sobre o Silverlight, para os interessados acessem o site oficial e confiram o que pode ser feito.

Fonte

Microsoft Silverlight

domingo, 1 de novembro de 2009

Limpando objetos dinamicamente (Delphi)

 

Muitas vezes nos deparamos com situações onde devemos remover o conteúdo de determinados objetos, como por exemplo Edits ou mesmo Labels e dependendo da complexidade da tela setar manualmente cada campo pode ser trabalhoso.Sendo assim mostraremos hoje como montar um esquema automático e genérico para esse caso:

 

procedure TForm1.Button1Click(Sender: TObject); 

procedure LimparEdits(AControl: TComponent);
var
   vLoop: Integer;
begin

    { ComponentCount retorna a qtde de componentes que o parent é o AControl, ou seja, somente os componentes que
    estão ligados a ele }

    for vLoop := 0 to AControl.ComponentCount-1 do 
    begin                                                

           { Se for um componente do tipo TEdit, }     
            { então iremos limpar o conteúdo, caso }
            { contrário, iremos rechamar a procedure }
            { pois o AControl pode ser um painel e temos }
            { que limpar inclusive os edits do painel }

            if AControl.Components[vLoop].ClassType = TEdit then
               TEdit(AControl.Components[vLoop]).Clear        
                else
               LimparEdits(AControl.Components[vLoop]);  

    end;

end;  

begin  

    { O processo irá iniciar limpando os edits que estão diretamente  docados no form }

    LimparEdits(Self);

end;