Silverlight per le applicazioni Enterprise Antonio Liccardi.

42
Silverlight per le applicazioni Enterprise Antonio Liccardi

Transcript of Silverlight per le applicazioni Enterprise Antonio Liccardi.

Page 1: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Silverlight per le applicazioni Enterprise

Antonio Liccardi

Page 2: Silverlight per le applicazioni Enterprise Antonio Liccardi.

CHI SONO

Antonio ‘Turibbio’ Liccardi• Blog: – http://www.dotnetcampania.org/blogs/turibbio

• Email: [email protected]• @turibbio• WebMobiDeveloper presso BcSoft s.n.c• Co-Founder DotNetCampania

Page 3: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Cosa è Silverlight

• Background:– Evoluzione del web

– Miglioramento della UI

– Miglioramento dell’interazione

– Adobe Flash / Flex

3

Page 4: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Cosa è Silverlight

• Cross-Platform / Cross-Browser• XAML• Supporto per animazioni, effetti grafici …• Supporto Audio/Video (anche HD & DRM)• Supporto del .Net Framework (CLR / BCL /

ManagedCode)• Oltre 60 controlli built-in

4

Page 5: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Cosa è Silverlight

3.5Silverlight 1.0

• Marzo 2007• Funzionalità di base• Solo XAML e Javascript

(No managedCode & BCL)

Silverlight 3.0

• Marzo 2009• Supporto grafica 3D• Easing function for

animation• Pixel Shaders• Supporto ai temi• Bitmap API• Supporto H.264, AAC,

MP4• IIS Media Services• Out of Browser

Experience• Assembly Caching• Validazione migliorata

Silverlight 2.0

• Marzo 2008• Conosciuta come Alpha

1.1 Preview• Cross-Browser / Cross-

Platform• Aggiunta del CLR, BCL e

migliorie allo XAML• Isolated Storage• Interfacciamento con

WebServices, WCF, chiamate HTTP…

• Supporto di Linq, Ado.Net Data Services

• Media enchancements, Networking Support (Json, socket...)Silverlight 4.0

Supporto alla stampa, miglioramenti per l’out of browser, miglioramenti per la localizzazione, template per business

application, webcam, SEO…

5

Page 6: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Silverlight vs Flash

Funzionalità Silverlight Flash

Animazioni Time – Based Frame – Based

Testo & Immagini Incapsulati nello XAML Compressi nell’swf

Programmazione ManagedCode for .Net Framework

ActionScript

Compatibilità Win / Mac & Linux (Moonlight)

Cross-Platform

Tipo Immagine JPG & PNG Tutti i formati

Search Engine Friendly Si Quasi…

6

Page 7: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Silverlight vs WPF

• Silverlight è il fratello minore di WPF• Entrambi usano XAML e CLR, BCL & Managed

Code (Silverlight in parte!)• Silverlight eredita la stessa metodologia di

realizzazione delle animazioni, forme ed effetti• MediaElement

7

Page 8: Silverlight per le applicazioni Enterprise Antonio Liccardi.

.Net in Silverlight

• .Net ha una consolidata community di sviluppatori

• La conoscenza del .Net può essere “riusata”• .Net è una tecnologia con features mature• Perché non usare direttamente il .Net per

Silverlight?– L’intero framework occupa 200mb– Il Framework non è cross-platform– Silverlight non necessita di tutte le funzionalità del

framework

8

Page 9: Silverlight per le applicazioni Enterprise Antonio Liccardi.

ARCHITETTURA DI SILVERLIGHT

9

Page 10: Silverlight per le applicazioni Enterprise Antonio Liccardi.

L’architettura di Silverlight

10

Page 11: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Browser Host

• Non è altro che un plugin• Lifecycle:

1. Installation & Update2. Activation3. Deactivation4. Out of Browser Experience

• Network• BOM, DOM & Javascript

11

Page 12: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Presentation Core

• Non è altro che il runtime• Codice Nativo• Javascript o XAML• Display, Input, Controls, Media, DRM

12

Page 13: Silverlight per le applicazioni Enterprise Antonio Liccardi.

.Net Inside Silverlight

13

Page 14: Silverlight per le applicazioni Enterprise Antonio Liccardi.

CoreCLR

14

Silverlight

Base Class Libraries CoreCLR

JIT

Garbage

Collector

Security Model

Exception

Handling

Loader &

Binder

Debugging APIs

XAML Media Codecs DRM

Page 15: Silverlight per le applicazioni Enterprise Antonio Liccardi.

CoreCLR

• Gestione della memoria• Common Type System and type safety• Gestione delle eccezioni• Threading• Code Security– Silverlight Sandbox

15

Page 16: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Base Class Library

• Base types• Input/Output• Crittografia• Reflection• Collections• Globalization• Serialization–XML & JSON

16

Page 17: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Silverlight Class Library

• Isolated Storage• Browser Interop• Packaging

17

Page 18: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Networking

• Windows Communication Foundation– HTTP Request & Response– REST & POX– RSS Syndication– JSON– Sockets

18

Page 19: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Data

• Objects (supporto a LINQ)• XML (supporto a LINQ)• JSON• Non c’è ADO.NET!!!– ADO.NET Data Services

19

Page 20: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Asincronia in Silverlight

• In Silverlight tutto è asincrono• 1 solo thread con una coda di operazioni• Concetto di Parallelismo• Multithreading

20

Page 21: Silverlight per le applicazioni Enterprise Antonio Liccardi.

INTRODUCING XAML

Page 22: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Cosa è lo XAML

• XAML => eXtensible Application Markup Language

• Deriva da XML• E’ un linguaggio dichiarativo, che consente la

dichiarazione di oggetti nell’interfaccia• E’ direttamente mappato al code-behind

tramite la classe di riferimento

22

Page 23: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Perché lo XAML è innovativo

• Consente di distinguere l’aspetto grafico da quello programmatico

23

Aspetto Grafico

• XAML

Aspetto Programmatico

• C# / VB.Net …

Applicazione

• Codice interpretato dal runtime

Page 24: Silverlight per le applicazioni Enterprise Antonio Liccardi.

First look to XAML

24

Namespace per il mapping degli oggetti

SilverlightNamespace per il

mapping dello XAML

Dichiarare un proprio namespace

Page 25: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Dichiarazione di oggetti in XAML

25

Content Element Sintax

Attribute Element Sintax

Page 26: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Proprietà degli oggetti in XAML

26

Page 27: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Gerarchia degli oggetti in XAML

• Lo XAML ha una struttura ad albero• La posizione dei nodi indica l’ordine di

renderizzazione degli elementi (da sinistra a destra)

27

Page 28: Silverlight per le applicazioni Enterprise Antonio Liccardi.

DEMOExpression Blend

Page 29: Silverlight per le applicazioni Enterprise Antonio Liccardi.

NAVIGATION FRAMEWORK

Page 30: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Background

• Consentire agli sviluppatori di creare applicazioni web che abbiano più “viste”

• Ogni singola vista deve eseguire un task dedicato

• Maggiore usabilità dell’applicazione stessa• Minore sforzo da parte dello sviluppatore

30

Page 31: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Background

Gestire il tutto a mano

Usare il Navigation Framework

31

Page 32: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Introduzione al Navigation Framework

• Si basa su due concetti– Frame– Page

• Friendly Url• Page Tracking • Browser History

32

Page 33: Silverlight per le applicazioni Enterprise Antonio Liccardi.

OUT OF BROWSER

Page 34: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Out Of Browser

• Introduce un concetto innovato per le applicazioni web

• Abilitazione tramite le impostazioni dell’applicazione

• L’applicativo girerà in una sandbox

34

Page 35: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Out Of Browser

• IsRunningOutOfBrowser();

• Install();

• Possibilità di effettuare aggiornamenti

• Possibilità di verificare la connessione di rete

35

Page 36: Silverlight per le applicazioni Enterprise Antonio Liccardi.

ISOLATED STORAGE

Page 37: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Isolated Storage

• Rappresenta un mini file-system solo per Silverlight

• IsolatedStorageFile– GetUserStoreForSite– GetUserStoreForApplication

• Possibilità di salvare le impostazioni di default– IsolatedStorageSetting

37

Page 38: Silverlight per le applicazioni Enterprise Antonio Liccardi.

WCF RIA SERVICES

Page 39: Silverlight per le applicazioni Enterprise Antonio Liccardi.

WCF RIA Service

39

Web ApplicationBrowser Rich Internet Application

DB

Services

Other Applications

Data Access Layer

AppLogic

Services

HTMLPresentati

onLogic

Network

Services By NikHil

Page 40: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Q&A

Page 41: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Un grazie di cuore a tutti gli sponsor

Senza di loro oggi non saremmo qui!

Page 42: Silverlight per le applicazioni Enterprise Antonio Liccardi.

Compilate il modulo di feedback!

La vostra opinione per noi è fondamentale! Grazie!