Silverlight

59
Lyon, le 1 er Juin 2010 Julien Dollon Consultant / Formateur I’FORM Silverlight, MVVM & WCF RIA Services

Transcript of Silverlight

Page 1: Silverlight

Lyon, le 1er Juin 2010Julien DollonConsultant / Formateur I’FORM

Silverlight, MVVM & WCF RIA Services

Page 2: Silverlight

SILVERLIGHT

Page 3: Silverlight

Siège social à Toulouse Since 1983 Intervention WorldWide

8ème contributeur national en Formation MS Formateurs certifiés MCT, MVP, MCPD… Organisation d’événements

technologiques

I’FORM: Votre centre de formation

www.iform.fr

Page 4: Silverlight

AgendaRoadmapSilverlight 4 : les chiffresAméliorations généralesMVVMWCF RIA ServicesQuestions / Réponses

Page 5: Silverlight

5

Silverlight 1

2007

Silverlight 2

2008

Silverlight 3

2009

Page 6: Silverlight

6

Introduction & Installation

2010, l’année de Silverlight 4

Page 7: Silverlight

TROIS CHIFFRES CLÉ

Page 8: Silverlight

60%

Page 9: Silverlight

2x

Page 10: Silverlight

10 seconde

s

Page 11: Silverlight

Les fonctionnalités demandées

Drag ‘n’ dropImpressionsClic droit

Page 12: Silverlight

12

DémonstrationScrapbook

Page 13: Silverlight

Médias & Silverlight 4Lecture de fichiers Multicast Lecture de fichiers DRM en mode

déconnectéDRM MP4 (protection H264 et

AAC-LC)Smooth Streaming

Page 14: Silverlight

Webcam & MicroPrompt de l’utilisateur pour

utiliser la webcamAccès au flux audio et vidéoAPI pour sélectionner le type de

périphériques

Page 15: Silverlight

Fusionnez les nouveautés

Silverlight 4:Capture de la web cam

Silverlight 3:La classe WriteableBitmapLes projections 3D

API SLARToolKit (Détection de marker)Portage de NyARToolkitCS en SilverlightBientôt disponible ici:

kodierer.blogspot.com

Page 16: Silverlight
Page 17: Silverlight

17

DémonstrationWebCam

Page 18: Silverlight

Communication avec les services

Support des NetworkCredentials dans la pile http clienteEchanges inter-domaines

améliorés en mode "Trusted OOB"UDP Multicast

Page 19: Silverlight

Amélioration du contenu riche

Le contrôle RichTextAreaLe support d’écriture de droite

à gaucheLangues Hébreux et Arabes

supportées

Page 20: Silverlight

21

DémonstrationTexte enrichi

Page 21: Silverlight

Cas pratique d’architecture

Commanding MVVMCompatibilité des assemblies .NETValidationAmélioration du navigation de pageManaged Extensibility Framework

Page 22: Silverlight

Mode Out Of BrowserApplication Sandboxée

Hébergement HTMLNotificationsGérer la taille/position/aspect

des fenêtresApplication Full Trust

Accès au système de fichiersInteropérabilité COM

Page 23: Silverlight

24

DémonstrationOut of Browser

Page 24: Silverlight

MVVM

Page 25: Silverlight

MVC, MVP,

MVVM, M… ???

Page 26: Silverlight

Agenda MVVM Introduction

Model ViewModels Locator Views Events Manager A little more… Q&A

Page 27: Silverlight

Tout dans le code-behind…n'est probablement pas une bonne idée

Page 28: Silverlight

Une équipe de mauvais développeur

FAIL!

Page 29: Silverlight

Vive les

lasagnesM-V-VM aussi

Page 30: Silverlight

Data & Domain Logic(Model)

UI(View)

Interaction (Controller/Presenter)

Page 31: Silverlight

Tout dans le code-behind

Data Model

View

XAML

Code-BehindEvent

Handlers

Page 32: Silverlight

Model – View – ViewModel

Data Model

View

XAML

View Model

State + Operations

Change notification

Data-binding and commands

Page 33: Silverlight

INotifyPropertyChanged et ObservableCollection<T>

Data Binding

View <ListBox ItemsSource="{Binding Path=Clients}" SelectedItem="{Binding Path=SelectedClient, Mode=TwoWay}" />

View Model

State + Operations

Page 34: Silverlight

INotifyPropertyChanged et ObservableCollection<T>

Data Binding

View

XAML

View Modelpublic class ClientViewModel : INotifyPropertyChanged{ public event PropertyChangedEventHandler PropertyChanged; public ObservableCollection<Client> Clients { ... } public Client SelectedClient { ... }}

Page 35: Silverlight

Command Pattern

public interface ICommand{

event EventHandler CanExecuteChanged;

bool CanExecute(object parameter);void Execute(object parameter);

}

Page 36: Silverlight

Commandes en Silverlight

View <Button Content=“Delete Client” commands:Click.CommandParameter=“{Binding}” commands:Click.Command=“ClientCommand” />

View Modelprivate ICommand DeleteCommand { get; private set; }

public PageViewModel(){ DeleteCommand = new DelegateCommand<Client>(DeleteClient);}

private void DeleteClient(Client client){ // code to save dives..}

Page 37: Silverlight

Première vue La vue est en relation avec son ViewModel

View

<UserControl.DataContext> <dive:PageViewModel /></UserControl.DataContext>

Fonctionne en “design time” (Blend support)

Page 38: Silverlight

View Model Communication?

View Model

View Model

View Model View Model

View Model

View Model

View Model View Model

Page 39: Silverlight

Event Aggregator

View Model

View Model

View Model View Model

View Model

View Model

View Model View Model

Event Aggregator

Page 40: Silverlight

Communication

Data Model

View

XAML

Code-Behin

d

Data Model

View

XAML

Code-Behin

d

Message

View Model

State + Operations

View Model

State + Operations

View

XAML

Code-Behin

d

Message

Event Aggregator

View Model

State + Operations

Publish messages

Subscribe to messages

Page 41: Silverlight

Passons à l'étude de casAffichage formateur + PathListBox

Page 42: Silverlight

WCF RIA SERVICES

Page 43: Silverlight

Logique Applicativ

e

XML, JSON, Binary

Clients .NetSilverlight, WPF

Clients standardsJavascript

Rendu serverHTML, SEO, Printing,…

ServicesWCF

Base de donnéesADO.NetORMs(LTS, EF, …)

CLR Lists / ObjectsRepository(nHivernate, Pocos,…)

ServicesREST/SOAP(Azure, …)

MAIS… COMMENT ÇA MARCHE ?

Page 44: Silverlight

CRÉER SON SERVICE DE DOMAINE

Page 45: Silverlight

Domain Data Source

Rapide !Pas de code !

anti-architecture !!!

Idéal ?

Page 46: Silverlight

WCF RIA Services et MVVM

Model

View

XAML

View Model

Logique applicative

ObservableCollection & INotifyPropertyChanged

Data-binding et commands

Règles métierConnexion aux servicesEntitées

LA SOLUTION !LE MVVM

Page 47: Silverlight

CONSOMMER LE SERVICE

Page 48: Silverlight

META DONNÉES

Page 49: Silverlight

INTEROPÉRABILITÉ

Page 50: Silverlight

PARTAGE METIER

Page 51: Silverlight

MÉTHODES PERSONNALISÉE

S

Page 52: Silverlight

SÉCURITÉ

Page 53: Silverlight

WINDOWS PHONE 7

Page 54: Silverlight
Page 55: Silverlight

AHEAD-APP.COM

Page 56: Silverlight

VISUAL STUDIO 2010LIVRE AUX ÉDITIONS

ENI

Page 57: Silverlight

58

Entreprise Content ManagerQuestions / Réponses (?)

La parole est à vous

Page 58: Silverlight

Restez en contactJulien Dollon

Mails :[email protected]

Twitters :@juliendollon

Blogs :http://blogs.dotnet-france.com/juliend

Page 59: Silverlight

Exakis BiarritzSiège socialCré@ticité ATechnopôle Izarbel64 210 BidartTél : 05.59.43.53.33

Exakis ParisLe Lumière40 avenue desTerroirs de France75 012 ParisTél : 01.53.94.82.82

Exakis LyonCampus Verrazzano1, place Verrazzano69 009 LyonTél : 04.37.64.28.40

Exakis NantesParc de l’Aubinière11, avenue desAméthystes BP 5388944 338 Nantes Cedex 3Tél : 02.28.03.93.93

Exakis BordeauxParc d’activitéCanteranne Bât 233 600 PessacTél : 05.57.26.80.00

Exakis ToulouseImmeuble le Colombo, Bât B6, avenue Georges Pompidou31 130 BalmaTél : 05.34.31.74.15

ExakisAix en ProvenceGrand Horizon 2,260 rue René Descartes, 13 857 Aix en ProvenceTél : 04.88.71.88.73

Exakis PauCité Multimédia6, rue Thomas EdisonBât D64 054 Pau CedexTél : 05.59.40.02.61