Elemar DEV

Tecnologia e desenvolvimento .net

Desenvolvendo para Windows 8 – Parte 2 – Hello “Metro-style” World (CS + XAML)

Olá pessoal. Tudo certo?!

Comecei essa série falando sobre as novidades do Windows 8 para desenvolvedores. Agora, é hora de botar as mãos na massa, ou melhor, no código.

Como já disse, podemos construir nossas interfaces usando XAML (com C#) ou HTML5 (com Javascript). Nesse post, faremos um “Hello World” usando XAML (com C#).

Antes de começar

No momento em que escrevo este post, para desenvolver com Windows 8, precisamos de uma máquina rodando o sistema (pode ser virtual). Além disso, é necessário o Visual Studio 2012 (que está em RC).

Se você ainda não tem isso, pare agora e providencie.

Se você não mexeu, ainda, no ambiente Metro, recomendo que faça isso. Aproveite! Há conceitos bem bacanas que você precisa “experimentar” antes de escrever qualquer coisa.

Iniciando uma Metro-style App

No Visual Studio 2012, inicie um novo projeto. Irá perceber que há alguns templates de projeto para aplicações metro-style. Veja:

image

Para aplicações, no RC do VS2012, há três opções distintas. A mais simples delas, Blank App (XAML), será a que iremos utilizar hoje.

Recomendo que você crie projetos com os outros dois templates, antes de continuar, e execute. Para mim, foi uma experiência interessante. Divirta-se!

Anatomia de uma Metro style app

Projeto iniciado, hora de dar uma olhada no que o template carrega para nós. Vamos fazer um passeio breve no Solution Explorer.

image

Como pode ver, nada de muito novo aqui. Perceba:

  • Continuamos tendo um AssemblyInfo.cs e referências;
  • A pasta Assetsé destinada a imagens e recursos que possamos utilizar em nossas aplicações;
  • A pasta Commoné destinada a recusos, geralmente XAML, com uso comum/compartilhado (repetido). Geralmente, possui estilos.
  • Package.appxmanifest define algumas configurações necessárias para o aplicativo e serão providenciadas durante a instalação (vamos falar mais desse arquivo no futuro).

Recomendo que abra os arquivos e examine seus conteúdos. Perceberá, por exemplo, que o Visual Studio tem alguns editores interessantes.

XAML!

Acho XAML um formato incrível. Ele é super-flexível e pode ser utilizado para serializar qualquer coisa (foi usado com WPF, Silverlight e WF).

Tudo o que você aprendeu para programar com Silverlight e WPF continua valendo agora. Aliás, quando dizem que o SL/WPF morreu, não consigo deixar de pensar que, na verdade, apenas mudou de nome.

Abaixo, você pode ver a versão que escrevi (modifiquei, na verdade) para o exemplo de hoje:

<Page
    x:Class="HelloWorldFromMetro.MainPage"
    IsTabStop="false"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:HelloWorldFromMetro"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <TextBlock Text="Hello Windows 8 Metro"
                   FontFamily="Arial"
                   FontSize="96"
                   FontStyle="Italic"
                   Foreground="Yellow"
                   HorizontalAlignment="Center"
                   VerticalAlignment="Center"
                   />
    </Grid>
</Page>

Vamos falar mais sobre XAML nos próximos posts. Por agora, penso que o código que escrevemos é intuitivo o suficiente.

C#

Nosso XAML possui um code-behind. Veja:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

namespace HelloWorldFromMetro
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
        }
    }
}

Perceba:

  • Todos os namespaces começando com Systemsão plenamente compatíveis com aqueles que já conhecemos em .NET
  • Todos os namespaces começando com Windows têm classes novas, desenvolvidas para o WinRT
  • A classe é parcial. Isso porque o Visual Studio escreve código a partir do XAML;
  • O método InitializeComponent é escrito pelo Visual Studio e precisa ser chamado no construtor;

Executando…

Se pressionar F5, verá que um tile para seu aplicativo será fixado na start screen do Windows e seu aplicativo será iniciado.

Você pode, se preferir, definir o target de execução para um simulador. Dessa forma, não afeta sua start screen.

Veja:

image

Extra

Recomendo, de verdade, que você brinque um pouco com o XAML. Adicione elementos e faça experiências. Se você sabe SL/WPF, tente usar o que você já sabe.

Penso que você só pode aprender a “codar”, “codando”. So, keep coding!

Era isso.

5 Comments on “Desenvolvendo para Windows 8 – Parte 2 – Hello “Metro-style” World (CS + XAML)

  1. Hugo Nickerson
    02/07/2012

    Ai Elemar, muito bom. Já vou iniciar no Windows 8 a partir deste post. Muito bom mesmo.

  2. sorrisosv
    08/08/2012

    Parabéns, bem curto e didatico seus posts..até o TDC 2012 Floripa

  3. Emerson Monteiro
    15/12/2012

    Ola Amigo, sou iniciante em programação e estou aprendendo c#, então criar um pequeno app para windows store…Mas percebi que muitos codigos que uso em windowsforms não tem metro estilo, por exemplo o que estou tentando fazer em um textbox,….uso o evento keydown , para mudar a tecla “.” para “,” e o codigo keychar não exite…vc tem alguma dica para clarear o meu caminho?

    Obrigado.

  4. William Zacariotto
    27/01/2013

    Perdão mas não consigo testar e funcionar , instalei o visual studio 12 , e não tem o ambiente metro , o que aconteceu ? me ajude

    • elemarjr
      27/01/2013

      Provavelmente você não está usando Windows 8 em sua máquina de desenvolvimento. Também é um pré-requisito.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

Você está comentando usando sua conta WordPress.com. Sair / Mudar )

Imagem do Twitter

Você está comentando usando sua conta Twitter. Sair / Mudar )

Foto do Facebook

Você está comentando usando sua conta Facebook. Sair / Mudar )

Conectando a %s

Informação

Publicado às 01/07/2012 por em Post e marcado , .

Estatísticas

  • 427,142 hits
%d bloggers like this: