Desenvolvendo com Silverlight para WP7 Mango [Update]

828 views
701 views

Published on

Apresentação feita em serra talhada

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
828
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Desenvolvendo com Silverlight para WP7 Mango [Update]

  1. 1. Felipe Pimentel Consultor e Arquiteto - ASP.NET 4.0 - Windows Phone 7@FelipePimentellFelipe Pimentelfelipe.pimentel@invistatecnologia.com
  2. 2. Introdução aoWindows phone 7 “Mango”
  3. 3. 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.
  4. 4. 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
  5. 5. Arquitetura do Windows Phone
  6. 6. Ciclo de Vida de Desenvolvimento
  7. 7. VISUAL STUDIO
  8. 8. 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
  9. 9. 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...
  10. 10. Criando uma Solução
  11. 11. Criando a partir de templates
  12. 12. Interface Design
  13. 13. Interface Programação
  14. 14. Lógica de Programação
  15. 15. 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."); }
  16. 16. 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; }
  17. 17. 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 />"); }
  18. 18. 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++; }
  19. 19. 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);
  20. 20. 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); }
  21. 21. 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 />"); }
  22. 22. 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;
  23. 23. Introdução ao xaml
  24. 24. 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
  25. 25. 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.
  26. 26. 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>
  27. 27. Sintaxe do XAML • Atributos (Propriedades) – Propriedades podem ser declaradas como atributos no XAML. <Button Background="Blue" Foreground="Red" Content="This is a button"/>
  28. 28. 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>
  29. 29. 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>
  30. 30. 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.
  31. 31. 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>
  32. 32. 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>
  33. 33. Elementos Contêiner• Grid
  34. 34. 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>
  35. 35. Data binding
  36. 36. 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.
  37. 37. Data Binding • O Binding precisa especificar a origem e o destino.
  38. 38. 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;
  39. 39. 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.
  40. 40. 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;
  41. 41. PANORAMA E PIVOT
  42. 42. 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.
  43. 43. Panorama
  44. 44. Panorama • PanoramaItem é o controle secundário que serve como contêiner para o conteúdo de um Panorama.
  45. 45. 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.
  46. 46. Pivot
  47. 47. 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
  48. 48. Acelerometro
  49. 49. Camera
  50. 50. Photo
  51. 51. GeoCoordinateWatcher
  52. 52. WebBrowserTask
  53. 53. SearchTask
  54. 54. SmsComposeTask
  55. 55. PhoneNumberChooserTask
  56. 56. MediaPlayerLauncher
  57. 57. Orientation
  58. 58. CICLO DE VIDA
  59. 59. Ciclo de Vida running activated deactivated Tombstoned dormant
  60. 60. Ciclo de Vida • OnNavigatedTo – Chamado quando o usuário navega para a página. • OnNavigatedFrom – Chamado quando o usuário sai da página.
  61. 61. 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.
  62. 62. 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.
  63. 63. Quando ousuário Ciclo de Vida Quando o aplicativo éaperta em aberto via“Back” saindo lista, Tite oudo aplicativo. Notification Quando o usuárioQuando o aperta emusuário volta Start ouao aplicativo selecionaapertando outro“Back” ou aplicativoquando aberto.retorna deTombstonedou Dormant.
  64. 64. ISOLATED STORAGE
  65. 65. 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.
  66. 66. 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.
  67. 67. Opções de armazenamento • É possível armazenar: – Chave/Valor: Gravar dados com o par key/value 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.
  68. 68. Opções de armazenamento
  69. 69. Opções de armazenamento• Chave/Valor (IsolatedStorageSettings): Código string NomeUsuario; if( IsolatedStorageSettings.ApplicationSettings.TryGetValue<string> ("NomeUsuario", out NomeUsuario)) { IsolatedStorageSettings.ApplicationSettings.Add("NomeUsuario", "José"); }
  70. 70. 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)); }
  71. 71. Opções de armazenamento• LINQ to SQL: Código var toDoItemsInDB = from ToDoItem todo in toDoDB.ToDoItems select todo; ToDoItems = new ObservableCollection<ToDoItem>(toDoItemsInDB);
  72. 72. SERVIÇOS?
  73. 73. SilverlightWINDOWS PHONE 7

×