Techdays 2010 - Jour 1
Par Christophe GRICOURT, lundi 8 février 2010 à 23:39 :: .Net :: #131 :: rss
Sébastien Blanchard - ALTI
La plénière
Au menu de cette plénière, 3 sujet majeurs :
1/ La virtualisation
2/ Le développement avec Visual Studio 2010
3/ Le Cloud Computing avec Azure
Le développement avec Visual Studio 2010
Concernant l'outil de développement VS 2010, plusieurs nouveautés au programme.
L'ajout de nouveaux types de projets dont notamment WCF RIA Services pour générer un proxy de données avec les méthodes CRUD en s'appuyant sur WCF tout en masquant au client les appels de services.
Le refactoring amélioré avec pas mal de nouvelles possibilités (déjà offertes par Resharper pour ceux qui connaissent) dont la génération d'une classe et de ses propriétés à partir d'une instanciation.
VS2010 permet aussi maintenant de docker les fenêtres de code. on peut donc les docker où on veut dans l'IDE ou même de les mettre en fullscreen sur un autre écran.
Pour les plus paresseux, on a pu voir une démo d'édition "carrée", après le copier / coller "carré", on peut maintenant modifier plusieurs lignes de codes simultanément avec l'édition "carrée" :)
On a pu voir également Pex, un add-in assez intéressant pour le Test Driven Development (TDD). Cet outil permet d'explorer le code et de générer un projet de test de façon assez complète. Il permet également en fonction d'une modification dans votre code de vous afficher les méthodes de tests impactées par la modification, ce qui peut s'avérer utile dans un projet de plus de 100 tests unitaires.
Bonne nouvelle, Silverlight 4 peut maintenant gérer une webcam, ce qui peut s'avérer utile pour prendre des photos.
Le Cloud Computing avec Azur
VS2010 intègre un projet de déploiement pour Azure. Ce projet permet de packager votre application (ASP.NET, WS, JAVA, même PHP ...) afin de le déployer sur le système de cloud computing de Microsoft (Azure).
On peut, grâce à un fichier de configuration, configurer facilement le nombre de machines sur lequel doit être déployée votre application en fonction de la charge nécessaire. Selon Microsoft, un déploiement sur 200 machines met environ 15 minutes.
La base de données de votre application est, quant à elle, gérée par SQL Server Azure qui est un moteur light de SQL Server. Les modifications de BD faites dans votre projet son automatiquement répercutées sur le portail.
L'utilisateur peut choisir l'endroit (zone continentale) sur lequel il va déployer ses services.
Model - View - ViewModel
Le pattern Model-View-ViewModel (MVVM) s'adresse à WFP (et Silverlight), il permet une simplification des développements et une meilleure séparation du code afin de faciliter les tests unitaires.
Le principe est que la couche présentation XAML (View) n'utilise que du Binding sur des propriétés du ViewModel qui masque toute la complexification de la DAL (Model). Pour tous les événements, le ViewModel déclare des propriétés de type ICommand qui sont bindées par la View. Le ViewModel utilise des interfaces pour l'accès au Model qui peuvent être définies à l'aide d'injections de dépendance.
Grâce au MVVM, les tests unitaires sont donc faciles à mettre en place puisqu'il s'agit de faire des bouchons (Mocks) autant pour le Model (en implémentant l'interface de l'entité du Model) que pour le ViewModel (en remplacant le ViewModel par une classe avec des attributs en dur).
Plusieurs Frameworks MVVM existent, parmi eux MVVM Light toolkit (assez simple), Prism développé par Microsoft ou encore Cinch (assez complet).
Programmation Multi Touch
Le but du Multi-Touch, c'est de permettre l'interaction d'un utilisateur avec une interface de la façon la plus naturelle possible.
Plusieurs types de multi touch :
- Le résistif, qui nécessite une pression sur l'écran, est utilisé encore par les smartphones
- Le capacitif, qui utilise l'électricité statique sur l'écran, est utilisé par l'Iphone
- L'infrarouge, qui détecte par infrarouge les actions sur un écran, est utilisé par la table Microsoft Surface.
Pour développer en multi-touch, plusieurs solutions :
- Avoir un écran multi-touch (ce qui n'est pas à la portée de tout le monde) et utiliser le SDK Surface
- Utiliser le Multipoint SDK de Microsoft qui permet de gérer jusqu'à 25 souris branchées sur une même machine (http://www.microsoft.com/multipoint/mouse-sdk/)
Le Multi-touch dans Windows 7 détecte les points de contacts (fingers) ainsi que les mouvements de ces points de contacts (gestures) tels que rotation, translation, zoom, ...
Multi-touch et Silverlight :
Le Multi-touch sous Silverlight ne fonctionne que sous Windows 7 puisqu'il s'appuie sur l'API de Windows 7 et ne traque que les points de contacts. Plusieurs behaviors du SDK de Surface permettent d'ajouter la gestion des mouvements.
Pour gérer le Multi touch sous Silverlight, il faut utiliser un container de type Canvas et s'abonner à l'événement "FrameReported" qui est appelé toutes les 500 millisecondes. L'argument de cet événement "TouchFrameEventArgs" contient alors toutes les informations sur les points de contacts, leurs déplacements, ...
Multi-touch et WPF 4 :
WPF4 gère de façon plus précise le Multi touch. Il gère un événement pour chaque type de contact (TouchUp, TouchDown, ToucheMove, TouchEnter, TouchLeave). Le Multi-touch est transmis sur chaque contrôle de père en fils PreviewTouchXXXX (appelé channeling) jusqu'à ce qu'un contrôle gère l'événement en question TouchXXXX. Si le contrôle de plus bas niveau ne gère pas cet événement, il est remonté de fils en père jusqu'à ce qu'un contrôle le prenne en charge (bubbling). A tout moment, on peut interrompre la remontée en fixant la propriété Handled à true dans l'argument de l'événement déclenché.
WPF4 gère également les manipulations à l'aide d'événements :
- ManipulationStarting qui est déclenché lorsqu'un mouvement commence
- ManipulationDelta qui est déclenché à chaque fois qu'un mouvement se produit sur les points de contacts.
Actuellement les contrôles WPF sont mono touch (puisqu'un clic est simulé sur ledit contrôle quand on le touche), mais bientôt sortira le Surface SDK pour Windows 7 (après la sortie de .NET 4) qui proposera des contrôles multi-touch.

Commentaires
1. Le lundi 8 février 2010 à 21:43, par Christophe GRICOURT
2. Le lundi 8 février 2010 à 21:44, par Christophe GRICOURT
3. Le mercredi 7 juillet 2010 à 02:45, par load cell
4. Le lundi 6 septembre 2010 à 02:53, par Jets Shop
Ajouter un commentaire