maratona windows phone 7

63
Maratona Windows Phone 7 powered by Microsoft Student Partners

Upload: felipe-pimentel

Post on 22-Nov-2014

979 views

Category:

Documents


0 download

DESCRIPTION

Apresentação feita pela invista na maratona de wp7 em recife (2011)

TRANSCRIPT

Page 1: Maratona Windows Phone 7

Maratona Windows Phone 7 powered by Microsoft

Student Partners

Page 2: Maratona Windows Phone 7

Márcio Abrantes

Software Engineer- ASP.NET 4.0- Windows Phone 7

@marcio_abrantes

Márcio Abrantes

[email protected]

Felipe Pimentel

Software Engineer- ASP.NET 4.0- Windows Phone 7

@FelipePimentell

Felipe Pimentel

[email protected]

Page 3: Maratona Windows Phone 7
Page 4: Maratona Windows Phone 7

Introdução aoWindows phone 7 “Mango”

Page 5: Maratona Windows Phone 7

Visão geral do Windows Phone Nova plataforma mobile da Microsoft. Foco no usuário final Nova interface – Metro

Interface também adotada no Windows 8. Utilização de HUBS Desenvolvimento .NET Windows Phone Marketplace.

Page 6: Maratona Windows Phone 7

Hardware do Windows Phone Padronização junto aos fabricantes. Mínimo: 256 MB RAM e 8 GB de storage Botões – Back (Voltar) , Start (Iniciar) e Search (Procurar) Tela – Multitouch capacitivo (800x480) Câmera – mínimo de 5 megapixels + flash Sensores e serviço

Wi-fi Accelerometer Compass (Bússola) Location (GPS) Speech (Reconhecimento de voz) Vibration Push Notifications

Page 7: Maratona Windows Phone 7

Arquitetura do Windows Phone

Page 8: Maratona Windows Phone 7

Ciclo de Vida de Desenvolvimento

Page 9: Maratona Windows Phone 7

VISUAL STUDIO

Page 10: Maratona Windows Phone 7

O que é o VISUAL STUDIO?

Um conjunto de ferramentas de desenvolvimento que permite aos desenvolvedores de software resolver problemas complexos e criar soluções inovadoras.

Baseia-se em três pilares principais:Desenvolvimento rápido de aplicativosColaboração eficaz em equipeExperiências de usuário inovadoras

Page 11: Maratona Windows Phone 7

O que posso fazer com o VS?

• Desenvolver Web Sites ASP.NET, AJAX.NET e Silverlight. • Impressionar com mídia e gráficos desenvolvidos com

o Windows Presentation Foundation. • Desenvolver aplicativos que estendem funções do

Office. • Desenvolver aplicações para Windows Phone.• Desenvolver jogos.• Desenvolver soluções de integração coorporativa com

Windows Communication Foundation e o Windows Workflow Foundation e muito mais...

Page 12: Maratona Windows Phone 7

Criando uma Solução

Page 13: Maratona Windows Phone 7

Criando a partir de templates

Page 14: Maratona Windows Phone 7

Interface Design

Page 15: Maratona Windows Phone 7

Interface Programação

Page 16: Maratona Windows Phone 7

Lógica de Programação

Page 17: Maratona Windows Phone 7

Estruturas de controle de fluxo if ... else

Comando condicional: executa um bloco de comandos se uma condição for verdadeira.

A cláusula else (condição falsa) é opcional.

if (idade >= 18){ Response.Write("Autorizado."); Response.Write("Sua idade é: " + idade);}else if (idade > 15 && idade < 18){ Response.Write("Somente com os pais."); Response.Write("Menor de 18 anos.");}else{ Response.Write("Não autorizado."); Response.Write("Menor de 15 anos.");}

Page 18: Maratona Windows Phone 7

Estruturas de controle de fluxo switch … case

Estrutura de decisão que seleciona um comando com base no valor de uma variável.

A cláusula default é opcional.

switch (sexo){ case "masculino": Response.Write("Homem"); break; case "feminino": Response.Write("Mulher"); break; default: Response.Write("Não informado"); break;}

Page 19: Maratona Windows Phone 7

Estruturas de Repetição

for Estrutura de repetição composta por três expressões:

Inicialização.Condição de parada.Atualização.

for (int i = 0; i < 10; i++) { Response.Write(i); Response.Write("<br />");}

Page 20: Maratona Windows Phone 7

Estruturas de Repetição

while Estrutura de repetição que realiza as operações

indicadas enquanto a condição especificada for verdadeira.

int i = 0;while(i < 10){ Response.Write(i); Response.Write("<br />"); i++;}

Page 21: Maratona Windows Phone 7

Estruturas de Repetição do ... while

Estrutura de repetição semelhante à anterior, porém as condições são verificadas ao final da execução.

As operações especificadas são executadas pelo menos uma vez. Necessita do caractere “;” ao final da estrutura.

int i = 0;do{ Response.Write(i); Response.Write("<br />"); i++;}while (i < 10);

Page 22: Maratona Windows Phone 7

Conversão DE TIPOS

// Exemplo Istring s = "123"; int i = s;Response.Write(i);

// Exemplo IIstring s = "123";int i = Convert.ToInt32(s);Response.Write(i);

// Exemplo IIIstring s = "123";int i = int.Parse(s);Response.Write(i);

// Exemplo Vstring s = "valor";int i = 0;if (int.TryParse(s, out i)){ Response.Write(i);}else{ Response.Write("inválido");}

// Exemplo IVstring s = "valor"; int i = Convert.ToInt32(s);Response.Write(i);

Page 23: Maratona Windows Phone 7

Estruturas de Repetição foreachEsta estrutura de repetição é uma variação

do for. Especifica uma variável auxiliar e a coleção

ou array cujos elementos serão percorridos.

int[] i = { 1, 3, 5, 7, 9 };foreach (int j in i){ Response.Write(j); Response.Write("<br />");}

Page 24: Maratona Windows Phone 7

Namespaces• Declarando um namespace

• Namespaces em cadeia

• Instrução Using

namespace Cadastro.Telas {public class TelaCliente {}

}

using System;using System.Data;using Cadastro.Telas;using Pessoa = Cadastro.Cliente;

namespace Cadastro {public class Cliente {}

}

Page 25: Maratona Windows Phone 7

Introdução ao xaml

Page 26: Maratona Windows Phone 7

O que é XAML?

• É uma linguagem de marcação.• Tecnologia de criação de interface do .NET

Framework.• Disponível desde o .NET Framework 3.0• Criação de interface para as plataformas:

– WPF (Windows Presentation Foundation)– Silverlight para Web– Silverlight para Windows Phone– Windows 8

Page 27: Maratona Windows Phone 7

Poderes e limitações do XAML

• É uma linguagem declarativa.• Mais usada para criar e instanciar objetos.• Templates• Data Binding• Animações/Efeitos de Transição • Há coisas que só podem ser feitas no XAML,

outras apenas no código e outras em ambas.

Page 28: Maratona Windows Phone 7

Sintaxe do XAML

• Elementos do objeto– Um elemento do objeto declara a instância de um tipo

(componente).– Para iniciar o objeto sempre começa com “<”, seguido do nome do

objeto e finaliza com “>”.– Para fechar um objeto com conteúdo, começa com “</”.– Para fechar um objeto sem conteúdo, termina com “/>”.

<StackPanel> <Button Content="Click Me"/>

</StackPanel>

Page 29: Maratona Windows Phone 7

Sintaxe do XAML

• Atributos (Propriedades)– Propriedades podem ser declaradas como

atributos no XAML.

<Button Background="Blue" Foreground="Red" Content="This is a button"/>

Page 30: Maratona Windows Phone 7

Sintaxe do XAML

<Button> <Button.Background>

<SolidColorBrush Color="Blue"/> </Button.Background> <Button.Foreground>

<SolidColorBrush Color="Red"/> </Button.Foreground> <Button.Content>

This is a button </Button.Content>

</Button>

• Sintaxe de propriedade do elemento– Algumas propriedade precisam ser declaradas

como elemento de objeto.

Page 31: Maratona Windows Phone 7

Sintaxe do XAML

<Button> <Button.Background>

<SolidColorBrush Color="Blue"/> </Button.Background> <Button.Foreground>

<SolidColorBrush Color="Red"/> </Button.Foreground> <Button.Content>

This is a button </Button.Content>

</Button>

• Sintaxe de propriedade do elemento– Algumas propriedade precisam ser declaradas

como elemento de objeto.

Page 32: Maratona Windows Phone 7

Elementos Contêiner

• Habilita criação complexas de layouts.• Facilita questão diversas do layout como

posicionamento e redimensionamento.• Todos elementos de objeto precisam estar em

pelo menos um Elemento Contêiner.• Alguns Elementos Contêiner são:

– Grid– Canvas– StackPanel.

Page 33: Maratona Windows Phone 7

Elementos Contêiner

• Canvas – Define uma área na qual os Elementos filhos podem definir coordenadas relativas a essa área.- Mais fácil de trabalhar com Posições X e Y.

<Canvas Width="640" Height="480" Background="White">

<Rectangle Canvas.Left="30" Canvas.Top="30" Fill="red"

Width="200" Height="200" /></Canvas>

Page 34: Maratona Windows Phone 7

Elementos Contêiner

• Grid– Define uma área

flexível que consiste em colunas e linhas..

<Grid Width="400" Height="300"> <Grid.ColumnDefinitions> …</Grid.ColumnDefinitions>

<Grid.RwDefinitions> ...</Grid.RowDefinitions>

//Restante dos elementos

</Grid>

Page 35: Maratona Windows Phone 7

Elementos Contêiner

• Grid

Page 36: Maratona Windows Phone 7

Elementos Contêiner

• StackPanel– Organiza os elementos filhos em uma

única linha que pode ser orientada horizontalmente ou verticalmente.

<StackPanel Margin="20"> <Rectangle Fill="Red" Width="50" Height="50" Margin="5" /> <Rectangle Fill="Blue" Width="50" Height="50" Margin="5" /><Rectangle Fill="Green" Width="50" Height="50" Margin="5" /> <Rectangle Fill="Purple" Width="50" Height="50" Margin="5" />

</StackPanel>

Page 37: Maratona Windows Phone 7

Data binding

Page 38: Maratona Windows Phone 7

Data Binding

• Disponibiliza uma forma simples para exibir dados no layout.

• Estabelece uma conexão entre o UI e um objeto de dados.

• Mudanças feito no UI ou diretamente no objeto, são refletidos em ambos lados.– Exemplo: Um usuário edita um TextBlock. O valor

atribuido a esse elemento é automaticamente atualizado no objeto de origem também.

Page 39: Maratona Windows Phone 7

Data Binding

• O Binding precisa especificar a origem e o destino.

Page 40: Maratona Windows Phone 7

Data Binding

• Exemplo:

<TextBox x:Name="MyTextBox" Text="Text" Foreground="{Binding Brush1}"/>

XAML

Código

MyColors textcolor = new MyColors(); textcolor.Brush1 = new SolidColorBrush(Colors.Red);MyTextBox.DataContext = textcolor;

Page 41: Maratona Windows Phone 7

Data Binding

• Formas de Binding:– One Way: Padrão, as alterações no objeto refletem no

UI, mas o inverso não acontece.– Two Way: Alterações feitas no objeto e no UI refletem

em ambos lados.– One Time: Alterações feitas em ambos lados não são

refletidas. Os dados são apenas enviados uma vez ao UI.

Page 42: Maratona Windows Phone 7

Data Binding

• Exemplo:

<TextBox x:Name="MyTextBox" Text="Text" Foreground="{Binding Brush1, Mode=TwoWay}"/>

XAML

Código

MyColors textcolor = new MyColors(); textcolor.Brush1 = new SolidColorBrush(Colors.Red);MyTextBox.DataContext = textcolor;

Page 43: Maratona Windows Phone 7

ISOLATED STORAGE

Page 44: Maratona Windows Phone 7

Isolated Storage

• Permite a armazenar dados no próprio Windows Phone.

• Toda ação de armazenamento e leitura de dados locais está restrita ao Isolated Storage.

• É mais seguro, reduz as chances de acessos não autorizados e erros.

Page 45: Maratona Windows Phone 7

Opções de armazenamento

• É possível armazenar:– Configurações: Gravar dados como

key/value (chave/valor) usando a classe IsolatedStorageSettings.

– Arquivos e Pastas: Gravar arquivos e pastas usando a classe IsolatedStorageFile.

– Dados relacionais: Gravar dados em um banco de dados local usando LINQ to SQL.

Page 46: Maratona Windows Phone 7

Opções de armazenamento

Page 47: Maratona Windows Phone 7

Opções de armazenamento

• Chave/Valor (IsolatedStorageSettings):

string NomeUsuario;

if( IsolatedStorageSettings.ApplicationSettings.TryGetValue<string>("NomeUsuario", out NomeUsuario)){ IsolatedStorageSettings.ApplicationSettings.Add("NomeUsuario", "José");

}

Código

Page 48: Maratona Windows Phone 7

Opções de armazenamento

• Arquivos/Pastas (IsolatedStorageSettings):Código

var store = IsolatedStorageFile.GetUserStoreForApplication()

store.CreateDirectory("MyApp1"); IsolatedStorageFileStream rootFile = store.CreateFile("InTheRoot.txt"); rootFile.Close();

if (store.FileExists(filePath)) { StreamWriter sw = new StreamWriter(

store.OpenFile( "InTheRoot.txt”, FileMode.Open, . . FileAccess.Write)); }

Page 49: Maratona Windows Phone 7

Opções de armazenamento

• LINQ to SQL:Código

var toDoItemsInDB = from ToDoItem todo in toDoDB.ToDoItems select todo; ToDoItems = new ObservableCollection<ToDoItem>(toDoItemsInDB);

Page 50: Maratona Windows Phone 7

CICLO DE VIDA

Page 51: Maratona Windows Phone 7

Ciclo de Vida

running

deactivated

dormantTombstoned

activated

Page 52: Maratona Windows Phone 7

Ciclo de Vida

• OnNavigatedTo– Chamado quando o usuário navega para a página.

• OnNavigatedFrom– Chamado quando o usuário sai da página.

Page 53: Maratona Windows Phone 7

Ciclo de Vida

• Desactived– Chamado quando o usuário:

• Pressiona o botão Start• Muda para outro aplicativo.

• Actived– Chamado quando o aplicativo retorna do estado:

• Dormant.• Tombstoned.

Page 54: Maratona Windows Phone 7

Ciclo de Vida

• Launching– Chamado quando o usuário:

• Abre o programa pela lista de aplicativos• Abre o programa via Tile.• Recebe uma notificação pedindo para abrir o aplicativo e ele aceita.

• Closing– Chamado quando o usuário aperta o botão “Back” do Windows

Phone para sair do aplicativo.

Page 55: Maratona Windows Phone 7

Ciclo de VidaQuando o usuário aperta em “Back” saindo do aplicativo.

Quando o aplicativo é aberto via lista, Tite ou Notification

Quando o usuário volta ao aplicativo apertando “Back” ou quando retorna de Tombstoned ou Dormant.

Quando o usuário aperta em Start ou seleciona outro aplicativo aberto.

Page 56: Maratona Windows Phone 7

PANORAMA E PIVOT

Page 57: Maratona Windows Phone 7

Panorama

• Oferece uma experiência única de ver controles, dados e serviços usando uma tela horizontal.

• Não fica limitado ao tamanho da tela do Windows Phone.• O usuário tem a liberdade de navegar para esquerda ou direita.

Page 58: Maratona Windows Phone 7

Panorama

Page 59: Maratona Windows Phone 7

Panorama

• PanoramaItem é o controle secundário que serve como contêiner para o conteúdo de um Panorama.

Page 60: Maratona Windows Phone 7

Pivot

• Uma forma rápida de gerenciar layout ou páginas.• O usuário tem a liberdade de navegar para esquerda ou

direita, mas não tem um pré-visualização da parte direita.

Page 61: Maratona Windows Phone 7

Pivot

Page 62: Maratona Windows Phone 7

Pivot

• PivotItem é o controle secundário que serve como contêiner para o conteúdo de um Pivot.

Também é possível navegar tocandonos títulos das páginas

Page 63: Maratona Windows Phone 7

WINDOWS PHONE 7Silverlight