5. 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.
6. 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
10. 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 aplicativos
Colaboração eficaz em equipe
Experiências de usuário inovadoras
11. 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...
17. 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.");
}
18. 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;
}
19. 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 />");
}
20. 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++;
}
21. 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);
22. Conversão DE TIPOS
// Exemplo I // Exemplo IV
string s = "123"; string s = "valor";
int i = s; int i = Convert.ToInt32(s);
Response.Write(i); Response.Write(i);
// Exemplo II
// Exemplo V
string s = "123";
int i = Convert.ToInt32(s); string s = "valor";
Response.Write(i); int i = 0;
if (int.TryParse(s, out i))
{
Response.Write(i);
}
else
// Exemplo III
string s = "123"; {
int i = int.Parse(s); Response.Write("inválido");
Response.Write(i); }
23. Estruturas de Repetição
foreach
Esta 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 />");
}
24. Namespaces
• Declarando um namespace
namespace Cadastro {
public class Cliente {}
}
• Namespaces em cadeia
namespace Cadastro.Telas {
public class TelaCliente {}
}
• Instrução Using
using System;
using System.Data;
using Cadastro.Telas;
using Pessoa = Cadastro.Cliente;
26. 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
27. 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.
28. 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>
29. Sintaxe do XAML
• Atributos (Propriedades)
– Propriedades podem ser declaradas como
atributos no XAML.
<Button Background="Blue" Foreground="Red" Content="This is a button"/>
30. Sintaxe do XAML
• Sintaxe de propriedade do elemento
– Algumas propriedade precisam ser declaradas
como elemento de objeto.
<Button>
<Button.Background>
<SolidColorBrush Color="Blue"/>
</Button.Background>
<Button.Foreground>
<SolidColorBrush Color="Red"/>
</Button.Foreground>
<Button.Content>
This is a button
</Button.Content>
</Button>
31. Sintaxe do XAML
• Sintaxe de propriedade do elemento
– Algumas propriedade precisam ser declaradas
como elemento de objeto.
<Button>
<Button.Background>
<SolidColorBrush Color="Blue"/>
</Button.Background>
<Button.Foreground>
<SolidColorBrush Color="Red"/>
</Button.Foreground>
<Button.Content>
This is a button
</Button.Content>
</Button>
32. 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.
33. 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>
34. 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>
36. 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>
38. 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.
39. Data Binding
• O Binding precisa especificar a origem e
o destino.
40. Data Binding
• Exemplo:
XAML
<TextBox x:Name="MyTextBox" Text="Text"
Foreground="{Binding Brush1}"/>
Código
MyColors textcolor = new MyColors();
textcolor.Brush1 = new SolidColorBrush(Colors.Red);
MyTextBox.DataContext = textcolor;
41. 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.
42. Data Binding
• Exemplo:
XAML
<TextBox x:Name="MyTextBox" Text="Text"
Foreground="{Binding Brush1, Mode=TwoWay}"/>
Código
MyColors textcolor = new MyColors();
textcolor.Brush1 = new SolidColorBrush(Colors.Red);
MyTextBox.DataContext = textcolor;
44. 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.
45. 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.
47. Opções de armazenamento
• Chave/Valor (IsolatedStorageSettings):
Código
string NomeUsuario;
if( IsolatedStorageSettings.ApplicationSettings.TryGetValue<string>
("NomeUsuario", out NomeUsuario))
{
IsolatedStorageSettings.ApplicationSettings.Add("NomeUsuario", "Jos
é");
}
48. 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));
}
49. Opções de armazenamento
• LINQ to SQL:
Código
var toDoItemsInDB = from ToDoItem todo in toDoDB.ToDoItems select todo;
ToDoItems = new ObservableCollection<ToDoItem>(toDoItemsInDB);
51. Ciclo de Vida
running
activated deactivated
Tombstoned dormant
52. Ciclo de Vida
• OnNavigatedTo
– Chamado quando o usuário navega para a página.
• OnNavigatedFrom
– Chamado quando o usuário sai da página.
53. 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.
54. 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.
55. Quando o
usuário
Ciclo de Vida Quando o
aplicativo é
aperta em aberto via
“Back” saindo lista, Tite ou
do aplicativo. Notification
Quando o
usuário
Quando o aperta em
usuário volta Start ou
ao aplicativo seleciona
apertando outro
“Back” ou aplicativo
quando aberto.
retorna de
Tombstoned
ou Dormant.
57. 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.
59. Panorama
• PanoramaItem é o controle secundário que
serve como contêiner para o conteúdo de
um Panorama.
60. 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.
62. Pivot
• PivotItem é o controle secundário que serve como contêiner para o
conteúdo de um Pivot.
Também é possível navegar tocando
nos títulos das páginas