imageEt voilà la session que j’attendais : SQL CE dans WP7

Depuis la sortie de WP7, la seule façon de faire du management de données est Linq to Objects sur des entités qu’on va ensuite sérialiser dans l’Isolated Storage (si on veut les garder sur le téléphone)

Mais si vous voulez plus de contrôle, plus de possibilités de structuration de schéma (liaison N-1 N-N etc ….), de possibilités de tri, ordonnancement etc … c’est compliqué et couteux

Merci donc à WP7 Mango d’apporter SQL SERVER CE dans WP7 !

Et il vous faudra vous y habituer, pour faire du SQL dans WP7, on va faire du … Linq To SQL (le vieux truc qui resort du placard Sourire)

Bon, ça peut se comprendre, moins d’abstraction permettra de meilleurs performances (et oui, on a pas encore des WP7 avec un ICORE 7 dedans Sourire)

image

image

En plus d’apporter donc SQL CE dans WP7, la team WP7 nous donne aussi accès à des api permettant de faire des requêtes sur les contacts ou encore les évènements du calendrier

Linq To SQL and Code First baby !

et oui, SQL CE dans WP7 est basé entièrement sur du LinqToSql et une création à base de Code First (décoration d’entités qui va ensuite générer la base de données relationnelle)

Grosso modo, on va (re)créer le DataContext qui va se mapper sur nos données SQL CE. On va refaire ce que fait le designer VS en gros Sourire

Je sens bien les bon templates T4 qui vont sortir bientot pour générer les classes WP7 pour une base de données SDF Sourire

Requêter des données SQL CE pour WP7

imagePremière démo : Faire du linq to Sql pour accéder aux données stockées dans SQL CE

On retrouve ce qu’on connait déjà en LinqToSql :

  • Une requête Linq
  • Un provider qui va traduire l’instruction en SQL
  • ADO.NET qui va exécuter la requête

 

Créer un schéma SQL CE pour WP7

Comment Dire …. CODE FIRST !

imageCréer un schéma, c’est créer vos entités dans un objet héritant de DataContext et les décorer via des attributs *

On est dans un principe de base de données Objets, transformée en base de données relationnelle.

 

Je vous mets les screenshots de ce que j’ai pu prendre pendant la session :

On peut voir que tout les décorations par attributs nous rappelle LinqToSQL, jusqu’à la création du DataContext :

image

image

image

 

Création de la base de données : on donne une Data Source dans l’Isolated Storage et on appelle CreateDatabase

image

Cool; on a les Compiled Query

image

Update Delete Inserts

Bon ben c’est du Linq To SQL, donc on modifie, supprime nos objets et on appelle le SubmitChanges()

imageimage

 

Schema Upgrades

Il existe un objet DatabaseSchemaUpdater qui permet, transactionnellement, de faire une mise à jour de votre schéma.

image

Ok, ça je demande à voir ce que ça va donner Sourire J’ai quand meme un peu peur que ce soit un peu trop “léger” pour gérer les cas complexes de mise à jour!

Conclusion

Bon ben je suis enchanté par cette nouvelle, je suis moins fan du coté “Code First” même si j’estime que ici, cela prend plus de sens qu’ailleurs…

Sinon, pas mal de choses restent à éclaircir comme les perfs (Connection Pooling) l’intégration avec SQL SERVER 2008 + (Réplication ?) et surtout les perfs de l’engin sur mon WP7 ! Sourire

Bon ben, voilà un Keynote d’un autre monde ! Un VRAI Keynote avec pleins d’annonces autour de WP7, Silverlight 5 et Kinect.

Il y’a tant de choses à citer comme la nouvelle version de l’OS de WP7, la bien nommée Mango, l’intégration de la 3D dans Silverlight 5, le Binding Debugging, Le SDK Kinect en 4 lignes de code etc ….

Bref je vous redirige vers le Blog de Pierre Cauchois de l’équipe DPE, qui a fait un super post sur les nouveautés annoncées dans ce KeyNote

David Catuhe nous donne un résumé trés orienté Silverlight 5 Sourire

Pour ma part, je retiendrai juste un petit truc :

imageimage

Et oui biensur, LE support de SQL CE dans WP7

La session sur le sujet se passe demain à 16h heure local

J’ai le temps de rêver en attendant !

Bien maintenant direction les sessions WP7 TOUTE la journée Sourire

Petit résumé des 3 sessions auxquelles j’ai participé en cette première journée :

  • HTML5 WebSockets
  • DeepDive MVVM
  • RX framework

Je vous propose de vous faire un résumé de la première session, celle qui m’a semblé la plus intéressante, innovante, de cette journée :

HTML 5 WebSockets

Session intéressante : Comment faire du WebSockets avec HTML 5

websocketstitle

Nous avons droit à 2 speakers, un PM de la team WCF et un Ambassadeur de la team Interop.

Tour du propriétaire

Aujourd’hui, c’est vrai, pour faire du DuplexChannel sur HTTP; bah on fait du Polling avec une intervalle.

polling C’est juste pas extraordinaire, mais ça a le mérite de fonctionner. Beaucoup de clients twitter, ou encore Facebook fonctionne comme ça.

 

 

 

On peut imaginer les Milliers (Milliards ?) de requêtes HTTP qui arrive sur les serveurs Twitter ou Facebook, qui sont inutiles, du fait de ce polling incessant (mais nécessaire …. au cas où !)

Les websokects adressent ce problème. On parle simplement d’un socket TPC, bidirectionnel.

socket

Le problème c’est que la spec sur WebSocket et globalement HTML5 n’est toujours pas terminée, on a donc encore beaucoup de chemin à parcourir avant d’arriver à une version finale.

De plus des problèmes de sécurité sont apparus, WebSocket a donc été abandonné par certains navigateurs :

image

Mais soit ! On va faire avec ce qu’on a aujourd’hui

websocketsVous trouverez pas mal d’informations sur WebSockets sur le site HTML5 Labs où déjà on a quelques samples et le SDK pour travailler avec .NET et une méthodologie WCF

 

Attention, tout ça reste de l’étude, il y’a donc plusieurs façons de faire du WebSockets aujourd’hui:

  1. Avec un navigateur qui l’implante (certaines versions de Chrome si j’ai bien suivi)
  2. Avec un proxy Silverlight pour IE 9 (oui je sais c’est pas extra, mais ca reste faisable Sourire)

Ok, le décor est planté, c’est du POC, on va dire Sourire

Une démo est présentée par un speaker d’un petit jeu de puzzle, exemple parfait pour faire du DuplexChannel Sourire euh pardon, du WebSocket !!!! Vous trouverez cette exemple sur Html5Labs

 

From Scratch

Ouais, go pour une démo avec VISUAL STUDIO ! Hello World Web Socket Sourire

On a donc 2 projets dans notre solution :

  • Un client Web ASP NET
  • Un server de type app console

Un wrapper WCF permet de faire du WCF WebSockets, énorme Sourire 

Il suffit de créer un Host (console chez nous) et de créer une classe qui hérite de WebSocketsService :

websocketsserveur1

On a vraiment l’impression de faire du Channel WCF classique, et c’est assez sympa de voir ça !

Coté client; l’appel peut se faire avec du Javascript  (aidé de JQUERY bien sûr)

Voilà le code, en plusieurs screenshots. Remarquez l’uri particulière ws://…

On utilise pour les navigateurs qui le supportent, un objet WebSocket :

image

image

image

Bon ça ça marche sur Chrome, pas sur IE …

Mais les équipes IE ont fait un effort pour nous proposer, sans implémenter websocket, une façon de travailler et de tester cette fonctionnalité

Sur IE, on rajoute des références sur SL; du javascript pour SL et l’objet WebSocket se transforme en WebSocketDraft (vlà du nommage bien explicite Sourire)

image

Ca a le mérite de marcher et de permettre de tester ! Sourire

Un truc marrant, au lancement, avec cette méthode, on a droit à un bon bandeau BLEU prévenant que tout ça c’est de l’expérimental

Ok les gars, on a compris, on met pas ça en prod !

image

 

Tiens, petit truc intéressant, le premier appel est fait en HTTP et le serveur commit la demande et effectue un switch sur TCP

Ca ouvre des possibilités, ok pourquoi pas (redirection etc …)

image

Conclusion

Bon on est vraiment au début de chez début.

Il reste bcp de chemins, la sécurité en premier lieu, la fin des spécifications par le W3C

Mais c’est l’avenir, pas pour tout de suite certes, mais on sait ce qu’on aura au final !!

Internet Explorer 10

tenAllez c’est parti pour le keynote du day 1

Première impression : le speaker arrive avec un teeshirt TEN (le E représentant Internet Explorer) alors annonce ?

UPDATE : Oui c’est annoncé ! Premiere preview de IE 10

 

 

 

 

En attendant, nous avons droit à une comparaison entre HTML5 sur IE 9 et Chrome.

Marrant de voir que Microsoft fait enfin une comparaison avec Chrome. Nous verrons bien la réponse du berger à la bergère d’ici quelques jours, c’est sûr !

OK vidéo sur les websockets, marrante. J’irais voir la sessions sur WebSockets et WCF, je vous en reparle plus tard.

 

Annonce d’HTML5Labshtml5labs

 

 

 

 

 

 

En suivant, nous avons des démos de :

  • Webmatrix par Scott Hanselmann avec
    • DU Razor
    • SQL CE 4 for Web
    • Code First avec EF4.1
    • etc….
  • Orchard
    • Ok, là on est vraiment dans la partie “pub pour mon joli CMS gratos qui poutre” D’ailleurs oui il poutre, on l’utilise à la maison pour http://labs.bewise.fr Sourire

Prochaine conférence

Annonce d’une prochaine conférence cette année à Anaheim du 13 au 16 Septembre 2011 (tiens y’a Blizzard là bas Sourire)

Bon c’est pas annoncé comme étant une PDC, mais ça y ressemble bcp !

 

Windows AZURE

Ah, la ça devient intéressant

Présentation de Umbraco, un autre CMS tiens Sourire

Umbraco tire parti des API Azure pour être complètement intégré dans le CLOUD Microsoft. Ok cool, next ?

Conclusion

Ok, bon c’etait un peu en vrac mais grosso modo annonce de

  • Internet Explorer 10
  • Intégration d’HTML 5, encore et toujours
  • Webmatrix
  • http://www.html5labs.com/
  • Un peu d’AZURE (mais pas trop Sourire)

Allez direction la session WebSockets Sourire