Silverlight 4 into

995 views
912 views

Published on

The slides of a recent workshop i gave to a freeler group about Silverlight 4.0.

Language portuguese

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
995
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Silverlight 4 into

  1. 1. Silverlight 4.0 Insights<br />A tech overview & quick start<br />Alexandre Marreiros, 2011<br />
  2. 2. Agenda<br />Alexandre Marreiros, 2011<br />UserControls<br />Blend<br />Design & Logic<br />Data Binding<br />Behaviours<br />Referencias<br />Contactos<br />Problema<br />Intro<br />Tools<br />Demo<br />XAML<br />Layout<br />Canvas<br />StackPanel<br />Grid<br />
  3. 3. Problema<br />Alexandre Marreiros, 2011<br />Complexidade de criação de aplicações RIA.<br />As frameworks tradicionais para a criação de aplicações RIA, estão tipicamente associadas a uma plataforma unica.<br />
  4. 4. Intro<br />Alexandre Marreiros, 2011<br />
  5. 5. Intro<br />Alexandre Marreiros, 2011<br />É uma extensão à plataforma .NET.<br />É instalada através de um plugin gratuito.<br />É transversal a diferentes browsers e plataformas<br />Pode ser definida como uma plataforma, para desenvolvimento de aplicações ricas para desktop, web e mobile.<br />
  6. 6. Intro<br />Alexandre Marreiros, 2011<br />Originalmente chamava-se WPF/Everywhere.<br />É suportado por quase todas as versõe dos sistemas operativos Windows e Macintosh OS.<br />Suportado por todos os browsers actuais.<br />Desenvolvido com o objectivo principal de trazer uma maior usabilidade e experiencia de utilização, a dispositivos mais fracos e à Web. Rapidamente se tem imposto também em aplicações LOB. <br />
  7. 7. Tools<br />Visual Studio 2008 com SP1 ou superior ( pode ser a versão express).<br />Silverlight Tools para o Visual Studio.<br />Expression Blend.<br />Alexandre Marreiros, 2011<br />
  8. 8. Demo<br />Alexandre Marreiros, 2011<br />Silverlight App Visual Studio <br />
  9. 9. Demo<br />Alexandre Marreiros, 2011<br />Estrutura de ficheiros Silverlight<br />App.XAML<br />MainPage.XAML<br />Assets e Views<br />
  10. 10. Demo<br />O Silverlight é uma tecnologia compilavel.<br />Ao compilar uma aplicação silverlight obtemos um ficheiro do tipo XAP.<br />Alexandre Marreiros, 2011<br />
  11. 11. Demo<br />Alexandre Marreiros, 2011<br /> <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"><br /> <param name="source" value="ClientBin/SilverlightApplication2.xap"/><br /> <param name="onError" value="onSilverlightError" /><br /> <param name="background" value="white" /><br /> <param name="minRuntimeVersion" value="4.0.50826.0" /><br /> <param name="autoUpgrade" value="true" /><br /> <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none"><br /> <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/><br /> </a><br /></object><br />
  12. 12. XAML<br />Alexandre Marreiros, 2011<br />Define uma hierarquia de objectos designada de object tree.<br />Cada nó da arvore pode ser decomposto em templates.<br />A existencia da descrição visual da hierarquia de objectos por meio de um ficheiro XAML, promove a interoperabilidade entre ferramentas de diferentes geneses. <br />
  13. 13. Layout<br />Para disposição dos componentes que constituem a user interface do silverlight, é utilizado um metodo baseado em modelos de layout.<br />O sistema suporta a disposição de elementos sobre uma superficie de forma dinamica.<br />Alexandre Marreiros, 2011<br />
  14. 14. Layout<br />Cada superficie de layout é ela mesma um control. As superficies dinamicas para disposição dinamica de controlos mais comuns em silverlight são:<br />Canvas.<br />StackPanel.<br />Grid.<br />Alexandre Marreiros, 2011<br />
  15. 15. Canvas<br />Alexandre Marreiros, 2011<br />Ui element<br />Ui element<br />Ui element<br /><Canvas><br /><ButtonCanvas.Top="50“ Canvas.Left="50"Content="Button 1"FontSize="18"Width="150"Height="45"/><br /> <ButtonCanvas.Top="70"Canvas.Left="80"Canvas.ZIndex="99"Content="Button 3"FontSize="18"Width="150"Height="45"/> 5:</Canvas><br />Ui element<br />
  16. 16. Grid<br />Alexandre Marreiros, 2011<br />Ui element<br />Ui element<br /><GridShowGridLines="True"><br /><Grid.RowDefinitions><br /><RowDefinitionHeight="60"/><br /><RowDefinitionHeight="60"/><br /><RowDefinitionHeight="60"/><br /> </Grid.RowDefinitions><br /> <Grid.ColumnDefinitions><br /> <ColumnDefinitionWidth="175"/><br /><ColumnDefinitionWidth="175"/><br /><ColumnDefinitionWidth="175"/><br /> </Grid.ColumnDefinitions><br /><ButtonGrid.Column="0"Grid.Row="0"Content="Button 1"/><br /></Grid><br />
  17. 17. StackPanel<br />Alexandre Marreiros, 2011<br />Ui element<br />Ui element<br />Ui element<br />Ui element<br />Ui element<br /><StackPanel><br /><ButtonMargin="10"<br />Content="Button 1"Width="150"Height="5"/><br /><ButtonMargin="10"Content="Button 2"FontSize="18“<br />Width="150"Height="45"/><br /></StackPanel><br />
  18. 18. Demo<br />Alexandre Marreiros, 2011<br />Silverlight Layouts<br />
  19. 19. User Interface<br />O silverlight disponibiliza a sua UI por intermedio de controlos.<br />Através da criação de USER CONTROLS é possivel criar componetes reutilizaveis.<br />Conceptualmente e a nivel de instanciação estes controlos são em tudo iguais aos do ASP.NET.<br />Alexandre Marreiros, 2011<br />
  20. 20. Demo<br />Alexandre Marreiros, 2011<br />Silverlight User Controls<br />
  21. 21. Blend<br />Alexandre Marreiros, 2011<br />
  22. 22. Design & Logic<br />Alexandre Marreiros, 2011<br />Development<br />Design<br />Presentation<br />Logic<br />
  23. 23. Data Binding<br />Alexandre Marreiros, 2011<br />Objecto .NET<br />Objecto .NET<br />Mecanismo de Binding<br />
  24. 24. Data Binding<br />O silverlight disponibiliza mecanismos de binding.<br />Através das propriedades dos controlos;<br />Através de XAML.<br /><TextBlock Text=“{Binding codeBind, Mode= OneWay” /><br />Efectuando o binding de colections sobre data sources<br /><ListBox ItemSource=“{Binding countryCollection, Mode=OneWay}”/><br />Alexandre Marreiros, 2011<br />
  25. 25. Data Binding de objectos<br />Alexandre Marreiros, 2011<br />XAML<br /><grid x:name=“CustomerGrid”><br /><TextBlock x:Name=“Customer” Text=“@Binding CustomerText ”.../><br /></grid><br />XAML<br /><grid x:name=“CustomerGrid”><br /><TextBlock x:Name=“Customer”.../><br /></grid><br />C#<br />CustomerClass cust = getCustomers();<br />Customer.Text = cust.CustomerText;<br />...<br />C#<br />CustomerClass cust = getCustomers();<br />CustomerGrid.DataContext = cust;<br />...<br />O Objecto Source deverá efectuar a implementação da propriedade INotiFyPropertyChanged<br />
  26. 26. Demo<br />Alexandre Marreiros, 2011<br />Silverlight Binding Objects<br />
  27. 27. Data Binding através da rede<br />O Silverlight disponibiliza a capacidade de Binding de DataSources externas ao servidor.<br />Todo o Binding é Assincrono;<br />Acessos Cross Domain carecem de autorização, ou relações de confiança.<br />São fontes de dados validas:<br />XML, JSON,RSS, WCF services<br />Alexandre Marreiros, 2011<br />
  28. 28. Data Binding através da rede<br />Existem dois objectos distintos na plataforma silverlight destinados ao processamento de pedidos na rede:<br />WebClient<br />WebRequest<br />Alexandre Marreiros, 2011<br />
  29. 29. Data Binding através da rede<br />WebClient<br />Alexandre Marreiros, 2011<br />Void GetNetworkData(){<br /> WebClient wc = new WebClient();<br /> Uri req = new URI (“http://sapo.pt/noticias.htm”);<br />wc.DownloadStringComplete += Processing();<br /> wc.DownloadStringAsync(req);<br />}<br />
  30. 30. Data Binding através da rede<br />WebRequest<br />Alexandre Marreiros, 2011<br />Void GetNetworkData(){<br /> WebRequest wr = WebRequest.Create (“http://sapo.pt/noticias.htm”);<br /> wr.BeginGetRequestStream(reqStream,wr);<br />}<br />Void reqStream(IAsyncResult ar){<br /> WebRequest wr = (WebRequest)ar.AsyncState;<br /> Stream st = wr.EndGetRequestStream(ar);<br /> wr.BeginGetResponse(ProcessResponse,wr);<br />}<br />Void ProcessResponse(IAsyncResult ar){<br /> //cria Web Request novamente <br /> //processamento do pedido<br />}<br />
  31. 31. Data Binding através da rede<br />Alexandre Marreiros, 2011<br />XML parsing: Efectuado recorrendo aos objectos da plataforma .Net XMLReader, document ou Linq to XML.<br />JSON: Recorrendo ao DataContractJsonSerializer do .net<br />RSS: Efectuando o parsing do stream através de parser próprio.<br />SyndicationFeed feed = SyndicationFeed.Load(stream)<br />
  32. 32. Data Binding através da rede<br />Alexandre Marreiros, 2011<br />Os pedidos CrossDomain so podem ser atendidos se o servidor o permitir.<br />Por omissão os serviços Silverlight são considerados not trusted.<br />Para saber mais sobre esta questão <br />http://msdn.microsoft.com/en-us/library/cc197955(v=vs.95).aspx<br />Workaround: Criar no servidor onde correra a aplicação silverlight um serviço que instancia o serviço remoto e que será consultado pelo silverlight.<br />
  33. 33. Behaviours<br />Eventos;<br />Trigers;<br />Actions;<br />Behaviours;<br />Alexandre Marreiros, 2011<br />
  34. 34. Demo<br />Alexandre Marreiros, 2011<br />Iteracting with silverlight controls<br />
  35. 35. Alexandre Marreiros, 2011<br />Referencias<br /><ul><li>http://Silverlight.Net;
  36. 36. Programming C# 4.0: Building Windows, Web, and RIA Applications for the .NET 4.0 Framework (Animal Guide), Livroo’reilly
  37. 37. Pro Silverlight 4 in C# by Matthew MacDonald;
  38. 38. http://timheuer.com/blog/articles/getting-started-with-silverlight-development.aspx, Tim Heuer Blog; </li></li></ul><li>Contactos<br />Alexandre Marreiros, 2011<br />Email: Amarreiros@gmail.com<br />Twitter: @alexmarreiros<br />Feel free to ask<br />

×