integrazione php e silverlight 4

26
http://wippy.grusp.org PHP e Silverlight 4 Pietro Brambati, Microsoft Blogs.msdn.com/pietrobr [email protected] Twitter: @pietrobr

Upload: pietro

Post on 19-May-2015

1.570 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

PHP e Silverlight 4

Pietro Brambati, Microsoft

Blogs.msdn.com/pietrobr

[email protected]

Twitter: @pietrobr

Page 2: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

Agenda

Silverlight e Interoperabilità con PHP

Costruiamo un’applicazione Silverlight

Page 3: Integrazione PHP e Silverlight 4

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…

Page 4: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

Silverlight breve storia

Silverlight 1.0

Set 2007

Silverlight 2

15 ott 2008

Silverlight 3

Giugno 2009

Silverlight 4 Aprile 2010

Page 5: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

Caricare un' applicazione Silverlight

Page 6: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

Caricare il plug-in Test.html

Page 7: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

DEMO

Anatomia di un’applicazione Silverlight 4 e interoperabilità con PHP

Page 8: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

XAML, Controlli, Shapes

Page 9: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

Markup = Object Model

=

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

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

Page 10: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

XAML

<Canvas Width="300" Height="300"

xmlns="http://schemas.microsoft.com/client/2007"

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"

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>

Attached property

Layout Control

Shapes

Page 11: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

Controlli in Silverlight 4 Form Controls:

TextBox

Rich Text Box

PasswordBox

Button

Toggle/Repeat Button

CheckBox

RadioButton

ComboBox

ListBox

Label

Navigation Controls:

HyperlinkButton

Popup

Frame

Core Controls:

Border

Image

MediaElement

MultiScaleImage

ToolTip

ScrollViewer

ProgressBar

Save/OpenFileDialog

PasswordBox

Popup

Slider

Layout Controls:

StackPanel

Grid / GridSplitter

Canvas

SDK Controls (*):

AutoCompleteBox

Calendar

ChildWindow

DataGrid

DataPager

TabControl

DatePicker

DescriptionViewer

Validatio Summary

DataForm

TreeView

– …

Shapes:

Ellipse

Rectangle

Line

TextBlock

Path

Page 12: Integrazione PHP e Silverlight 4

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

Page 13: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

Skinning Styling

Personalizzazione di Controlli Styling e Skinning

Page 14: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

DEMO

Silverlight Flickr photo viewer Costruire la UI “Styling”

Page 15: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

DataBinding & DataTemplate

Page 16: Integrazione PHP e Silverlight 4

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

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

<TextBlock Text="{Binding Points, Mode=OneWay}"/> XAML

C#

Page 17: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

<DataTemplate x:Key="carTemplate">

<StackPanel>

<Image Source="{Binding Image}" />

<TextBlock TextContent="{Binding Model}" />

</StackPanel>

</DataTemplate>

Layout della UI e Dati DataTemplate

DataTemplate

class Car

{

string Image {get;set}

string Model {get;set}

}

Page 18: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

Networking

Page 19: Integrazione PHP e Silverlight 4

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

Page 20: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

Chiamate Cross-Domain

2 formati:

Flash policy file

Silverlight policy file

<?xml version="1.0"?>

<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>

<allow-access-from domain="*" />

</cross-domain-policy>

Cross-domain.xml

clientaccesspolicy.xml

<?xml version="1.0"?>

<access-policy>

<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>

</cross-domain-access>

</access-policy>

Page 21: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

Trace

Page 22: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

DEMO

DataBinding DataTemplate Networking Skinning

Page 23: Integrazione PHP e Silverlight 4

http://wippy.grusp.org

Salviamo lo stato Isolated Storage API

Come un cookie

Virtual file system

AppData\LocalLow (in Vista/7)

Specifico per utente

A livello di applicazione

(http://.. pippo.xap != http://..pluto.xap)

IsolatedStorageSettings [Key\Value]

IsolatedStorageFile [Files e directory]

Page 24: Integrazione PHP e Silverlight 4

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

Page 25: Integrazione PHP e Silverlight 4

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

Page 26: Integrazione PHP e Silverlight 4

http://wippy.grusp.org