Integrazione PHP e Silverlight 4

Post on 19-May-2015

1570 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

Transcript

http://wippy.grusp.org

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 1.0

Set 2007

Silverlight 2

15 ott 2008

Silverlight 3

Giugno 2009

Silverlight 4 Aprile 2010

http://wippy.grusp.org

Caricare un' applicazione Silverlight

http://wippy.grusp.org

Caricare il plug-in Test.html

http://wippy.grusp.org

DEMO

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

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

<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

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

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

Skinning Styling

Personalizzazione di Controlli Styling e Skinning

http://wippy.grusp.org

DEMO

Silverlight Flickr photo viewer Costruire la UI “Styling”

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

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#

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}

}

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

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>

http://wippy.grusp.org

Trace

http://wippy.grusp.org

DEMO

DataBinding DataTemplate Networking Skinning

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]

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

top related