terça-feira, 28 de outubro de 2008

Estrutura das aplicações Silverlight

Aqui estarei explicando o que faltou da criação de um projeto silverlight no visual studio e um poco da estrutura dessas aplicações.

1º - Criação do projeto

Crie um projeto silverlight (Mostrado na seção Introdução, no final). Ao dar um nome desejado e criar o projeto, a seguinte tela é exibida.

image

Não se assuste! Quando criamos um projeto vazio, o visual studio pergunta que tipo de projeto WEB desejamos adicionar na mesma solution junto com o projeto silverlight, basta selecionar, ASP.NET WebSite ou ASP.NET Web Application Project. Adotarei o ASP.Net Application project como mostra na figura, mas nada impede de escolher o tipo que desejar.
Após escolher o tipo de aplicação Web a ser adicionado junto com o projeto silverlight, clique em ok e aguarde até que o Visual Studio (VS) termine de carregar o novo projeto.

Pronto! A nossa aplicação silverlight está criada, junto com a web app que vai renderizar nosso projeto silverlight. A figura abaixo mostra a estrutura de arquivos da aplicação silverlight.

image

O visual studio por padrão cria 1 diretório chamado ClientBin, 2 arquivos de página (um .aspx e o outro .html) e um arquivo javascript chamado Silverlight.js na aplicação WEB, já na aplicação silverlight estarei mostrando abaixo, detalhadamente, seguido dos arquivos criados no projeto web, acima listados.

  • AppManifest.xml - É gerado no momento em que você compila o projeto/solução. Se o projeto silverlight possuir qualquer depêndencia em tempo de execução, como por exemplo controles customizados, as referências para estas depêndencias são gravadas neste arquivo.
  • App.xaml e App.xaml.cs - É criado no momento que se cria o projeto silverlight. Geralmente usado para armazenar informações globais de sua aplicação silverlight. Contém as declarações para o funcionamento e comportamento de sua aplicação. O seu arquivo de código (code behind), o App.xaml.cs, contém as declarações para o Application_Startup e Application_Exit, que tratam o momento em que a aplicação silverlight é iniciada e finalizada, respectivamente.
  • Page.xaml e Page.xaml.cs - Prove a página padrão/inicial para sua aplicação. Isso é definido no code behind do App.xaml, no evento Application_Startup:
    this.RootVisual = new Page();
    Este arquivo possui seu code behind, assim como o .aspx nas aplicações ASP.Net também possuem seu code behind, que é uma classe chamada Page, por isso o código acima define uma nova instância dessa classe como sendo o RootVisual, ou melhor dizendo, a página inicial/raiz. O arquvio Page.xaml possui o seguinte XAML:

    image
    obs: por questões de formatação tive que inserir uma imagem para o xaml acima .

    O XAML (Extensible Application Markup Language) é uma linguagem baseada no XML e é utilizada para definir aspectos visuais em sua aplicação. User Interfaces, animações, mídia, controles, desenhos geométricos, etc.

    Note que o recipiente (container) do arquivo do XAML de Page é um UserControl, note que nele é definido o x:Class que por sua vez aponta para a namespace do projeto seguido do nome da classe, nesse caso, Page. Os atributos xmlns e xmlns:x são utilizados para validação do XAML. Enfim é definida a largura e altura, Width e Height respectivamente, do controle. Posteriormente vem o Grid, que também é um controle do tipo container, que será tratado junto de outros controles deste tipo em outro post.

Já a aplicação web possui alguns arquivos também criados pelo visual studio que são explicados abaixo:

    • TestPage.aspx - Na verdade o nome desse arquivo possui o prefixo com o nome da aplicação. Ele possui o controle silverlight apontado para a aplicção silverlight nesta solução e contém tudo que precisa para rodar a aplicação silverlight do ASP.Net. Lembre-se que o silverlight não tem nenhuma dependência na parte do servidor. O ASP.Net oferece alguns controles que lhe permite "hostear" (isso não existe no dicionário) o silverlight no browser.

      Note que esta página possui dois controles asp.net, o primeiro um ScripManager que trata o fluxo do javascript na página e o segundo, o silverlight control, que gera as scripts para criação do controle do silverlight em execução. No silverlight 2 temos essa facilidade se comparado com a versão 1, onde tinhamos que "hostear" o controle silverlight na mão nas páginas, utilizando java script e muito remédio pra dor de cabeça.
    • Arquivo XAP - Um simples tipo de zip/rar que contém os recursos utilizados para contrução da aplicação silverlight, como o XAML. O plug-in faz o download deste arquivo para a maquina do cliente e renderiza seu contúdo no browser. Este arquivo fica dentro da pasta ClientBin, dentro da aplicação WEB. Caso não tenha nenhum arquivo, basta compilar a solução (build) e o arquivo é gerado. Caso o arquivo ja exista, este é substituido.

    Bom, a partir deste conteúdo podemos começar com o HelloWorld no próximo post, que vou aprofundar mais nos conceitos do XAML.

    Obrigado,
    Danillo.

Nenhum comentário: