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

Más contenido relacionado

Similar a Silverlight 4 into

Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011 Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011 Felipe Pimentel
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
jQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmicajQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmicaVictor Cavalcante
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPelliando dias
 
HTML5 - A nova fronteira no desenvolvimento de aplicações WEB
HTML5 - A nova fronteira no desenvolvimento de aplicações WEBHTML5 - A nova fronteira no desenvolvimento de aplicações WEB
HTML5 - A nova fronteira no desenvolvimento de aplicações WEBFábio Flatschart
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Ramon Durães
 
Palestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC MaríliaPalestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC MaríliaElvis Fusco
 
Quasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoQuasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoPatrick Monteiro
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScriptHeider Lopes
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1michellobo
 
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...Fabrício Lopes Sanchez
 

Similar a Silverlight 4 into (20)

Conceitos de Ajax
Conceitos de AjaxConceitos de Ajax
Conceitos de Ajax
 
Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011 Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
jQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmicajQuery e ASP.Net MVC a dupla dinâmica
jQuery e ASP.Net MVC a dupla dinâmica
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
OWASP - Ferramentas
OWASP - FerramentasOWASP - Ferramentas
OWASP - Ferramentas
 
Desenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHPDesenvolvimento Web Avançado usando PHP
Desenvolvimento Web Avançado usando PHP
 
HTML5 - A nova fronteira no desenvolvimento de aplicações WEB
HTML5 - A nova fronteira no desenvolvimento de aplicações WEBHTML5 - A nova fronteira no desenvolvimento de aplicações WEB
HTML5 - A nova fronteira no desenvolvimento de aplicações WEB
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
 
Palestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC MaríliaPalestra Plataforma .NET na ETEC Marília
Palestra Plataforma .NET na ETEC Marília
 
Quasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoQuasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenho
 
jQuery e ASP.Net mvc2
jQuery e ASP.Net mvc2jQuery e ASP.Net mvc2
jQuery e ASP.Net mvc2
 
Asp.net
Asp.netAsp.net
Asp.net
 
IoTizando com JavaScript
IoTizando com JavaScriptIoTizando com JavaScript
IoTizando com JavaScript
 
Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1Curso ASP.Net - Módulo 1
Curso ASP.Net - Módulo 1
 
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
Construindo aplicações robustas com a suíte de tecnologias gratuítas da Micro...
 
Ria
RiaRia
Ria
 
Ferranentas OWASP
Ferranentas OWASPFerranentas OWASP
Ferranentas OWASP
 

Más de Alexandre Marreiros

Xamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsXamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsAlexandre Marreiros
 
ASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a coupleASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a coupleAlexandre Marreiros
 
Quick View of Angular JS for High School
Quick View of Angular JS for High SchoolQuick View of Angular JS for High School
Quick View of Angular JS for High SchoolAlexandre Marreiros
 
Pt xug xamarin pratices on big ui consumer apps
Pt xug  xamarin pratices on big ui consumer appsPt xug  xamarin pratices on big ui consumer apps
Pt xug xamarin pratices on big ui consumer appsAlexandre Marreiros
 
Gab2015 azure search as a service
Gab2015 azure search as a serviceGab2015 azure search as a service
Gab2015 azure search as a serviceAlexandre Marreiros
 
Universal Apps Development using HTML 5 and WINJS
Universal Apps Development using HTML 5 and WINJSUniversal Apps Development using HTML 5 and WINJS
Universal Apps Development using HTML 5 and WINJSAlexandre Marreiros
 
Windows8.1 html5 dev paradigm discussion netponto
Windows8.1 html5 dev paradigm discussion netpontoWindows8.1 html5 dev paradigm discussion netponto
Windows8.1 html5 dev paradigm discussion netpontoAlexandre Marreiros
 
Mobile first responsive industry sessions
Mobile first responsive industry sessionsMobile first responsive industry sessions
Mobile first responsive industry sessionsAlexandre Marreiros
 
Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1 Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1 Alexandre Marreiros
 
pragmatic Mobile apps choices frameworks and dev
pragmatic Mobile apps choices frameworks and devpragmatic Mobile apps choices frameworks and dev
pragmatic Mobile apps choices frameworks and devAlexandre Marreiros
 

Más de Alexandre Marreiros (20)

Agular fromthetrenches2netponto
Agular fromthetrenches2netpontoAgular fromthetrenches2netponto
Agular fromthetrenches2netponto
 
Whats a Chat bot
Whats a Chat botWhats a Chat bot
Whats a Chat bot
 
Type of angular 2
Type of angular 2Type of angular 2
Type of angular 2
 
Xamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected appsXamarin devdays 2017 - PT - connected apps
Xamarin devdays 2017 - PT - connected apps
 
ASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a coupleASP.NEt MVC and Angular What a couple
ASP.NEt MVC and Angular What a couple
 
Angular 2
Angular 2Angular 2
Angular 2
 
Xamarin.forms
Xamarin.forms Xamarin.forms
Xamarin.forms
 
Quick View of Angular JS for High School
Quick View of Angular JS for High SchoolQuick View of Angular JS for High School
Quick View of Angular JS for High School
 
Pt xug xamarin pratices on big ui consumer apps
Pt xug  xamarin pratices on big ui consumer appsPt xug  xamarin pratices on big ui consumer apps
Pt xug xamarin pratices on big ui consumer apps
 
Get satrted angular js day 2
Get satrted angular js day 2Get satrted angular js day 2
Get satrted angular js day 2
 
Get satrted angular js
Get satrted angular jsGet satrted angular js
Get satrted angular js
 
Gab2015 azure search as a service
Gab2015 azure search as a serviceGab2015 azure search as a service
Gab2015 azure search as a service
 
Boot strapandresponsiveintro
Boot strapandresponsiveintroBoot strapandresponsiveintro
Boot strapandresponsiveintro
 
WebSite development using WinJS
WebSite development using WinJSWebSite development using WinJS
WebSite development using WinJS
 
Universal Apps Development using HTML 5 and WINJS
Universal Apps Development using HTML 5 and WINJSUniversal Apps Development using HTML 5 and WINJS
Universal Apps Development using HTML 5 and WINJS
 
Html5ignition newweborder
Html5ignition newweborderHtml5ignition newweborder
Html5ignition newweborder
 
Windows8.1 html5 dev paradigm discussion netponto
Windows8.1 html5 dev paradigm discussion netpontoWindows8.1 html5 dev paradigm discussion netponto
Windows8.1 html5 dev paradigm discussion netponto
 
Mobile first responsive industry sessions
Mobile first responsive industry sessionsMobile first responsive industry sessions
Mobile first responsive industry sessions
 
Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1 Microsoft PT TechRefresh html win8.1
Microsoft PT TechRefresh html win8.1
 
pragmatic Mobile apps choices frameworks and dev
pragmatic Mobile apps choices frameworks and devpragmatic Mobile apps choices frameworks and dev
pragmatic Mobile apps choices frameworks and dev
 

Silverlight 4 into

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