Silverlight per le applicazioni Enterprise Antonio Liccardi.

Post on 02-May-2015

212 views 0 download

Transcript of Silverlight per le applicazioni Enterprise Antonio Liccardi.

Silverlight per le applicazioni Enterprise

Antonio Liccardi

CHI SONO

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

• Email: antonio.liccardi@dotnetcampania.org• @turibbio• WebMobiDeveloper presso BcSoft s.n.c• Co-Founder DotNetCampania

Cosa è Silverlight

• Background:– Evoluzione del web

– Miglioramento della UI

– Miglioramento dell’interazione

– Adobe Flash / Flex

3

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

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

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

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

.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

ARCHITETTURA DI SILVERLIGHT

9

L’architettura di Silverlight

10

Browser Host

• Non è altro che un plugin• Lifecycle:

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

• Network• BOM, DOM & Javascript

11

Presentation Core

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

12

.Net Inside Silverlight

13

CoreCLR

14

Silverlight

Base Class Libraries CoreCLR

JIT

Garbage

Collector

Security Model

Exception

Handling

Loader &

Binder

Debugging APIs

XAML Media Codecs DRM

CoreCLR

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

15

Base Class Library

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

16

Silverlight Class Library

• Isolated Storage• Browser Interop• Packaging

17

Networking

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

18

Data

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

19

Asincronia in Silverlight

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

20

INTRODUCING XAML

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

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

First look to XAML

24

Namespace per il mapping degli oggetti

SilverlightNamespace per il

mapping dello XAML

Dichiarare un proprio namespace

Dichiarazione di oggetti in XAML

25

Content Element Sintax

Attribute Element Sintax

Proprietà degli oggetti in XAML

26

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

DEMOExpression Blend

NAVIGATION FRAMEWORK

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

Background

Gestire il tutto a mano

Usare il Navigation Framework

31

Introduzione al Navigation Framework

• Si basa su due concetti– Frame– Page

• Friendly Url• Page Tracking • Browser History

32

OUT OF BROWSER

Out Of Browser

• Introduce un concetto innovato per le applicazioni web

• Abilitazione tramite le impostazioni dell’applicazione

• L’applicativo girerà in una sandbox

34

Out Of Browser

• IsRunningOutOfBrowser();

• Install();

• Possibilità di effettuare aggiornamenti

• Possibilità di verificare la connessione di rete

35

ISOLATED STORAGE

Isolated Storage

• Rappresenta un mini file-system solo per Silverlight

• IsolatedStorageFile– GetUserStoreForSite– GetUserStoreForApplication

• Possibilità di salvare le impostazioni di default– IsolatedStorageSetting

37

WCF RIA SERVICES

WCF RIA Service

39

Web ApplicationBrowser Rich Internet Application

DB

Services

Other Applications

Data Access Layer

AppLogic

Services

HTMLPresentati

onLogic

Network

Services By NikHil

Q&A

Un grazie di cuore a tutti gli sponsor

Senza di loro oggi non saremmo qui!

Compilate il modulo di feedback!

La vostra opinione per noi è fondamentale! Grazie!