SlideShare a Scribd company logo
1 of 26
Download to read offline
PHP e
Silverlight 4


Pietro Brambati, Microsoft
Blogs.msdn.com/pietrobr
pietrobr@microsoft.com
Twitter: @pietrobr
                     http://wippy.grusp.org
Agenda
Silverlight e Interoperabilità con PHP
Costruiamo un’applicazione Silverlight




                  http://wippy.grusp.org
Silverlight
Plugin cross-browser e cross-platform
Una versione light del runtime del .NET Framework che
 gira nel browser
  Installata con il plugin
  Funzionalità Out-Of-The-Browser
Applicazioni di tipo multimediale
  Video, animazioni…
Applicazioni di business
  Ricco insieme di controlli
  Accesso a sorgenti dati via Web Services: SOAP,
   REST…

                   http://wippy.grusp.org
Silverlight
                       breve storia



                                                  Silverlight 4
                                                  Aprile 2010
                                  Silverlight 3
                                  Giugno 2009

                  Silverlight 2
                  15 ott 2008


Silverlight 1.0
Set 2007




                   http://wippy.grusp.org
Caricare un' applicazione Silverlight




             http://wippy.grusp.org
Caricare il plug-in
        Test.html




    http://wippy.grusp.org
Anatomia di un’applicazione Silverlight 4 e
interoperabilità con PHP




DEMO
                    http://wippy.grusp.org
XAML, Controlli, Shapes




      http://wippy.grusp.org
Markup = Object Model

<TextBlock FontSize="32" Text="Hello world" />



                    =
        TextBlock t = new
        TextBlock();
        t.FontSize = 32;
        t.Text = "Hello world";




              http://wippy.grusp.org
XAML
                 Layout Control



<Canvas Width="300" Height="300"
  xmlns="http://schemas.microsoft.com/client/2007"
                                  Attached property
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Ellipse Canvas.Left="20" Canvas.Top="20"
    Height="200" Width="200"
    Stroke="Black" StrokeThickness="10" Fill="Yellow" />
  <Ellipse Canvas.Left="80" Canvas.Top="80"
              Shapes
    Height="35" Width="25" Stroke="Black" Fill="Black" />
  <Ellipse Canvas.Left="140" Canvas.Top="80"
    Height="35" Width="25" Stroke="Black" Fill="Black" />
  <Path Data="M 70, 150 A 60, 60 0 0 0 170, 150"
    Stroke="Black" StrokeThickness="15"
    StrokeStartLineCap="Round" StrokeEndLineCap="Round" />
</Canvas>




                     http://wippy.grusp.org
Controlli in Silverlight 4
Form Controls:            Core Controls:           SDK Controls (*):
   TextBox                                            AutoCompleteBox
                             Border
   Rich Text Box                                      Calendar
                             Image                    ChildWindow
   PasswordBox               MediaElement             DataGrid
   Button                    MultiScaleImage          DataPager
   Toggle/Repeat Button      ToolTip                  TabControl
                             ScrollViewer             DatePicker
   CheckBox                                           DescriptionViewer
                             ProgressBar
   RadioButton                                        Validatio Summary
                             Save/OpenFileDialog
                                                      DataForm
   ComboBox                  PasswordBox              TreeView
   ListBox                   Popup                    – …
   Label                     Slider
                                                   Shapes:
Navigation Controls:      Layout Controls:
                                                      Ellipse
   HyperlinkButton
                             StackPanel               Rectangle
   Popup                                              Line
                             Grid / GridSplitter
   Frame                                              TextBlock
                             Canvas
                                                      Path
                          http://wippy.grusp.org
Silverlight Toolkit

o Controlli con licenza Open Source (OSI MS-PL)
 o Aggiornati ogni 6-8 settimane
 o http://www.codeplex.com/Silverlight




                     http://wippy.grusp.org
Personalizzazione di Controlli
           Styling e Skinning




 Styling                            Skinning




           http://wippy.grusp.org
Silverlight Flickr photo viewer
Costruire la UI
“Styling”




DEMO
                     http://wippy.grusp.org
DataBinding & DataTemplate




        http://wippy.grusp.org
Collegare la UI ai Dati
                   Databinding
o Bidirezionale: dalla UI al modello e viceversa
o Funziona con oggetti che implementano IEnume-
 IQueryable
 o Array, Collections, Lists etc
o Notifica via INotifyPropertyChanged
                                                        XAML
    <TextBlock Text="{Binding Points, Mode=OneWay}"/>


 Binding binding = new Binding("Points");               C#
 binding.Mode = BindingMode.OneWay;
 TextBlock tb = new TextBlock();
 tb.SetBinding(TextBlock.TextProperty, binding);



                     http://wippy.grusp.org
Layout della UI e Dati
                            DataTemplate
class Car
{
  string Image {get;set}      DataTemplate
  string Model {get;set}
}



     <DataTemplate x:Key="carTemplate">
       <StackPanel>
           <Image Source="{Binding Image}" />
           <TextBlock TextContent="{Binding Model}" />
       </StackPanel>
     </DataTemplate>




                           http://wippy.grusp.org
Networking




  http://wippy.grusp.org
Funzionalità di Networking

HTTP/S [WebClient HttpWebRequest]
WS*/SOAP [via Proxy WCF]
REST [WebClient HttpWebRequest]
RSS [Syndication API]
Sockets

Chiamate Cross Domain




             http://wippy.grusp.org
Chiamate Cross-Domain
                                         <?xml version="1.0"?>
2 formati:                               <!DOCTYPE cross-domain-policy SYSTEM
                                         "http://www.macromedia.com/xml/dtds/cross-

   Flash policy file
                                         domain-policy.dtd">
                                         <cross-domain-policy>

   Silverlight policy file
                                            <allow-access-from domain="*" />
                                         </cross-domain-policy>

<?xml version="1.0"?>
<access-policy>                                                     Cross-domain.xml
  <cross-domain-access>
    <policy>
      <allow-from>
        <domain uri="http://customers.shop.com”/>"
        <domain uri="http://partner.com/app.xap"/>
      </allow-from>
      <grant-to>
        <grant path="/sales/serialnumbers.xml" />
        <grant path="/partners" include-subpaths="false"/>
      </grant-to>
    </policy>                                                   clientaccesspolicy.xml
  </cross-domain-access>
</access-policy>




                               http://wippy.grusp.org
Trace




http://wippy.grusp.org
DataBinding
DataTemplate
Networking
Skinning




DEMO
           http://wippy.grusp.org
Salviamo lo stato
                 Isolated Storage API

Come un cookie
Virtual file system
 AppDataLocalLow (in Vista/7)
Specifico per utente
A livello di applicazione
  (http://.. pippo.xap != http://..pluto.xap)
IsolatedStorageSettings [KeyValue]
IsolatedStorageFile [Files e directory]


                      http://wippy.grusp.org
Cosa NON abbiamo visto
OpenFile Dialog
Download on demand
Splash Screen
Dynamic CLR
  IronRuby, Ironpyton, Managed Jscript
Visual State Manager
DRM, via PlayReady e WMDRM 10
DeepZoom
OOB
HW Acceleration, Graphics



                 http://wippy.grusp.org
In Conclusione

Una piattaforma completa per le RIA
.NET Framework con una ricca BCL
Numerosi Controlli out-of-the box
Skinning avanzato
Stack di Networking
Integrazione PHP




              http://wippy.grusp.org
http://wippy.grusp.org

More Related Content

Viewers also liked

Nossas recordações
Nossas recordaçõesNossas recordações
Nossas recordaçõesblogdodivino
 
A lingua portuguesa_agradece
A lingua portuguesa_agradeceA lingua portuguesa_agradece
A lingua portuguesa_agradecemercedesgoulart
 
O R G U L L O D E M E X I C O
O R G U L L O  D E  M E X I C OO R G U L L O  D E  M E X I C O
O R G U L L O D E M E X I C Ominfanteglz
 
Prehistoria S0calejandro
Prehistoria S0calejandroPrehistoria S0calejandro
Prehistoria S0calejandroruuubeen
 
1.1 why study the (new) media
1.1 why study the (new) media1.1 why study the (new) media
1.1 why study the (new) mediaguest59a233
 
Somos mayores
Somos mayoresSomos mayores
Somos mayoresmarmopi
 
Modelo projeto de resolução
Modelo projeto de resoluçãoModelo projeto de resolução
Modelo projeto de resoluçãoDéborah Guedes
 
Maarten van der Meer Photography
Maarten van der Meer PhotographyMaarten van der Meer Photography
Maarten van der Meer PhotographyMaartenvanderMeer
 
Controlo dor na pessoa idosa
Controlo dor na pessoa idosaControlo dor na pessoa idosa
Controlo dor na pessoa idosauccarcozelo
 
Así somos en españa
Así somos en españaAsí somos en españa
Así somos en españamarmopi
 
Marisco en la cena de navidad
Marisco en la cena de navidadMarisco en la cena de navidad
Marisco en la cena de navidadmarmopi
 
Rascacielos en el desierto
Rascacielos en el desiertoRascacielos en el desierto
Rascacielos en el desiertomarmopi
 
Presentacion Proyecto Lecto Escritura 2008
Presentacion  Proyecto Lecto Escritura 2008Presentacion  Proyecto Lecto Escritura 2008
Presentacion Proyecto Lecto Escritura 2008Emilce Rodriguez
 

Viewers also liked (20)

Nossas recordações
Nossas recordaçõesNossas recordações
Nossas recordações
 
Michelangelo patricia d
Michelangelo patricia dMichelangelo patricia d
Michelangelo patricia d
 
Ziripot nafarroa
Ziripot  nafarroaZiripot  nafarroa
Ziripot nafarroa
 
A essência sobre a forma blog contábil
A essência sobre a forma   blog contábilA essência sobre a forma   blog contábil
A essência sobre a forma blog contábil
 
CéLula
CéLulaCéLula
CéLula
 
Dad
DadDad
Dad
 
A lingua portuguesa_agradece
A lingua portuguesa_agradeceA lingua portuguesa_agradece
A lingua portuguesa_agradece
 
O R G U L L O D E M E X I C O
O R G U L L O  D E  M E X I C OO R G U L L O  D E  M E X I C O
O R G U L L O D E M E X I C O
 
Prehistoria S0calejandro
Prehistoria S0calejandroPrehistoria S0calejandro
Prehistoria S0calejandro
 
1.1 why study the (new) media
1.1 why study the (new) media1.1 why study the (new) media
1.1 why study the (new) media
 
Somos mayores
Somos mayoresSomos mayores
Somos mayores
 
Modelo projeto de resolução
Modelo projeto de resoluçãoModelo projeto de resolução
Modelo projeto de resolução
 
Maarten van der Meer Photography
Maarten van der Meer PhotographyMaarten van der Meer Photography
Maarten van der Meer Photography
 
Controlo dor na pessoa idosa
Controlo dor na pessoa idosaControlo dor na pessoa idosa
Controlo dor na pessoa idosa
 
Entorno
EntornoEntorno
Entorno
 
Así somos en españa
Así somos en españaAsí somos en españa
Así somos en españa
 
Marisco en la cena de navidad
Marisco en la cena de navidadMarisco en la cena de navidad
Marisco en la cena de navidad
 
Saludos al alma
Saludos al almaSaludos al alma
Saludos al alma
 
Rascacielos en el desierto
Rascacielos en el desiertoRascacielos en el desierto
Rascacielos en el desierto
 
Presentacion Proyecto Lecto Escritura 2008
Presentacion  Proyecto Lecto Escritura 2008Presentacion  Proyecto Lecto Escritura 2008
Presentacion Proyecto Lecto Escritura 2008
 

Similar to Integrazione PHP e Silverlight 4

Silverlight 2
Silverlight 2Silverlight 2
Silverlight 2Dave Bost
 
Web app and more
Web app and moreWeb app and more
Web app and morefaming su
 
Creating Great Applications in SharePoint 2010 with Silverlight 4
Creating Great Applications in SharePoint 2010 with Silverlight 4Creating Great Applications in SharePoint 2010 with Silverlight 4
Creating Great Applications in SharePoint 2010 with Silverlight 4Boston Area SharePoint Users Group
 
Building appsinsilverlight4 part_1
Building appsinsilverlight4 part_1Building appsinsilverlight4 part_1
Building appsinsilverlight4 part_1Dennis Perlot
 
HTML5 for Rich User Experience
HTML5 for Rich User ExperienceHTML5 for Rich User Experience
HTML5 for Rich User ExperienceMahbubur Rahman
 
Introduction to Microsoft Silverlight
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft SilverlightGlen Gordon
 
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...DataLeader.io
 
Repaso rápido a los nuevos estándares web
Repaso rápido a los nuevos estándares webRepaso rápido a los nuevos estándares web
Repaso rápido a los nuevos estándares webPablo Garaizar
 
HTML5 and Beyond
HTML5 and BeyondHTML5 and Beyond
HTML5 and Beyonddynamis
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web DevelopmentRobert J. Stein
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Sadaaki HIRAI
 
Windows Phone 7 and Silverlight
Windows Phone 7 and SilverlightWindows Phone 7 and Silverlight
Windows Phone 7 and SilverlightGlen Gordon
 
Mike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and PatternsMike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and Patternsukdpe
 
DODN2009 - Jump Start Silverlight
DODN2009 - Jump Start SilverlightDODN2009 - Jump Start Silverlight
DODN2009 - Jump Start SilverlightClint Edmonson
 
Bd conf sencha touch workshop
Bd conf sencha touch workshopBd conf sencha touch workshop
Bd conf sencha touch workshopJames Pearce
 
Introduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformIntroduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformAlfresco Software
 
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightRe-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightFrank La Vigne
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5dynamis
 
Session on Selenium Powertools by Unmesh Gundecha
Session on Selenium Powertools by Unmesh GundechaSession on Selenium Powertools by Unmesh Gundecha
Session on Selenium Powertools by Unmesh GundechaAgile Testing Alliance
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on MobileAdam Lu
 

Similar to Integrazione PHP e Silverlight 4 (20)

Silverlight 2
Silverlight 2Silverlight 2
Silverlight 2
 
Web app and more
Web app and moreWeb app and more
Web app and more
 
Creating Great Applications in SharePoint 2010 with Silverlight 4
Creating Great Applications in SharePoint 2010 with Silverlight 4Creating Great Applications in SharePoint 2010 with Silverlight 4
Creating Great Applications in SharePoint 2010 with Silverlight 4
 
Building appsinsilverlight4 part_1
Building appsinsilverlight4 part_1Building appsinsilverlight4 part_1
Building appsinsilverlight4 part_1
 
HTML5 for Rich User Experience
HTML5 for Rich User ExperienceHTML5 for Rich User Experience
HTML5 for Rich User Experience
 
Introduction to Microsoft Silverlight
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft Silverlight
 
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
 
Repaso rápido a los nuevos estándares web
Repaso rápido a los nuevos estándares webRepaso rápido a los nuevos estándares web
Repaso rápido a los nuevos estándares web
 
HTML5 and Beyond
HTML5 and BeyondHTML5 and Beyond
HTML5 and Beyond
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
 
Windows Phone 7 and Silverlight
Windows Phone 7 and SilverlightWindows Phone 7 and Silverlight
Windows Phone 7 and Silverlight
 
Mike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and PatternsMike Taulty MIX10 Silverlight Frameworks and Patterns
Mike Taulty MIX10 Silverlight Frameworks and Patterns
 
DODN2009 - Jump Start Silverlight
DODN2009 - Jump Start SilverlightDODN2009 - Jump Start Silverlight
DODN2009 - Jump Start Silverlight
 
Bd conf sencha touch workshop
Bd conf sencha touch workshopBd conf sencha touch workshop
Bd conf sencha touch workshop
 
Introduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformIntroduction to Alfresco Surf Platform
Introduction to Alfresco Surf Platform
 
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightRe-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
 
Session on Selenium Powertools by Unmesh Gundecha
Session on Selenium Powertools by Unmesh GundechaSession on Selenium Powertools by Unmesh Gundecha
Session on Selenium Powertools by Unmesh Gundecha
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
 

More from pietrobr

Azure IIoT for Manufacturing and Beyond @ IAMCP event June 2019
Azure IIoT for Manufacturing and Beyond @ IAMCP event June 2019Azure IIoT for Manufacturing and Beyond @ IAMCP event June 2019
Azure IIoT for Manufacturing and Beyond @ IAMCP event June 2019pietrobr
 
Architecting Azure (I)IoT Solutions @ IoT Saturday 2019
Architecting Azure (I)IoT Solutions @ IoT Saturday 2019Architecting Azure (I)IoT Solutions @ IoT Saturday 2019
Architecting Azure (I)IoT Solutions @ IoT Saturday 2019pietrobr
 
Android and Azure @droidconit 2015
Android and Azure @droidconit 2015Android and Azure @droidconit 2015
Android and Azure @droidconit 2015pietrobr
 
Modern IE @ CSS Day 2015
Modern IE @ CSS Day 2015Modern IE @ CSS Day 2015
Modern IE @ CSS Day 2015pietrobr
 
Il back-end unificato per la vostra applicazione iOS
Il back-end unificato per  la vostra applicazione iOSIl back-end unificato per  la vostra applicazione iOS
Il back-end unificato per la vostra applicazione iOSpietrobr
 
PHPDay 2013: Windows Azure: what's hot
PHPDay 2013: Windows Azure: what's hotPHPDay 2013: Windows Azure: what's hot
PHPDay 2013: Windows Azure: what's hotpietrobr
 
Building a unified back-end for your apps with Azure Mobile Services
Building a unified back-end for your apps with Azure Mobile ServicesBuilding a unified back-end for your apps with Azure Mobile Services
Building a unified back-end for your apps with Azure Mobile Servicespietrobr
 
Windows Azure al DrupalDay Roma 2012
Windows Azure al DrupalDay Roma 2012Windows Azure al DrupalDay Roma 2012
Windows Azure al DrupalDay Roma 2012pietrobr
 
Internet Explorer 9
Internet Explorer 9Internet Explorer 9
Internet Explorer 9pietrobr
 
WebMatrix loves WordPress
WebMatrix loves WordPressWebMatrix loves WordPress
WebMatrix loves WordPresspietrobr
 
PHP Days 2011 - Keynote: Microsoft WebMatrix
PHP Days 2011 - Keynote: Microsoft WebMatrixPHP Days 2011 - Keynote: Microsoft WebMatrix
PHP Days 2011 - Keynote: Microsoft WebMatrixpietrobr
 
PHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloudPHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloudpietrobr
 
Word press e iis
Word press e iisWord press e iis
Word press e iispietrobr
 
Ottimizzare WordPress su Windows/IIS
Ottimizzare WordPress su Windows/IISOttimizzare WordPress su Windows/IIS
Ottimizzare WordPress su Windows/IISpietrobr
 
PHP e Windows Azure, SQL Azure
PHP e Windows Azure, SQL AzurePHP e Windows Azure, SQL Azure
PHP e Windows Azure, SQL Azurepietrobr
 
Keynote del phpday 2010
Keynote del phpday 2010Keynote del phpday 2010
Keynote del phpday 2010pietrobr
 
Delphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev OverviewDelphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev Overviewpietrobr
 
Php Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel BuioPhp Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel Buiopietrobr
 
Php On Windows For Ph Pday 2008
Php On Windows For Ph Pday 2008Php On Windows For Ph Pday 2008
Php On Windows For Ph Pday 2008pietrobr
 

More from pietrobr (20)

Azure IIoT for Manufacturing and Beyond @ IAMCP event June 2019
Azure IIoT for Manufacturing and Beyond @ IAMCP event June 2019Azure IIoT for Manufacturing and Beyond @ IAMCP event June 2019
Azure IIoT for Manufacturing and Beyond @ IAMCP event June 2019
 
Architecting Azure (I)IoT Solutions @ IoT Saturday 2019
Architecting Azure (I)IoT Solutions @ IoT Saturday 2019Architecting Azure (I)IoT Solutions @ IoT Saturday 2019
Architecting Azure (I)IoT Solutions @ IoT Saturday 2019
 
Android and Azure @droidconit 2015
Android and Azure @droidconit 2015Android and Azure @droidconit 2015
Android and Azure @droidconit 2015
 
Modern IE @ CSS Day 2015
Modern IE @ CSS Day 2015Modern IE @ CSS Day 2015
Modern IE @ CSS Day 2015
 
Il back-end unificato per la vostra applicazione iOS
Il back-end unificato per  la vostra applicazione iOSIl back-end unificato per  la vostra applicazione iOS
Il back-end unificato per la vostra applicazione iOS
 
PHPDay 2013: Windows Azure: what's hot
PHPDay 2013: Windows Azure: what's hotPHPDay 2013: Windows Azure: what's hot
PHPDay 2013: Windows Azure: what's hot
 
Building a unified back-end for your apps with Azure Mobile Services
Building a unified back-end for your apps with Azure Mobile ServicesBuilding a unified back-end for your apps with Azure Mobile Services
Building a unified back-end for your apps with Azure Mobile Services
 
Windows Azure al DrupalDay Roma 2012
Windows Azure al DrupalDay Roma 2012Windows Azure al DrupalDay Roma 2012
Windows Azure al DrupalDay Roma 2012
 
Internet Explorer 9
Internet Explorer 9Internet Explorer 9
Internet Explorer 9
 
WebMatrix loves WordPress
WebMatrix loves WordPressWebMatrix loves WordPress
WebMatrix loves WordPress
 
PHP Days 2011 - Keynote: Microsoft WebMatrix
PHP Days 2011 - Keynote: Microsoft WebMatrixPHP Days 2011 - Keynote: Microsoft WebMatrix
PHP Days 2011 - Keynote: Microsoft WebMatrix
 
PHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloudPHP Day 2011 PHP goes to the cloud
PHP Day 2011 PHP goes to the cloud
 
Word press e iis
Word press e iisWord press e iis
Word press e iis
 
Ottimizzare WordPress su Windows/IIS
Ottimizzare WordPress su Windows/IISOttimizzare WordPress su Windows/IIS
Ottimizzare WordPress su Windows/IIS
 
PHP e Windows Azure, SQL Azure
PHP e Windows Azure, SQL AzurePHP e Windows Azure, SQL Azure
PHP e Windows Azure, SQL Azure
 
Keynote del phpday 2010
Keynote del phpday 2010Keynote del phpday 2010
Keynote del phpday 2010
 
Delphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev OverviewDelphi Day 2009 Win7 Dev Overview
Delphi Day 2009 Win7 Dev Overview
 
Php Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel BuioPhp Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel Buio
 
Php On Windows For Ph Pday 2008
Php On Windows For Ph Pday 2008Php On Windows For Ph Pday 2008
Php On Windows For Ph Pday 2008
 
Linq e Ef
Linq e EfLinq e Ef
Linq e Ef
 

Recently uploaded

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 

Integrazione PHP e Silverlight 4

  • 1. PHP e Silverlight 4 Pietro Brambati, Microsoft Blogs.msdn.com/pietrobr pietrobr@microsoft.com Twitter: @pietrobr http://wippy.grusp.org
  • 2. Agenda Silverlight e Interoperabilità con PHP Costruiamo un’applicazione Silverlight http://wippy.grusp.org
  • 3. Silverlight Plugin cross-browser e cross-platform Una versione light del runtime del .NET Framework che gira nel browser Installata con il plugin Funzionalità Out-Of-The-Browser Applicazioni di tipo multimediale Video, animazioni… Applicazioni di business Ricco insieme di controlli Accesso a sorgenti dati via Web Services: SOAP, REST… http://wippy.grusp.org
  • 4. Silverlight breve storia Silverlight 4 Aprile 2010 Silverlight 3 Giugno 2009 Silverlight 2 15 ott 2008 Silverlight 1.0 Set 2007 http://wippy.grusp.org
  • 5. Caricare un' applicazione Silverlight http://wippy.grusp.org
  • 6. Caricare il plug-in Test.html http://wippy.grusp.org
  • 7. Anatomia di un’applicazione Silverlight 4 e interoperabilità con PHP DEMO http://wippy.grusp.org
  • 8. XAML, Controlli, Shapes http://wippy.grusp.org
  • 9. Markup = Object Model <TextBlock FontSize="32" Text="Hello world" /> = TextBlock t = new TextBlock(); t.FontSize = 32; t.Text = "Hello world"; http://wippy.grusp.org
  • 10. XAML Layout Control <Canvas Width="300" Height="300" xmlns="http://schemas.microsoft.com/client/2007" Attached property xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Ellipse Canvas.Left="20" Canvas.Top="20" Height="200" Width="200" Stroke="Black" StrokeThickness="10" Fill="Yellow" /> <Ellipse Canvas.Left="80" Canvas.Top="80" Shapes Height="35" Width="25" Stroke="Black" Fill="Black" /> <Ellipse Canvas.Left="140" Canvas.Top="80" Height="35" Width="25" Stroke="Black" Fill="Black" /> <Path Data="M 70, 150 A 60, 60 0 0 0 170, 150" Stroke="Black" StrokeThickness="15" StrokeStartLineCap="Round" StrokeEndLineCap="Round" /> </Canvas> http://wippy.grusp.org
  • 11. Controlli in Silverlight 4 Form Controls: Core Controls: SDK Controls (*): TextBox AutoCompleteBox Border Rich Text Box Calendar Image ChildWindow PasswordBox MediaElement DataGrid Button MultiScaleImage DataPager Toggle/Repeat Button ToolTip TabControl ScrollViewer DatePicker CheckBox DescriptionViewer ProgressBar RadioButton Validatio Summary Save/OpenFileDialog DataForm ComboBox PasswordBox TreeView ListBox Popup – … Label Slider Shapes: Navigation Controls: Layout Controls: Ellipse HyperlinkButton StackPanel Rectangle Popup Line Grid / GridSplitter Frame TextBlock Canvas Path http://wippy.grusp.org
  • 12. Silverlight Toolkit o Controlli con licenza Open Source (OSI MS-PL) o Aggiornati ogni 6-8 settimane o http://www.codeplex.com/Silverlight http://wippy.grusp.org
  • 13. Personalizzazione di Controlli Styling e Skinning Styling Skinning http://wippy.grusp.org
  • 14. Silverlight Flickr photo viewer Costruire la UI “Styling” DEMO http://wippy.grusp.org
  • 15. DataBinding & DataTemplate http://wippy.grusp.org
  • 16. Collegare la UI ai Dati Databinding o Bidirezionale: dalla UI al modello e viceversa o Funziona con oggetti che implementano IEnume- IQueryable o Array, Collections, Lists etc o Notifica via INotifyPropertyChanged XAML <TextBlock Text="{Binding Points, Mode=OneWay}"/> Binding binding = new Binding("Points"); C# binding.Mode = BindingMode.OneWay; TextBlock tb = new TextBlock(); tb.SetBinding(TextBlock.TextProperty, binding); http://wippy.grusp.org
  • 17. Layout della UI e Dati DataTemplate class Car { string Image {get;set} DataTemplate string Model {get;set} } <DataTemplate x:Key="carTemplate"> <StackPanel> <Image Source="{Binding Image}" /> <TextBlock TextContent="{Binding Model}" /> </StackPanel> </DataTemplate> http://wippy.grusp.org
  • 19. Funzionalità di Networking HTTP/S [WebClient HttpWebRequest] WS*/SOAP [via Proxy WCF] REST [WebClient HttpWebRequest] RSS [Syndication API] Sockets Chiamate Cross Domain http://wippy.grusp.org
  • 20. Chiamate Cross-Domain <?xml version="1.0"?> 2 formati: <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross- Flash policy file domain-policy.dtd"> <cross-domain-policy> Silverlight policy file <allow-access-from domain="*" /> </cross-domain-policy> <?xml version="1.0"?> <access-policy> Cross-domain.xml <cross-domain-access> <policy> <allow-from> <domain uri="http://customers.shop.com”/>" <domain uri="http://partner.com/app.xap"/> </allow-from> <grant-to> <grant path="/sales/serialnumbers.xml" /> <grant path="/partners" include-subpaths="false"/> </grant-to> </policy> clientaccesspolicy.xml </cross-domain-access> </access-policy> http://wippy.grusp.org
  • 23. Salviamo lo stato Isolated Storage API Come un cookie Virtual file system AppDataLocalLow (in Vista/7) Specifico per utente A livello di applicazione (http://.. pippo.xap != http://..pluto.xap) IsolatedStorageSettings [KeyValue] IsolatedStorageFile [Files e directory] http://wippy.grusp.org
  • 24. Cosa NON abbiamo visto OpenFile Dialog Download on demand Splash Screen Dynamic CLR IronRuby, Ironpyton, Managed Jscript Visual State Manager DRM, via PlayReady e WMDRM 10 DeepZoom OOB HW Acceleration, Graphics http://wippy.grusp.org
  • 25. In Conclusione Una piattaforma completa per le RIA .NET Framework con una ricca BCL Numerosi Controlli out-of-the box Skinning avanzato Stack di Networking Integrazione PHP http://wippy.grusp.org