Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Silverlight

1,907 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Silverlight

  1. 1. Silverlight, MVVM & WCF RIA Services<br />Lyon, le 1er Juin 2010<br />Julien Dollon<br />Consultant / Formateur I’FORM<br />
  2. 2. Silverlight<br />
  3. 3. I’FORM: Votre centre de formation<br />Siège social à Toulouse<br />Since 1983<br />Intervention WorldWide<br />8ème contributeur national en Formation MS<br />Formateurs certifiés MCT, MVP, MCPD…<br />Organisation d’événements technologiques<br />www.iform.fr<br />
  4. 4. Agenda<br />Roadmap<br />Silverlight 4 : les chiffres<br />Améliorations générales<br />MVVM<br />WCF RIA Services<br />Questions / Réponses<br />
  5. 5. Silverlight 3<br />2009<br />Silverlight 2<br />2007<br />2008<br />Silverlight 1<br />
  6. 6. Introduction & Installation<br />2010, l’année de Silverlight 4<br />
  7. 7. Trois chiffres clé<br />
  8. 8. 60%<br />
  9. 9. 2x<br />
  10. 10. 10 secondes<br />
  11. 11. Les fonctionnalités demandées<br />Drag ‘n’ drop<br />Impressions<br />Clic droit<br />
  12. 12. Démonstration<br />Scrapbook<br />
  13. 13. Médias & Silverlight 4<br />Lecture de fichiers Multicast <br />Lecture de fichiers DRM en mode déconnecté<br />DRM MP4 (protection H264 et AAC-LC)<br />SmoothStreaming<br />
  14. 14. Webcam & Micro<br />Prompt de l’utilisateur pour utiliser la webcam<br />Accès au flux audio et vidéo<br />API pour sélectionner le type de périphériques<br />
  15. 15. Fusionnez les nouveautés<br />Silverlight 4:<br />Capture de la web cam<br />Silverlight 3:<br />La classe WriteableBitmap<br />Les projections 3D<br />API SLARToolKit (Détection de marker)<br />Portage de NyARToolkitCS en Silverlight<br />Bientôt disponible ici: kodierer.blogspot.com<br />
  16. 16.
  17. 17. Démonstration<br />WebCam<br />
  18. 18. Communication avec les services<br />Support des NetworkCredentials dans la pile http cliente<br />Echanges inter-domaines améliorés en mode "Trusted OOB"<br />UDP Multicast<br />
  19. 19. Démonstration<br />Utilisation d’un compte twitter<br />
  20. 20. Amélioration du contenu riche<br />Le contrôle RichTextArea<br />Le support d’écriture de droite à gauche<br />Langues Hébreux et Arabes supportées<br />
  21. 21. Démonstration<br />Texte enrichi <br />
  22. 22. Cas pratique d’architecture<br />Commanding MVVM<br />Compatibilité des assemblies .NET<br />Validation<br />Amélioration du navigation de page<br />ManagedExtensibility Framework<br />
  23. 23. Mode Out Of Browser<br />Application Sandboxée<br />Hébergement HTML<br />Notifications<br />Gérer la taille/position/aspect des fenêtres<br />Application Full Trust<br />Accès au système de fichiers<br />Interopérabilité COM<br />
  24. 24. Démonstration<br />Out of Browser<br />
  25. 25. MVVM<br />
  26. 26. MVC, MVP, MVVM, M… ???<br />
  27. 27. Agenda<br />MVVM Introduction<br />Model<br />ViewModels<br />Locator<br />Views<br />Events Manager<br />A little more…<br />Q&A<br />
  28. 28. Tout dans le code-behind…n'est probablement pas une bonne idée <br />
  29. 29. Une équipe de mauvais développeur<br />FAIL!<br />
  30. 30. Vive les lasagnes<br />M-V-VM aussi<br />
  31. 31. Data & Domain Logic(Model)<br />UI(View)<br />Interaction (Controller/Presenter)<br />
  32. 32. Tout dans le code-behind<br />View<br />XAML<br />Data Model<br />Code-Behind<br />Event Handlers<br />
  33. 33. Model – View –ViewModel<br />View<br />XAML<br />Change notification<br />Data-binding and commands<br />View Model<br />Data Model<br />State + Operations<br />
  34. 34. Data Binding<br />INotifyPropertyChanged et ObservableCollection<T><br />View<br /> <ListBox<br />ItemsSource="{Binding Path=Clients}"<br />SelectedItem="{Binding Path=SelectedClient, Mode=TwoWay}" /><br />View Model<br />State + Operations<br />
  35. 35. Data Binding<br />INotifyPropertyChangedet<br />ObservableCollection<T><br />View<br />XAML<br />View Model<br />public classClientViewModel: INotifyPropertyChanged<br />{<br /> public eventPropertyChangedEventHandlerPropertyChanged;<br />publicObservableCollection<Client> Clients { ... }<br />publicClientSelectedClient{ ... }<br />}<br />
  36. 36. CommandPattern<br />public interface ICommand<br />{<br /> event EventHandlerCanExecuteChanged;<br />boolCanExecute(object parameter);<br /> void Execute(object parameter);<br />}<br />
  37. 37. Commandes en Silverlight<br />View<br /> <Button<br />Content=“Delete Client”<br />commands:Click.CommandParameter=“{Binding}”<br />commands:Click.Command=“ClientCommand” /><br />View Model<br />privateICommandDeleteCommand { get; private set; }<br />publicPageViewModel()<br />{<br />DeleteCommand = newDelegateCommand<Client>(DeleteClient);<br />}<br />private voidDeleteClient(Client client)<br />{<br />// code to save dives..<br />}<br />
  38. 38. Première vue<br />La vueest en relation avec son ViewModel<br />View<br /><UserControl.DataContext><br /><dive:PageViewModel /><br /></UserControl.DataContext><br />Fonctionne en “design time” (Blend support)<br />
  39. 39. ViewModelCommunication?<br />View Model<br />View Model<br />View Model<br />View Model<br />View Model<br />View Model<br />View Model<br />View Model<br />
  40. 40. EventAggregator<br />View Model<br />View Model<br />View Model<br />View Model<br />Event Aggregator<br />View Model<br />View Model<br />View Model<br />View Model<br />
  41. 41. Communication<br />View<br />View<br />XAML<br />XAML<br />Code-Behind<br />Code-Behind<br />View Model<br />Data Model<br />View Model<br />State + Operations<br />Data Model<br />State + Operations<br />Message<br />Publish messages<br />View<br />XAML<br />Code-Behind<br />Subscribe to messages<br />Event Aggregator<br />View Model<br />Message<br />State + Operations<br />
  42. 42. Passons à l'étude de casAffichage formateur + PathListBox<br />
  43. 43. WCF RIA Services<br />
  44. 44. Mais… Comment ça marche ?<br />Clients .Net<br />Silverlight, WPF<br />Base de données<br />ADO.Net<br />ORMs(LTS, EF, …)<br />Logique Applicative<br />Clients standards<br />Javascript<br />CLR Lists / Objects<br />Repository<br />(nHivernate, Pocos,…)<br />Rendu server<br />HTML, SEO, Printing,…<br />XML, JSON, Binary<br />Services<br />REST/SOAP<br />(Azure, …)<br />Services<br />WCF<br />
  45. 45. Créer son service de domaine<br />
  46. 46. Domain Data Source<br />Rapide !<br />Pas de code !<br />Idéal ?<br />anti-architecture !!!<br />
  47. 47. La solution !LE MVVM<br />WCF RIA Services et MVVM<br />View<br />XAML<br />ObservableCollection & INotifyPropertyChanged<br />Data-binding et commands<br />View Model<br />Model<br />Logique applicative<br />Règles métier<br />Connexion aux services<br />Entitées<br />
  48. 48. Consommer le service<br />
  49. 49. Meta données<br />
  50. 50. Interopérabilité<br />
  51. 51. Partage metier<br />
  52. 52. Méthodes personnalisées<br />
  53. 53. Sécurité<br />
  54. 54. Windows phone 7<br />
  55. 55.
  56. 56. Ahead-app.com<br />
  57. 57. Visual Studio 2010Livre aux éditions eni<br />
  58. 58. Entreprise Content Manager<br />Questions / Réponses (?)<br />La parole est à vous<br />
  59. 59. Restez en contact<br />Julien Dollon<br />Mails :<br />Julien.dollon@supinfo.com<br />Twitters :<br />@juliendollon<br />Blogs :<br />http://blogs.dotnet-france.com/juliend<br />

×